From c870f6d2b1e5dd3be313b251e264786319ed129b Mon Sep 17 00:00:00 2001
From: Joseph Walton-Rivers <joseph@walton-rivers.uk>
Date: Thu, 21 Apr 2022 18:43:22 +0100
Subject: [PATCH] fix error with glfw import

---
 CMakeLists.txt          | 12 +++---------
 build.sh                | 21 +++++++++------------
 demo/CMakeLists.txt     |  3 ++-
 fggl/CMakeLists.txt     |  1 -
 fggl/gfx/CMakeLists.txt |  7 +++++--
 5 files changed, 19 insertions(+), 25 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8c8708..eec7c5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,7 @@ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
 			cmake_find_package
 			cmake_find_package_multi
 		OPTIONS
+            glfw:shared=True
 			glad:gl_profile=core
 			glad:gl_version=4.5
 			glad:extensions="GL_ARB_get_program_binary"
@@ -51,8 +52,6 @@ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
 		)
 	endif()
 
-	execute_process( COMMAND ls ${CMAKE_BINARY_DIR} )
-
 	# testing support
 	include(CTest)
 
@@ -81,13 +80,6 @@ endif()
 # end windows support
 ##
 
-set(FGGL_WAYLAND True)
-
-
-include(GNUInstallDirs)
-
-# depedencies
-
 
 # engine
 #add_subdirectory(vendor/imgui/)
@@ -101,6 +93,8 @@ add_subdirectory(demo)
 # INSTALL PHASE
 # see https://decovar.dev/blog/2021/03/08/cmake-cpp-library/
 ##
+include(GNUInstallDirs)
+
 file(GLOB_RECURSE public_headers
 	${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/*.hpp
 	${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/*.h
diff --git a/build.sh b/build.sh
index 475ece5..7cdcef2 100755
--- a/build.sh
+++ b/build.sh
@@ -2,13 +2,9 @@
 
 CACHE=/tmp/fggl/
 LOG=$CACHE/demo.log
-EXE="../builds/cli/bin/FgglDemo"
 
-# check build directory exists
-if [[ ! -d "builds/cli/" ]]
-then
-	mkdir -p builds/cli
-fi
+BUILD_PATH="builds/cli"
+DEMO_EXE="$PWD/$BUILD_PATH/demo/FgglDemo"
 
 # check cmake exists
 if [ ! -x "$(command -v cmake)" ]; then
@@ -18,30 +14,31 @@ if [ ! -x "$(command -v cmake)" ]; then
 fi
 
 # if doing shader development, disable the cache to make sure changes take affect
+rm -rf builds/cli
 rm -rf $CACHE
 
 #
 # build step
 #
-cmake -S . -B build -DCMAKE_BUILD_TYPE=debug
-cmake --build build
+cmake -S . -B $BUILD_PATH -DCMAKE_BUILD_TYPE=debug
+cmake --build $BUILD_PATH
 
 #
 # additional stuff
 #
 
-EXE="gdb $EXE"
+#EXE="gdb $EXE"
 
 # gamemoderun
 if [ -x "$(command -v gamemoderun)" ]; then
-	EXE="gamemoderun $EXE"
+    DEMO_EXE="gamemoderun $DEMO_EXE"
 fi
 
 # mangohud
 if [ -x "$(command -v mangohud)" ]; then
-	EXE="mangohud --dlsym $EXE"
+    DEMO_EXE="mangohud --dlsym $DEMO_EXE"
 fi
 
 pushd demo
-$EXE
+$DEMO_EXE
 popd
diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt
index 2130e1d..f3e4756 100644
--- a/demo/CMakeLists.txt
+++ b/demo/CMakeLists.txt
@@ -1,7 +1,8 @@
 # Executable
 add_executable(FgglDemo main.cpp)
+
 target_link_libraries(FgglDemo fggl)
-target_include_directories(FgglDemo PUBLIC ${PROJECT_BINARY_DIR})
+#target_include_directories(FgglDemo PUBLIC ${PROJECT_BINARY_DIR})
 
 # rssources
 file(GLOB_RECURSE data data/*)
diff --git a/fggl/CMakeLists.txt b/fggl/CMakeLists.txt
index 968b063..f2db608 100644
--- a/fggl/CMakeLists.txt
+++ b/fggl/CMakeLists.txt
@@ -60,7 +60,6 @@ target_link_libraries(${PROJECT_NAME} PRIVATE spdlog::spdlog)
 
 # Graphics backend
 add_subdirectory(gfx)
-target_link_libraries(${PROJECT_NAME} PUBLIC glfw)
 
 # Debug backend
 add_subdirectory(debug)
diff --git a/fggl/gfx/CMakeLists.txt b/fggl/gfx/CMakeLists.txt
index bc49864..0873a00 100644
--- a/fggl/gfx/CMakeLists.txt
+++ b/fggl/gfx/CMakeLists.txt
@@ -1,8 +1,11 @@
 
 # Sources
-
 find_package( glfw3 REQUIRED )
-target_link_libraries(fggl PUBLIC glfw)
+
+include(CMakePrintHelpers)
+cmake_print_variables(GLFW_TARGETS)
+
+target_link_libraries(fggl PUBLIC glfw::glfw )
 
 target_sources(fggl
     PRIVATE
-- 
GitLab