diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2021-08-17 13:37:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-17 13:37:54 (GMT) |
commit | 6241e6985ba4025a6f68fd867692df8053733922 (patch) | |
tree | 23bb206cfa4786398999f5b8029d6303e29307c3 /config | |
parent | cc866bc154d761157ad0a1dbc96b20df946b8970 (diff) | |
download | hdf5-6241e6985ba4025a6f68fd867692df8053733922.zip hdf5-6241e6985ba4025a6f68fd867692df8053733922.tar.gz hdf5-6241e6985ba4025a6f68fd867692df8053733922.tar.bz2 |
Fix clang/sanitizer for windows #883 (#903)
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 |