diff --git a/CMakeLists.txt b/CMakeLists.txt index ca14984c69a..c7f92fb395b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,31 +39,6 @@ include(UI/cmake/EnableLagom.cmake) include(lagom_options NO_POLICY_SCOPE) include(lagom_compile_options) -if (ENABLE_ADDRESS_SANITIZER) - add_cxx_compile_options(-fsanitize=address -fno-omit-frame-pointer) - add_cxx_link_options(-fsanitize=address) - add_swift_compile_options(-sanitize=address) - add_swift_link_options(-sanitize=address) -endif() - -if (ENABLE_MEMORY_SANITIZER) - add_cxx_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer) - add_cxx_link_options(-fsanitize=memory -fsanitize-memory-track-origins) -endif() - -if (ENABLE_UNDEFINED_SANITIZER AND (APPLE OR NOT ENABLE_SWIFT)) - add_cxx_compile_options(-fsanitize=undefined -fno-omit-frame-pointer) - if (UNDEFINED_BEHAVIOR_IS_FATAL) - add_cxx_compile_options(-fno-sanitize-recover=undefined) - endif() - if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17") - add_cxx_compile_options(-fno-sanitize=function) - endif() - add_cxx_link_options(-fsanitize=undefined) - add_swift_compile_options(-sanitize=undefined) - add_swift_link_options(-sanitize=undefined) -endif() - if (HAIKU) # Haiku needs some extra compile definitions to make important stuff in its headers available. add_compile_definitions(_DEFAULT_SOURCE) diff --git a/Meta/CMake/common_compile_options.cmake b/Meta/CMake/common_compile_options.cmake index efef92b95dd..1c09174be98 100644 --- a/Meta/CMake/common_compile_options.cmake +++ b/Meta/CMake/common_compile_options.cmake @@ -140,3 +140,5 @@ endif() if (NOT MSVC) add_cxx_compile_options(-fstrict-flex-arrays=2) endif() + +include(${CMAKE_CURRENT_LIST_DIR}/sanitizers.cmake) diff --git a/Meta/CMake/sanitizers.cmake b/Meta/CMake/sanitizers.cmake new file mode 100644 index 00000000000..1f336ae98ce --- /dev/null +++ b/Meta/CMake/sanitizers.cmake @@ -0,0 +1,24 @@ +if (ENABLE_ADDRESS_SANITIZER) + add_cxx_compile_options(-fsanitize=address -fno-omit-frame-pointer) + add_cxx_link_options(-fsanitize=address) + add_swift_compile_options(-sanitize=address) + add_swift_link_options(-sanitize=address) +endif() + +if (ENABLE_MEMORY_SANITIZER) + add_cxx_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer) + add_cxx_link_options(-fsanitize=memory -fsanitize-memory-track-origins) +endif() + +if (ENABLE_UNDEFINED_SANITIZER AND (APPLE OR NOT ENABLE_SWIFT)) + add_cxx_compile_options(-fsanitize=undefined -fno-omit-frame-pointer) + if (UNDEFINED_BEHAVIOR_IS_FATAL) + add_cxx_compile_options(-fno-sanitize-recover=undefined) + endif() + if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17") + add_cxx_compile_options(-fno-sanitize=function) + endif() + add_cxx_link_options(-fsanitize=undefined) + add_swift_compile_options(-sanitize=undefined) + add_swift_link_options(-sanitize=undefined) +endif() diff --git a/Meta/Lagom/CMakeLists.txt b/Meta/Lagom/CMakeLists.txt index c3800076ebb..bee87202368 100644 --- a/Meta/Lagom/CMakeLists.txt +++ b/Meta/Lagom/CMakeLists.txt @@ -89,31 +89,6 @@ if (EMSCRIPTEN) add_cxx_link_options(--emrun "SHELL:-s ALLOW_MEMORY_GROWTH") endif() -if (ENABLE_ADDRESS_SANITIZER) - add_cxx_compile_options(-fsanitize=address -fno-omit-frame-pointer) - add_cxx_link_options(-fsanitize=address) - add_swift_compile_options(-sanitize=address) - add_swift_link_options(-sanitize=address) -endif() - -if (ENABLE_MEMORY_SANITIZER) - add_cxx_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer) - add_cxx_link_options(-fsanitize=memory -fsanitize-memory-track-origins) -endif() - -if (ENABLE_UNDEFINED_SANITIZER AND (APPLE OR NOT ENABLE_SWIFT)) - add_cxx_compile_options(-fsanitize=undefined -fno-omit-frame-pointer) - if (UNDEFINED_BEHAVIOR_IS_FATAL) - add_cxx_compile_options(-fno-sanitize-recover=undefined) - endif() - if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17") - add_cxx_compile_options(-fno-sanitize=function) - endif() - add_cxx_link_options(-fsanitize=undefined) - add_swift_compile_options(-sanitize=undefined) - add_swift_link_options(-sanitize=undefined) -endif() - if (ENABLE_COMPILETIME_FORMAT_CHECK) add_compile_definitions(ENABLE_COMPILETIME_FORMAT_CHECK) endif()