summaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-11-17 10:12:23 +0000
committerAlexey Samsonov <samsonov@google.com>2013-11-17 10:12:23 +0000
commit3125de9e3048bc505344053d3518cccab7ee6897 (patch)
tree984a49de14cbcd08911189192dcc4a72e423297d /lib/CMakeLists.txt
parentc85d6274d127d988539ed6a35242d3f82c4eb5bf (diff)
CMake: don't build sanitizer runtimes on 64-bit Windows (it's unsupported for now)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194958 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r--lib/CMakeLists.txt26
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 8b382c140..d4624a692 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -3,19 +3,27 @@
# Don't build sanitizers in the bootstrap build.
if(LLVM_USE_SANITIZER STREQUAL "")
- if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux|Windows")
- # AddressSanitizer is supported on Linux and Mac OS X.
- # Windows support is experimental.
+ # AddressSanitizer is supported on Linux and Mac OS X.
+ # 32-bit Windows support is experimental.
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux")
+ set(SUPPORTS_BUILDING_ASAN TRUE)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(SUPPORTS_BUILDING_ASAN TRUE)
+ else()
+ set(SUPPORTS_BUILDING_ASAN FALSE)
+ endif()
+ if(SUPPORTS_BUILDING_ASAN)
add_subdirectory(asan)
add_subdirectory(interception)
add_subdirectory(sanitizer_common)
- if(NOT ANDROID AND NOT WIN32)
- add_subdirectory(lsan)
- add_subdirectory(profile)
- add_subdirectory(ubsan)
- endif()
endif()
- if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT ANDROID)
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" AND NOT ANDROID)
+ # LSan, UBsan and profile can be built on Mac OS and Linux.
+ add_subdirectory(lsan)
+ add_subdirectory(profile)
+ add_subdirectory(ubsan)
+ endif()
+ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT ANDROID)
# ThreadSanitizer and MemorySanitizer are supported on Linux only.
add_subdirectory(tsan)
add_subdirectory(msan)