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) |