From 486f71d50cc2de0bd06910ebe64785d63e745eab Mon Sep 17 00:00:00 2001 From: franneck94 Date: Mon, 4 Mar 2024 10:32:02 +0100 Subject: [PATCH] up --- CMakeLists.txt | 2 +- cmake/Sanitizer.cmake | 43 +++++++++++-------------------------------- 2 files changed, 12 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cae0083..0fdd3ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ add_clang_format_target() if(ENABLE_SANITIZE_ADDR OR ENABLE_SANITIZE_UNDEF) include(Sanitizer) - add_sanitizer_flags() + add_sanitizer_flags(ENABLE_SANITIZE_ADDR ENABLE_SANITIZE_UNDEF) endif() if(ENABLE_COVERAGE) diff --git a/cmake/Sanitizer.cmake b/cmake/Sanitizer.cmake index 13b3e3c..60d193c 100644 --- a/cmake/Sanitizer.cmake +++ b/cmake/Sanitizer.cmake @@ -1,52 +1,31 @@ -function(add_sanitizer_flags) - if(NOT ENABLE_SANITIZE_ADDR AND NOT ENABLE_SANITIZE_UNDEF) +function(add_sanitizer_flags enable_sanitize_addr enable_sanitize_undef) + if (NOT enable_sanitize_addr AND NOT enable_sanitize_undef) + message(STATUS "Sanitizers deactivated.") return() endif() - if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "GNU") + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") add_compile_options("-fno-omit-frame-pointer") add_link_options("-fno-omit-frame-pointer") - if(ENABLE_SANITIZE_ADDR) + if(enable_sanitize_addr) add_compile_options("-fsanitize=address") add_link_options("-fsanitize=address") endif() - if(ENABLE_SANITIZE_UNDEF) + if(enable_sanitize_undef) add_compile_options("-fsanitize=undefined") add_link_options("-fsanitize=undefined") endif() - - if(ENABLE_SANITIZE_LEAK) - add_compile_options("-fsanitize=leak") - add_link_options("-fsanitize=leak") - endif() - - if(ENABLE_SANITIZE_THREAD) - if(ENABLE_SANITIZE_ADDR OR ENABLE_SANITIZE_LEAK) - message(WARNING "thread does not work with: address and leak") - endif() - add_compile_options("-fsanitize=thread") - add_link_options("-fsanitize=thread") - endif() - elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC") - if(ENABLE_SANITIZE_ADDR) + elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + if(enable_sanitize_addr) add_compile_options("/fsanitize=address") endif() - if(ENABLE_SANITIZE_UNDEF) - message(STATUS "sanitize=undefined not avail. for MSVC") - endif() - - if(ENABLE_SANITIZE_LEAK) - message(STATUS "sanitize=leak not avail. for MSVC") - endif() - - if(ENABLE_SANITIZE_THREAD) - message(STATUS "sanitize=thread not avail. for MSVC") + if(enable_sanitize_undef) + message(STATUS "Undefined sanitizer not impl. for MSVC!") endif() else() - message(WARNING "This sanitizer not supported in this environment") - return() + message(STATUS "Sanitizer not supported in this environment!") endif() endfunction(add_sanitizer_flags)