diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-06-24 12:05:29 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-06-25 10:39:56 +0000 |
commit | c4d07c4d42163a8844424568d050acd308fc4bba (patch) | |
tree | d47dfa9092e5626d638bc5f5aa95cb15f0d2142f | |
parent | d3efffd3bfa1bf81a73480e1d8e49f1adcd8d864 (diff) |
CMake: Handle fuzzer-no-link sanitizer feature name correctly
Task-number: QTBUG-87989
Change-Id: Ife42f1fe001c5fafd10981f23dcd387cacc15276
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 9a9da3aad2e59ed9f1f7e8210a6bd5de741d9e7c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | cmake/QtSanitizerHelpers.cmake | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cmake/QtSanitizerHelpers.cmake b/cmake/QtSanitizerHelpers.cmake index 5514465178..90a1f738cb 100644 --- a/cmake/QtSanitizerHelpers.cmake +++ b/cmake/QtSanitizerHelpers.cmake @@ -1,6 +1,7 @@ function(qt_internal_set_up_sanitizer_features) set(ECM_ENABLE_SANITIZERS "" CACHE STRING "Enable sanitizers") - set_property(CACHE ECM_ENABLE_SANITIZERS PROPERTY STRINGS "address;memory;thread;undefined") + set_property(CACHE ECM_ENABLE_SANITIZERS PROPERTY STRINGS + "address;memory;thread;undefined;fuzzer;fuzzer-no-link") # If FEATURE_sanitize_foo is set on the command line, make sure to set the appropriate # ECM_ENABLE_SANITIZERS value. Also the other way around. This basically allows setting either @@ -15,6 +16,12 @@ function(qt_internal_set_up_sanitizer_features) list(APPEND enabled_sanitizer_features "${sanitizer_type}") endif() endforeach() + + # There's a mismatch between fuzzer-no-link ECM option and fuzzer_no_link Qt feature. + if(FEATURE_sanitize_fuzzer_no_link) + list(APPEND enabled_sanitizer_features "fuzzer-no-link") + endif() + if(enabled_sanitizer_features) set(ECM_ENABLE_SANITIZERS "${enabled_sanitizer_features}" CACHE STRING "Enable sanitizers" FORCE) @@ -24,6 +31,10 @@ function(qt_internal_set_up_sanitizer_features) foreach(sanitizer_type ${ECM_ENABLE_SANITIZERS}) message(STATUS "Enabling sanitizer: ${sanitizer_type}") set(feature_name "FEATURE_sanitize_${sanitizer_type}") + + # Transform fuzzer-no-link dashes to underscores. + string(REGEX REPLACE "-" "_" feature_name "${feature_name}") + set(${feature_name} "ON" CACHE BOOL "Enable ${sanitizer_type} sanitizer" FORCE) set(QT_${feature_name} "ON" CACHE BOOL "Enable ${sanitizer_type} sanitizer" FORCE) endforeach() |