diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index f772e3d9e56..52ba2f44026 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -290,7 +290,7 @@ function(add_qtc_library name) qtc_enable_separate_debug_info(${name} "${IDE_LIBRARY_PATH}") if (WITH_SANITIZE) - qtc_enable_sanitize(${SANITIZE_FLAGS}) + qtc_enable_sanitize("${name}" ${SANITIZE_FLAGS}) endif() if (NAMELINK_OPTION AND NOT QTC_STATIC_BUILD) @@ -460,7 +460,7 @@ function(add_qtc_plugin target_name) endif() if (WITH_SANITIZE) - qtc_enable_sanitize(${SANITIZE_FLAGS}) + qtc_enable_sanitize("${name}" ${SANITIZE_FLAGS}) endif() extend_qtc_target(${target_name} @@ -674,6 +674,10 @@ function(add_qtc_executable name) add_executable("${name}" ${_arg_SOURCES}) + if (WITH_SANITIZE) + qtc_enable_sanitize("${name}" ${SANITIZE_FLAGS}) + endif() + extend_qtc_target("${name}" INCLUDES "${CMAKE_BINARY_DIR}/src" ${_arg_INCLUDES} DEFINES ${default_defines_copy} ${TEST_DEFINES} ${_arg_DEFINES} diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake index 359fed79398..4efb59c988d 100644 --- a/cmake/QtCreatorAPIInternal.cmake +++ b/cmake/QtCreatorAPIInternal.cmake @@ -168,11 +168,12 @@ function(qtc_enable_release_for_debug_configuration) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" PARENT_SCOPE) endfunction() -function(qtc_enable_sanitize _sanitize_flags) +function(qtc_enable_sanitize _target _sanitize_flags) + target_compile_options("${_target}" PUBLIC -fsanitize=${SANITIZE_FLAGS}) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=${_sanitize_flags}") + target_link_options("${_target}" PUBLIC -fsanitize=${SANITIZE_FLAGS}) endif() - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" PARENT_SCOPE) endfunction() function(qtc_add_link_flags_no_undefined target)