aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CompilerChecks.cmake9
-rw-r--r--example/uptime/CMakeLists.txt14
-rw-r--r--src/CMakeLists.txt40
-rw-r--r--tests/CMakeLists.txt5
4 files changed, 46 insertions, 22 deletions
diff --git a/CompilerChecks.cmake b/CompilerChecks.cmake
index 4d5ef02..be428dc 100644
--- a/CompilerChecks.cmake
+++ b/CompilerChecks.cmake
@@ -65,10 +65,18 @@ if (UNIX)
check_c_compiler_flag_ssp("-fstack-protector-strong" WITH_STACK_PROTECTOR_STRONG)
if (WITH_STACK_PROTECTOR_STRONG)
list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector-strong")
+ # This is needed as Solaris has a seperate libssp
+ if (SOLARIS)
+ list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector-strong")
+ endif()
else (WITH_STACK_PROTECTOR_STRONG)
check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
if (WITH_STACK_PROTECTOR)
list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector")
+ # This is needed as Solaris has a seperate libssp
+ if (SOLARIS)
+ list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector")
+ endif()
endif()
endif (WITH_STACK_PROTECTOR_STRONG)
@@ -100,3 +108,4 @@ if (OSX)
endif()
set(DEFAULT_C_COMPILE_FLAGS ${SUPPORTED_COMPILER_FLAGS} CACHE INTERNAL "Default C Compiler Flags" FORCE)
+set(DEFAULT_LINK_FLAGS ${SUPPORTED_LINKER_FLAGS} CACHE INTERNAL "Default C Linker Flags" FORCE)
diff --git a/example/uptime/CMakeLists.txt b/example/uptime/CMakeLists.txt
index 99924bd..cab1e88 100644
--- a/example/uptime/CMakeLists.txt
+++ b/example/uptime/CMakeLists.txt
@@ -9,13 +9,19 @@ add_library(proc_uptime proc_uptime.c)
add_executable(uptime uptime.c)
target_compile_options(uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
target_link_libraries(uptime proc_uptime)
+set_property(TARGET
+ uptime
+ PROPERTY
+ LINK_FLAGS
+ "${DEFAULT_LINK_FLAGS}")
add_executable(test_uptime test_uptime.c)
target_compile_options(test_uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
target_link_libraries(test_uptime ${CMOCKA_SHARED_LIBRARY})
-
-set_target_properties(test_uptime
- PROPERTIES
- LINK_FLAGS "-Wl,--wrap=uptime")
+set_property(TARGET
+ test_uptime
+ PROPERTY
+ LINK_FLAGS
+ "${DEFAULT_LINK_FLAGS} -Wl,--wrap=uptime")
add_test(test_uptime ${CMAKE_CURRENT_BINARY_DIR}/test_uptime)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1a3d3be..e98bb82 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -52,14 +52,17 @@ if (CMOCKA_PLATFORM_INCLUDE)
endif()
target_link_libraries(${CMOCKA_SHARED_LIBRARY} ${CMOCKA_LINK_LIBRARIES})
-set_target_properties(
- ${CMOCKA_SHARED_LIBRARY}
- PROPERTIES
- OUTPUT_NAME
- cmocka
- DEFINE_SYMBOL
- CMOCKA_EXPORTS
-)
+set_property(TARGET
+ ${CMOCKA_SHARED_LIBRARY}
+ PROPERTY
+ OUTPUT_NAME
+ cmocka
+ PROPERTY
+ DEFINE_SYMBOL
+ CMOCKA_EXPORTS
+ PROPERTY
+ LINKER_FLAGS
+ "${DEFAULT_LINK_FLAGS}")
if (NOT WIN32)
set_target_properties(
@@ -99,16 +102,17 @@ if (WITH_STATIC_LIB)
-DCMOCKA_PLATFORM_INCLUDE)
endif()
- set_target_properties(
- ${CMOCKA_STATIC_LIBRARY}
- PROPERTIES
- VERSION
- ${LIBRARY_VERSION}
- SOVERSION
- ${LIBRARY_SOVERSION}
- OUTPUT_NAME
- cmocka
- )
+ set_property(TARGET
+ ${CMOCKA_STATIC_LIBRARY}
+ PROPERTY
+ OUTPUT_NAME
+ cmocka
+ PROPERTY
+ DEFINE_SYMBOL
+ CMOCKA_EXPORTS
+ PROPERTY
+ LINK_FLAGS
+ "${DEFAULT_LINK_FLAGS}")
if (NOT WIN32)
set_target_properties(
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index d89a71e..33d2578 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -24,6 +24,11 @@ foreach(_CMOCKA_TEST ${CMOCKA_TESTS})
add_cmocka_test(${_CMOCKA_TEST} ${_CMOCKA_TEST}.c ${CMOCKA_STATIC_LIBRARY})
target_include_directories(${_CMOCKA_TEST} PRIVATE ${cmocka_BINARY_DIR})
target_compile_options(${_CMOCKA_TEST} PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
+ set_property(TARGET
+ ${_CMOCKA_TEST}
+ PROPERTY
+ LINK_FLAGS
+ "${DEFAULT_LINK_FLAGS}")
endforeach()
### Special Cases