1
- cmake_minimum_required (VERSION 3.0)
1
+ cmake_minimum_required (VERSION 3.0...3.20 FATAL_ERROR )
2
2
3
- project (GLFW VERSION 3.3.2 LANGUAGES C)
3
+ project (GLFW VERSION 3.3.8 LANGUAGES C)
4
4
5
5
set (CMAKE_LEGACY_CYGWIN_WIN32 OFF )
6
6
7
7
if (POLICY CMP0054)
8
8
cmake_policy (SET CMP0054 NEW)
9
9
endif ()
10
10
11
+ if (POLICY CMP0069)
12
+ cmake_policy (SET CMP0069 NEW)
13
+ endif ()
14
+
11
15
if (POLICY CMP0077)
12
16
cmake_policy (SET CMP0077 NEW)
13
17
endif ()
14
18
15
19
set_property (GLOBAL PROPERTY USE_FOLDERS ON )
16
20
17
- set (BUILD_SHARED_LIBS OFF )
18
- set (GLFW_INSTALL OFF )
19
- set (GLFW_VULKAN_STATIC OFF )
21
+ option (BUILD_SHARED_LIBS "Build shared libraries" OFF )
22
+ option (GLFW_INSTALL "Generate installation target" OFF )
23
+ option (GLFW_VULKAN_STATIC "Assume the Vulkan loader is linked with the application" OFF )
20
24
21
25
include (GNUInstallDirs)
22
26
include (CMakeDependentOption)
@@ -60,7 +64,8 @@ if (GLFW_BUILD_DOCS)
60
64
endif ()
61
65
62
66
#--------------------------------------------------------------------
63
- # Set compiler specific flags
67
+ # Apply Microsoft C runtime library option
68
+ # This is here because it also applies to tests and examples
64
69
#--------------------------------------------------------------------
65
70
if (MSVC )
66
71
if (MSVC90 )
@@ -73,22 +78,26 @@ if (MSVC)
73
78
# Workaround for VS 2008 not shipping with stdint.h
74
79
list (APPEND glfw_INCLUDE_DIRS "${GLFW_SOURCE_DIR} /deps/vs2008" )
75
80
endif ()
81
+ endif ()
76
82
77
- if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
83
+ if (MSVC AND NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
84
+ if (CMAKE_VERSION VERSION_LESS 3.15)
78
85
foreach (flag CMAKE_C_FLAGS
79
86
CMAKE_C_FLAGS_DEBUG
80
87
CMAKE_C_FLAGS_RELEASE
81
88
CMAKE_C_FLAGS_MINSIZEREL
82
89
CMAKE_C_FLAGS_RELWITHDEBINFO)
83
90
84
- if (${ flag} MATCHES "/MD" )
91
+ if (flag MATCHES "/MD" )
85
92
string (REGEX REPLACE "/MD" "/MT" ${flag} "${${flag} }" )
86
93
endif ()
87
- if (${ flag} MATCHES "/MDd" )
94
+ if (flag MATCHES "/MDd" )
88
95
string (REGEX REPLACE "/MDd" "/MTd" ${flag} "${${flag} }" )
89
96
endif ()
90
97
91
98
endforeach ()
99
+ else ()
100
+ set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>" )
92
101
endif ()
93
102
endif ()
94
103
@@ -125,6 +134,9 @@ if (MINGW)
125
134
if (_GLFW_HAS_64ASLR)
126
135
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--high-entropy-va ${CMAKE_SHARED_LINKER_FLAGS} " )
127
136
endif ()
137
+
138
+ # Clear flags again to avoid breaking later tests
139
+ set (CMAKE_REQUIRED_FLAGS)
128
140
endif ()
129
141
130
142
#--------------------------------------------------------------------
@@ -241,7 +253,7 @@ if (_GLFW_WAYLAND)
241
253
find_package (WaylandScanner REQUIRED)
242
254
find_package (WaylandProtocols 1.15 REQUIRED)
243
255
244
- list (APPEND glfw_PKG_DEPS "wayland-egl " )
256
+ list (APPEND glfw_PKG_DEPS "wayland-client " )
245
257
246
258
list (APPEND glfw_INCLUDE_DIRS "${Wayland_INCLUDE_DIRS} " )
247
259
list (APPEND glfw_LIBRARIES "${Wayland_LIBRARIES} " "${CMAKE_THREAD_LIBS_INIT} " )
@@ -251,10 +263,9 @@ if (_GLFW_WAYLAND)
251
263
252
264
include (CheckIncludeFiles)
253
265
include (CheckFunctionExists)
254
- check_include_files(xkbcommon/xkbcommon-compose.h HAVE_XKBCOMMON_COMPOSE_H)
255
266
check_function_exists(memfd_create HAVE_MEMFD_CREATE)
256
267
257
- if (NOT ( " ${ CMAKE_SYSTEM_NAME} " STREQUAL "Linux" ) )
268
+ if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux" )
258
269
find_package (EpollShim)
259
270
if (EPOLLSHIM_FOUND)
260
271
list (APPEND glfw_INCLUDE_DIRS "${EPOLLSHIM_INCLUDE_DIRS} " )
0 commit comments