summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt11
1 files changed, 10 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3de7156..77627ae 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,16 @@ cmake_minimum_required(VERSION 2.6)
# Set flags and definitions
add_definitions(-D_XOPEN_SOURCE=500 -D_GNU_SOURCE)
-set(CMAKE_C_FLAGS "-std=c99 -fstack-protector-strong -Wall -W -Wformat-security -pedantic -g -Wextra -Wno-unused-parameter -Wformat -Wparentheses -Wl,--no-undefined ${CMAKE_C_FLAGS}")
+set(CMAKE_C_FLAGS "-std=c99 -Wall -W -Wformat-security -pedantic -g -Wextra -Wno-unused-parameter -Wformat -Wparentheses -Wl,--no-undefined ${CMAKE_C_FLAGS}")
+
+# Some compilers don't have -fstack-protector-strong yet
+include(CheckCCompilerFlag)
+check_c_compiler_flag(-fstack-protector-strong HAS_STACK_PROTECTOR_STRONG)
+if(HAS_STACK_PROTECTOR_STRONG)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-strong")
+else(HAS_STACK_PROTECTOR_STRONG)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
+endif()
# Set LIB_SUFFIX to 64 on 64bit architectures
if(CMAKE_SIZEOF_VOID_P EQUAL 4)