diff --git a/cmake/CustomCommands.cmake b/cmake/CustomCommands.cmake index 07a60c7c29095d0b7583eccb5b84daa931672860..7baa296e7ba67c9685dd8960af4d9311d52876c9 100644 --- a/cmake/CustomCommands.cmake +++ b/cmake/CustomCommands.cmake @@ -11,6 +11,15 @@ macro(add_cxx_compiler_flag _flag) endif() endmacro() +macro(add_cxx_compiler_debug_flag _flag) + string(REPLACE "-" "_" _flag_var ${_flag}) + check_cxx_compiler_flag("${_flag}" CXX_COMPILER_${_flag_var}_OK) + + if(CXX_COMPILER_${_flag_var}_OK) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${_flag}") + endif() +endmacro() + macro(add_c_compiler_flag _flag) string(REPLACE "-" "_" _flag_var ${_flag}) diff --git a/cmake/MoReFEMSettings.cmake b/cmake/MoReFEMSettings.cmake index 53452c27ab1a16d72117c7d4a990681eb76ea682..260bebc9e2c817cb0b1cf6a2ea6488577c9b34b3 100644 --- a/cmake/MoReFEMSettings.cmake +++ b/cmake/MoReFEMSettings.cmake @@ -119,7 +119,8 @@ endif() if(MOREFEM_ASAN) - set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + add_cxx_compiler_debug_flag("-fno-omit-frame-pointer") + add_cxx_compiler_debug_flag("-fsanitize=address") set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") endif()