CMakeLists.txt
changeset 8907 7e9c6efe90fd
parent 8734 ecb0a97100cf
child 8929 499243eb04d1
equal deleted inserted replaced
8906:82756a90a343 8907:7e9c6efe90fd
   223     set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG")
   223     set(CMAKE_C_FLAGS_DEBUG "-Wall -DDEBUG")
   224     set(CMAKE_CXX_FLAGS_RELEASE "")
   224     set(CMAKE_CXX_FLAGS_RELEASE "")
   225     set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
   225     set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
   226 endif()
   226 endif()
   227 
   227 
   228 #TODO: find out why we need this...
   228 
       
   229 #TESTING TIME
   229 include(CheckCCompilerFlag)
   230 include(CheckCCompilerFlag)
       
   231 
       
   232 #check for noexecstack on ELF, should be set on Gentoo and similar
   230 set(CMAKE_REQUIRED_FLAGS "-Wl,-z -Wl,noexecstack")
   233 set(CMAKE_REQUIRED_FLAGS "-Wl,-z -Wl,noexecstack")
   231 check_c_compiler_flag("" HAVE_NOEXECSTACK) #empty because we are testing a linker flag
   234 check_c_compiler_flag("" HAVE_NOEXECSTACK) #empty because we are testing a linker flag
   232 if(HAVE_NOEXECSTACK)
   235 if(HAVE_NOEXECSTACK)
   233     list(APPEND pascal_flags "-k-z" "-knoexecstack")
   236     list(APPEND pascal_flags "-k-z" "-knoexecstack")
   234     if(NOT ${MINIMAL_FLAGS})
   237     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
   235         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
   238 endif()
   236     endif()
   239 unset(CMAKE_REQUIRED_FLAGS)
       
   240 
       
   241 #check for ASLR and DEP security features on Windows
       
   242 #both supported in binutils >= 2.20, available since Vista and XP SP2 respectively
       
   243 set(CMAKE_REQUIRED_FLAGS "-Wl,--nxcompat -Wl,--dynamicbase")
       
   244 check_c_compiler_flag("" HAVE_WINASLRDEP) #empty because we are testing a linker flag
       
   245 if(HAVE_WINASLRDEP)
       
   246     list(APPEND pascal_flags "-k--nxcompat" "-k--dynamicbase")
       
   247     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
   237 endif()
   248 endif()
   238 unset(CMAKE_REQUIRED_FLAGS)
   249 unset(CMAKE_REQUIRED_FLAGS)
   239 
   250 
   240 #parse additional parameters
   251 #parse additional parameters
   241 if(FPFLAGS OR GHFLAGS)
   252 if(FPFLAGS OR GHFLAGS)