Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Asteborg <maastebo@microsoft.com>2020-07-17 08:40:08 +0300
committerRalph Giles <giles@thaumas.net>2020-08-08 20:10:51 +0300
commitb83dd52868326a401c8578041e3dbea439d53f11 (patch)
treedb81873de562cb5b277b43a9f25c8cade421024b /CMakeLists.txt
parentd4b8707b1460c90682ee91f1283d361b90feddd2 (diff)
cmake - MINGW check for ssp lib and link if security features is enabled
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt22
1 files changed, 16 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5cc31160..244ad139 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -109,10 +109,19 @@ cmake_dependent_option(OPUS_STACK_PROTECTOR
OFF)
add_feature_info(OPUS_STACK_PROTECTOR OPUS_STACK_PROTECTOR ${OPUS_STACK_PROTECTOR_HELP_STR})
-if(NOT MSVC AND NOT MINGW)
- set(OPUS_FORTIFY_SOURCE_HELP_STR "add protection against buffer overflows.")
- option(OPUS_FORTIFY_SOURCE ${OPUS_FORTIFY_SOURCE_HELP_STR} ON)
- add_feature_info(OPUS_FORTIFY_SOURCE OPUS_FORTIFY_SOURCE ${OPUS_FORTIFY_SOURCE_HELP_STR})
+if(NOT MSVC)
+ set(OPUS_FORTIFY_SOURCE_HELP_STR "add protection against buffer overflows.")
+ cmake_dependent_option(OPUS_FORTIFY_SOURCE
+ ${OPUS_FORTIFY_SOURCE_HELP_STR}
+ ON
+ "FORTIFY_SOURCE_SUPPORTED"
+ OFF)
+ add_feature_info(OPUS_FORTIFY_SOURCE OPUS_FORTIFY_SOURCE ${OPUS_FORTIFY_SOURCE_HELP_STR})
+endif()
+
+if(MINGW AND (OPUS_FORTIFY_SOURCE OR OPUS_STACK_PROTECTOR))
+ # ssp lib is needed for security features for MINGW
+ list(APPEND OPUS_REQUIRED_LIBRARIES ssp)
endif()
if(OPUS_CPU_X86 OR OPUS_CPU_X64)
@@ -247,8 +256,9 @@ target_include_directories(
target_link_libraries(opus PRIVATE ${OPUS_REQUIRED_LIBRARIES})
target_compile_definitions(opus PRIVATE OPUS_BUILD ENABLE_HARDENING)
-if(OPUS_FORTIFY_SOURCE)
- target_compile_definitions(opus PRIVATE _FORTIFY_SOURCE=2)
+if(OPUS_FORTIFY_SOURCE AND NOT MSVC)
+ target_compile_definitions(opus PRIVATE
+ $<$<NOT:$<CONFIG:debug>>:_FORTIFY_SOURCE=2>)
endif()
if(OPUS_FLOAT_APPROX)