|
|
|
@ -66,17 +66,6 @@ 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) |
|
|
|
|
foreach (flag CMAKE_C_FLAGS |
|
|
|
|
CMAKE_C_FLAGS_DEBUG |
|
|
|
@ -95,44 +84,6 @@ if (MSVC) |
|
|
|
|
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}") |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
# Clear flags again to avoid breaking later tests |
|
|
|
|
set(CMAKE_REQUIRED_FLAGS) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------- |
|
|
|
|
# Detect and select backend APIs |
|
|
|
|
#-------------------------------------------------------------------- |
|
|
|
|