Allow the new DoConfig to link local GLFW3
This commit is contained in:
parent
69e0a17e90
commit
76bb17dc01
1 changed files with 46 additions and 4 deletions
|
@ -1,5 +1,7 @@
|
||||||
cmake_minimum_required(VERSION 3.12)
|
cmake_minimum_required(VERSION 3.12)
|
||||||
|
|
||||||
|
option(FORCE_LOCAL_LIBS "Compile the built-in version of GLFW3 instead of using the system-provided one" OFF)
|
||||||
|
|
||||||
project(DoConfig LANGUAGES C CXX)
|
project(DoConfig LANGUAGES C CXX)
|
||||||
|
|
||||||
add_executable(DoConfig WIN32
|
add_executable(DoConfig WIN32
|
||||||
|
@ -40,11 +42,51 @@ target_compile_definitions(DoConfig PRIVATE IMGUI_IMPL_OPENGL_LOADER_GLAD)
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# Disable warnings that normally fire up on MSVC when using "unsafe" functions instead of using MSVC's "safe" _s functions
|
# Disable warnings that normally fire up on MSVC when using "unsafe" functions instead of using MSVC's "safe" _s functions
|
||||||
target_compile_definitions(CSE2 PRIVATE _CRT_SECURE_NO_WARNINGS)
|
target_compile_definitions(DoConfig PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||||
|
|
||||||
# Use `main` instead of `WinMain`
|
# Use `main` instead of `WinMain`
|
||||||
set_target_properties(CSE2 PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
|
set_target_properties(DoConfig PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(glfw3 REQUIRED)
|
|
||||||
|
################
|
||||||
|
# Dependencies #
|
||||||
|
################
|
||||||
|
|
||||||
|
if(NOT FORCE_LOCAL_LIBS)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT FORCE_LOCAL_LIBS)
|
||||||
|
find_package(glfw3)
|
||||||
|
|
||||||
|
if (PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(glfw3 QUIET IMPORTED_TARGET glfw3)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TARGET PkgConfig::glfw3)
|
||||||
|
# pkg-config
|
||||||
|
if (PKG_CONFIG_STATIC_LIBS)
|
||||||
|
message(STATUS "Using system GLFW3 (pkg-config, static)")
|
||||||
|
target_compile_options(DoConfig PRIVATE ${glfw3_STATIC_CFLAGS})
|
||||||
|
target_link_libraries(DoConfig PRIVATE ${glfw3_STATIC_LIBRARIES})
|
||||||
|
else()
|
||||||
|
message(STATUS "Using system GLFW3 (pkg-config, dynamic)")
|
||||||
|
target_compile_options(DoConfig PRIVATE ${glfw3_CFLAGS})
|
||||||
|
target_link_libraries(DoConfig PRIVATE ${glfw3_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
elseif(TARGET glfw)
|
||||||
|
# CMake
|
||||||
|
message(STATUS "Using system GLFW3 (CMake)")
|
||||||
target_link_libraries(DoConfig PRIVATE glfw)
|
target_link_libraries(DoConfig PRIVATE glfw)
|
||||||
|
else()
|
||||||
|
# Compile it ourselves
|
||||||
|
message(STATUS "Using local GLFW3")
|
||||||
|
set(GLFW_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE)
|
||||||
|
set(GLFW_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
|
||||||
|
set(GLFW_BUILD_DOCS OFF CACHE INTERNAL "" FORCE)
|
||||||
|
set(GLFW_INSTALL OFF CACHE INTERNAL "" FORCE)
|
||||||
|
add_subdirectory("../external/glfw" "glfw" EXCLUDE_FROM_ALL)
|
||||||
|
target_link_libraries(DoConfig PRIVATE glfw)
|
||||||
|
endif()
|
||||||
|
|
Loading…
Add table
Reference in a new issue