forked from Mirrors/openclonk
Win32/MinGW: Enable ASLR and DEP on the executable image
parent
bd371e38c1
commit
f53f7224b7
|
@ -35,6 +35,8 @@ set(OC_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||||
separate_arguments(OC_CXX_FLAGS)
|
separate_arguments(OC_CXX_FLAGS)
|
||||||
set(OC_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
set(OC_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
||||||
separate_arguments(OC_CXX_FLAGS_DEBUG)
|
separate_arguments(OC_CXX_FLAGS_DEBUG)
|
||||||
|
set(OC_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS})
|
||||||
|
separate_arguments(OC_EXE_LINKER_FLAGS)
|
||||||
set(OC_EXE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
|
set(OC_EXE_LINKER_FLAGS_DEBUG ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
|
||||||
separate_arguments(OC_EXE_LINKER_FLAGS_DEBUG)
|
separate_arguments(OC_EXE_LINKER_FLAGS_DEBUG)
|
||||||
|
|
||||||
|
@ -144,6 +146,11 @@ endif()
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
list(APPEND OC_CXX_FLAGS "-Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo -Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo")
|
list(APPEND OC_CXX_FLAGS "-Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo -Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32 AND MINGW)
|
||||||
|
# Activate DEP and ASLR
|
||||||
|
list(APPEND OC_EXE_LINKER_FLAGS "--nxcompat --dynamicbase")
|
||||||
|
endif()
|
||||||
############################################################################
|
############################################################################
|
||||||
# List target source files. Don't directly create a target since we condi-
|
# List target source files. Don't directly create a target since we condi-
|
||||||
# tionally add more sources depending on configuration options later.
|
# tionally add more sources depending on configuration options later.
|
||||||
|
@ -1078,8 +1085,15 @@ set(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "Flags used by the compiler during deb
|
||||||
foreach(FLAG ${OC_CXX_FLAGS_DEBUG})
|
foreach(FLAG ${OC_CXX_FLAGS_DEBUG})
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}" CACHE STRING "Flags used by the compiler during debug builds." FORCE)
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}" CACHE STRING "Flags used by the compiler during debug builds." FORCE)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
if(OC_EXE_LINKER_FLAGS)
|
||||||
|
list(REMOVE_DUPLICATES OC_EXE_LINKER_FLAGS)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "" CACHE STRING "Flags used by the linker." FORCE)
|
||||||
|
foreach(FLAG ${OC_EXE_LINKER_FLAGS})
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG}" CACHE STRING "Flags used by the linker." FORCE)
|
||||||
|
endforeach()
|
||||||
if(OC_EXE_LINKER_FLAGS_DEBUG)
|
if(OC_EXE_LINKER_FLAGS_DEBUG)
|
||||||
list(REMOVE_DUPLICATES OC_CXX_FLAGS_DEBUG)
|
list(REMOVE_DUPLICATES OC_EXE_LINKER_FLAGS_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Flags used by the linker during debug builds." FORCE)
|
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Flags used by the linker during debug builds." FORCE)
|
||||||
foreach(FLAG ${OC_EXE_LINKER_FLAGS_DEBUG})
|
foreach(FLAG ${OC_EXE_LINKER_FLAGS_DEBUG})
|
||||||
|
|
Loading…
Reference in New Issue