From 2bf969e5901e0c9908dae26b362e22c4933094fe Mon Sep 17 00:00:00 2001
From: Joseph Walton-Rivers <Joseph.WaltonRivers@falmouth.ac.uk>
Date: Wed, 20 Apr 2022 10:12:57 +0100
Subject: [PATCH] hack opengl and glfw detection for windows

---
 CMakeLists.txt              | 20 ++++++++++++++------
 fggl/CMakeLists.txt         |  1 +
 fggl/gfx/ogl/CMakeLists.txt | 14 +++++++++++---
 3 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b27ebd3..792fc9f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,9 +13,6 @@ project(fggl
 ##
 # begin conan support
 ##
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
-list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})
-
 if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
   message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
   file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
@@ -23,8 +20,12 @@ if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
                 TLS_VERIFY ON)
 endif()
 
-include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
 include(${CMAKE_BINARY_DIR}/conan.cmake)
+include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
+
+#list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
+#list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})
+
 #conan_cmake_autodetect(settings)
 conan_cmake_run(CONANFILE conanfile.txt  # or relative build/conanfile.txt
 				BUILD_TYPE ${CONAN_BUILD_TYPE}
@@ -89,8 +90,15 @@ if (DOXYGEN_FOUND)
 endif (DOXYGEN_FOUND)
 
 # depedencies
-find_package( glfw3 CONFIG REQUIRED )
-target_link_libraries(fggl PRIVATE glfw)
+find_package( glfw3 )
+if ( GLFW3_FOUND )
+	target_link_libraries(fggl PRIVATE glfw)
+else()
+	message("GLFW couldn't be found - something strange is going on")
+	find_package( CONAN_PKG::glfw )
+	target_link_libraries(fggl PRIVATE glfw)
+endif()
+
 
 # engine
 #add_subdirectory(vendor/imgui/)
diff --git a/fggl/CMakeLists.txt b/fggl/CMakeLists.txt
index 6f9b1ba..84a8e6e 100644
--- a/fggl/CMakeLists.txt
+++ b/fggl/CMakeLists.txt
@@ -2,6 +2,7 @@
 # Config mode dependencies
 find_package(fmt CONFIG)
 find_package(spdlog CONFIG)
+find_package(glfw3 CONFIG)
 
 configure_file(FgglConfig.h.in FgglConfig.h)
 
diff --git a/fggl/gfx/ogl/CMakeLists.txt b/fggl/gfx/ogl/CMakeLists.txt
index 2fcb3d5..be75a06 100644
--- a/fggl/gfx/ogl/CMakeLists.txt
+++ b/fggl/gfx/ogl/CMakeLists.txt
@@ -14,9 +14,17 @@ find_package( glm REQUIRED )
 target_link_libraries(${PROJECT_NAME} PUBLIC glm::glm)
 
 # OpenGL Backend
-find_package( OpenGL REQUIRED )
-include_directories( ${OPENGL_INCLUDE_DIR} )
-target_link_libraries(${PROJECT_NAME} PUBLIC OpenGL::OpenGL)
+if ( WIN32 )
+	message("There is a hack to make opengl detection work on windows, someone should look into this...")
+	find_package( opengl REQUIRED )
+	include_directories( ${OPENGL_INCLUDE_DIR} )
+	target_link_libraries(${PROJECT_NAME} PUBLIC opengl::opengl)
+else()
+	find_package( OpenGL REQUIRED )
+	include_directories( ${OPENGL_INCLUDE_DIR} )
+	target_link_libraries(${PROJECT_NAME} PUBLIC OpenGL::OpenGL)
+endif()
+
 
 # GLEW
 find_package( glad )
-- 
GitLab