summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2021-08-17 13:37:54 (GMT)
committerGitHub <noreply@github.com>2021-08-17 13:37:54 (GMT)
commit6241e6985ba4025a6f68fd867692df8053733922 (patch)
tree23bb206cfa4786398999f5b8029d6303e29307c3 /config
parentcc866bc154d761157ad0a1dbc96b20df946b8970 (diff)
downloadhdf5-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.cmake10
-rw-r--r--config/toolchain/clang.cmake9
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