summaryrefslogtreecommitdiff
path: root/lib/lsan/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lsan/CMakeLists.txt')
-rw-r--r--lib/lsan/CMakeLists.txt27
1 files changed, 7 insertions, 20 deletions
diff --git a/lib/lsan/CMakeLists.txt b/lib/lsan/CMakeLists.txt
index 3018a06622ee2..2ea765de1bc7d 100644
--- a/lib/lsan/CMakeLists.txt
+++ b/lib/lsan/CMakeLists.txt
@@ -1,8 +1,7 @@
include_directories(..)
-set(LSAN_CFLAGS
- ${SANITIZER_COMMON_CFLAGS}
- -fno-rtti)
+set(LSAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})
+append_no_rtti_flag(LSAN_CFLAGS)
set(LSAN_COMMON_SOURCES
lsan_common.cc
@@ -17,16 +16,7 @@ set(LSAN_SOURCES
set(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-# The common files need to build on every arch supported by ASan.
-# (Even if they build into dummy object files.)
-filter_available_targets(LSAN_COMMON_SUPPORTED_ARCH
- x86_64 i386 powerpc64)
-
-# Architectures supported by the standalone LSan.
-filter_available_targets(LSAN_SUPPORTED_ARCH
- x86_64)
-
-set(LSAN_RUNTIME_LIBRARIES)
+add_custom_target(lsan)
if(APPLE)
foreach(os ${SANITIZER_COMMON_SUPPORTED_DARWIN_OS})
@@ -35,7 +25,7 @@ if(APPLE)
SOURCES ${LSAN_COMMON_SOURCES}
CFLAGS ${LSAN_CFLAGS})
endforeach()
-elseif(NOT ANDROID)
+else()
foreach(arch ${LSAN_COMMON_SUPPORTED_ARCH})
add_compiler_rt_object_library(RTLSanCommon ${arch}
SOURCES ${LSAN_COMMON_SOURCES}
@@ -43,18 +33,15 @@ elseif(NOT ANDROID)
endforeach()
foreach(arch ${LSAN_SUPPORTED_ARCH})
- add_compiler_rt_static_runtime(clang_rt.lsan-${arch} ${arch}
+ add_compiler_rt_runtime(clang_rt.lsan-${arch} ${arch} STATIC
SOURCES ${LSAN_SOURCES}
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
$<TARGET_OBJECTS:RTLSanCommon.${arch}>
CFLAGS ${LSAN_CFLAGS})
- list(APPEND LSAN_RUNTIME_LIBRARIES clang_rt.lsan-${arch})
+ add_dependencies(lsan clang_rt.lsan-${arch})
endforeach()
endif()
-if (LLVM_INCLUDE_TESTS)
- add_subdirectory(tests)
-endif()
-add_subdirectory(lit_tests)
+add_dependencies(compiler-rt lsan)