summaryrefslogtreecommitdiffhomepage
path: root/src/external/glfw/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/external/glfw/CMakeLists.txt')
-rw-r--r--src/external/glfw/CMakeLists.txt103
1 files changed, 16 insertions, 87 deletions
diff --git a/src/external/glfw/CMakeLists.txt b/src/external/glfw/CMakeLists.txt
index 59ba5a60..59ab473c 100644
--- a/src/external/glfw/CMakeLists.txt
+++ b/src/external/glfw/CMakeLists.txt
@@ -41,10 +41,6 @@ cmake_dependent_option(GLFW_USE_WAYLAND "Use Wayland for window creation" OFF
cmake_dependent_option(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC runtime library DLL" ON
"MSVC" OFF)
-if (BUILD_SHARED_LIBS)
- set(_GLFW_BUILD_DLL 1)
-endif()
-
if (BUILD_SHARED_LIBS AND UNIX)
# On Unix-like systems, shared libraries can use the soname system.
set(GLFW_LIB_NAME glfw)
@@ -73,19 +69,8 @@ endif()
#--------------------------------------------------------------------
# Set compiler specific flags
#--------------------------------------------------------------------
-if (MSVC)
- if (MSVC90)
- # Workaround for VS 2008 not shipping with the DirectX 9 SDK
- include(CheckIncludeFile)
- check_include_file(dinput.h DINPUT_H_FOUND)
- if (NOT DINPUT_H_FOUND)
- message(FATAL_ERROR "DirectX 9 headers not found; install DirectX 9 SDK")
- endif()
- # Workaround for VS 2008 not shipping with stdint.h
- list(APPEND glfw_INCLUDE_DIRS "${GLFW_SOURCE_DIR}/deps/vs2008")
- endif()
-
- if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
+if (MSVC AND NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
+ if (${CMAKE_VERSION} VERSION_LESS 3.15)
foreach (flag CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
@@ -100,41 +85,8 @@ if (MSVC)
endif()
endforeach()
- endif()
-endif()
-
-if (MINGW)
- # Workaround for legacy MinGW not providing XInput and DirectInput
- include(CheckIncludeFile)
-
- check_include_file(dinput.h DINPUT_H_FOUND)
- check_include_file(xinput.h XINPUT_H_FOUND)
- if (NOT DINPUT_H_FOUND OR NOT XINPUT_H_FOUND)
- list(APPEND glfw_INCLUDE_DIRS "${GLFW_SOURCE_DIR}/deps/mingw")
- endif()
-
- # Enable link-time exploit mitigation features enabled by default on MSVC
- include(CheckCCompilerFlag)
-
- # Compatibility with data execution prevention (DEP)
- set(CMAKE_REQUIRED_FLAGS "-Wl,--nxcompat")
- check_c_compiler_flag("" _GLFW_HAS_DEP)
- if (_GLFW_HAS_DEP)
- set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--nxcompat ${CMAKE_SHARED_LINKER_FLAGS}")
- endif()
-
- # Compatibility with address space layout randomization (ASLR)
- set(CMAKE_REQUIRED_FLAGS "-Wl,--dynamicbase")
- check_c_compiler_flag("" _GLFW_HAS_ASLR)
- if (_GLFW_HAS_ASLR)
- set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--dynamicbase ${CMAKE_SHARED_LINKER_FLAGS}")
- endif()
-
- # Compatibility with 64-bit address space layout randomization (ASLR)
- set(CMAKE_REQUIRED_FLAGS "-Wl,--high-entropy-va")
- check_c_compiler_flag("" _GLFW_HAS_64ASLR)
- if (_GLFW_HAS_64ASLR)
- set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--high-entropy-va ${CMAKE_SHARED_LINKER_FLAGS}")
+ else()
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
endif()
@@ -203,11 +155,8 @@ if (_GLFW_X11)
find_package(X11 REQUIRED)
- list(APPEND glfw_PKG_DEPS "x11")
-
# Set up library and include paths
list(APPEND glfw_INCLUDE_DIRS "${X11_X11_INCLUDE_PATH}")
- list(APPEND glfw_LIBRARIES "${X11_X11_LIB}" "${CMAKE_THREAD_LIBS_INIT}")
# Check for XRandR (modern resolution switching and gamma control)
if (NOT X11_Xrandr_INCLUDE_PATH)
@@ -233,37 +182,29 @@ if (_GLFW_X11)
if (NOT X11_Xi_INCLUDE_PATH)
message(FATAL_ERROR "XInput headers not found; install libxi development package")
endif()
-
+
# Check for X Shape (custom window input shape)
if (NOT X11_Xshape_INCLUDE_PATH)
message(FATAL_ERROR "X Shape headers not found; install libxext development package")
endif()
-
- list(APPEND glfw_INCLUDE_DIRS "${X11_Xrandr_INCLUDE_PATH}"
- "${X11_Xinerama_INCLUDE_PATH}"
- "${X11_Xkb_INCLUDE_PATH}"
- "${X11_Xcursor_INCLUDE_PATH}"
- "${X11_Xi_INCLUDE_PATH}")
endif()
#--------------------------------------------------------------------
# Use Wayland for window creation
#--------------------------------------------------------------------
if (_GLFW_WAYLAND)
- find_package(ECM REQUIRED NO_MODULE)
- list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}")
- find_package(Wayland REQUIRED Client Cursor Egl)
- find_package(WaylandScanner REQUIRED)
- find_package(WaylandProtocols 1.15 REQUIRED)
+ include(FindPkgConfig)
+ pkg_check_modules(Wayland REQUIRED
+ wayland-client>=0.2.7
+ wayland-cursor>=0.2.7
+ wayland-egl>=0.2.7
+ xkbcommon)
- list(APPEND glfw_PKG_DEPS "wayland-egl")
+ list(APPEND glfw_PKG_DEPS "wayland-client")
list(APPEND glfw_INCLUDE_DIRS "${Wayland_INCLUDE_DIRS}")
- list(APPEND glfw_LIBRARIES "${Wayland_LIBRARIES}" "${CMAKE_THREAD_LIBS_INIT}")
-
- find_package(XKBCommon REQUIRED)
- list(APPEND glfw_INCLUDE_DIRS "${XKBCOMMON_INCLUDE_DIRS}")
+ list(APPEND glfw_LIBRARIES "${Wayland_LINK_LIBRARIES}")
include(CheckIncludeFiles)
include(CheckFunctionExists)
@@ -280,14 +221,6 @@ if (_GLFW_WAYLAND)
endif()
#--------------------------------------------------------------------
-# Use OSMesa for offscreen context creation
-#--------------------------------------------------------------------
-if (_GLFW_OSMESA)
- find_package(OSMesa REQUIRED)
- list(APPEND glfw_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
-endif()
-
-#--------------------------------------------------------------------
# Use Cocoa for window creation and NSOpenGL for context creation
#--------------------------------------------------------------------
if (_GLFW_COCOA)
@@ -312,12 +245,10 @@ endif()
# Export GLFW library dependencies
#--------------------------------------------------------------------
foreach(arg ${glfw_PKG_DEPS})
- set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} ${arg}" CACHE INTERNAL
- "GLFW pkg-config Requires.private")
+ set(GLFW_PKG_DEPS "${GLFW_PKG_DEPS} ${arg}")
endforeach()
foreach(arg ${glfw_PKG_LIBS})
- set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}" CACHE INTERNAL
- "GLFW pkg-config Libs.private")
+ set(GLFW_PKG_LIBS "${GLFW_PKG_LIBS} ${arg}")
endforeach()
#--------------------------------------------------------------------
@@ -336,9 +267,7 @@ write_basic_package_version_file(src/glfw3ConfigVersion.cmake
VERSION ${GLFW_VERSION}
COMPATIBILITY SameMajorVersion)
-configure_file(src/glfw_config.h.in src/glfw_config.h @ONLY)
-
-configure_file(CMake/glfw3.pc.in CMake/glfw3.pc @ONLY)
+configure_file(CMake/glfw3.pc.in src/glfw3.pc @ONLY)
#--------------------------------------------------------------------
# Add subdirectories