diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2021-08-16 13:05:25 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-16 13:05:25 (GMT) |
commit | 6968906418f9ecfc383ad960c975e65a504743b7 (patch) | |
tree | bc342220aa0bd9c0e5d9debe12a12e150015d9be /config | |
parent | c0f1db4b96d43cd2f7bcd0134e107061e866d6e3 (diff) | |
download | hdf5-6968906418f9ecfc383ad960c975e65a504743b7.zip hdf5-6968906418f9ecfc383ad960c975e65a504743b7.tar.gz hdf5-6968906418f9ecfc383ad960c975e65a504743b7.tar.bz2 |
Fix clang/sanitizer for windows (#883)
* Fix clang/sanitizer for windows
* Restrict MSVC version for sanitize
Diffstat (limited to 'config')
-rw-r--r-- | config/sanitizer/sanitizers.cmake | 10 | ||||
-rw-r--r-- | config/toolchain/clang.cmake | 9 |
2 files changed, 12 insertions, 7 deletions
diff --git a/config/sanitizer/sanitizers.cmake b/config/sanitizer/sanitizers.cmake index 0803279..22b9e3c 100644 --- a/config/sanitizer/sanitizers.cmake +++ b/config/sanitizer/sanitizers.cmake @@ -33,10 +33,10 @@ if(USE_SANITIZER) if(INTEL_CLANG OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - append("-fno-omit-frame-pointer" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS) - message(STATUS "Building with sanitize, base flags=${CMAKE_C_SANITIZER_FLAGS}") - if(UNIX) + append("-fno-omit-frame-pointer" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS) + message(STATUS "Building with sanitize, base flags=${CMAKE_C_SANITIZER_FLAGS}") + if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG") append("-O1" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS) endif() @@ -80,10 +80,10 @@ if(USE_SANITIZER) message( FATAL_ERROR "Unsupported value of USE_SANITIZER: ${USE_SANITIZER}") endif() - elseif(MSVC) + elseif(MSVC AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 19.29) if(USE_SANITIZER MATCHES "([Aa]ddress)") message(STATUS "Building with Address sanitizer") - append("-fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS) + append("/fsanitize=address" CMAKE_C_SANITIZER_FLAGS CMAKE_CXX_SANITIZER_FLAGS) else() message(FATAL_ERROR "This sanitizer not yet supported in the MSVC environment: ${USE_SANITIZER}") endif() diff --git a/config/toolchain/clang.cmake b/config/toolchain/clang.cmake index 5e3b13a..af176aa 100644 --- a/config/toolchain/clang.cmake +++ b/config/toolchain/clang.cmake @@ -3,8 +3,13 @@ set(CMAKE_COMPILER_VENDOR "clang") -set(CMAKE_C_COMPILER clang) -set(CMAKE_CXX_COMPILER clang++) +if(WIN32) + set(CMAKE_C_COMPILER clang-cl) + set(CMAKE_CXX_COMPILER clang-cl) +else() + set(CMAKE_C_COMPILER clang) + set(CMAKE_CXX_COMPILER clang++) +endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # the following is used if cross-compiling |