CMakeLists.txt revision 9bdf7802d403b53baee3433ddddc220f457e039c
1include_directories(..)
2
3set(LSAN_CFLAGS
4  ${SANITIZER_COMMON_CFLAGS})
5
6set(LSAN_COMMON_SOURCES
7  lsan_common.cc
8  lsan_common_linux.cc)
9
10set(LSAN_SOURCES
11  lsan_interceptors.cc
12  lsan_allocator.cc
13  lsan_thread.cc
14  lsan.cc)
15
16set(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
17
18# The common files need to build on every arch supported by ASan.
19# (Even if they build into dummy object files.)
20filter_available_targets(LSAN_COMMON_SUPPORTED_ARCH
21  x86_64 i386 powerpc64 powerpc)
22
23# Architectures supported by the standalone LSan.
24filter_available_targets(LSAN_SUPPORTED_ARCH
25  x86_64)
26
27set(LSAN_RUNTIME_LIBRARIES)
28
29if (NOT APPLE AND NOT ANDROID)
30  foreach(arch ${LSAN_COMMON_SUPPORTED_ARCH})
31    add_compiler_rt_object_library(RTLSanCommon ${arch}
32      SOURCES ${LSAN_COMMON_SOURCES}
33      CFLAGS ${LSAN_CFLAGS})
34  endforeach()
35
36  foreach(arch ${LSAN_SUPPORTED_ARCH})
37    add_compiler_rt_static_runtime(clang_rt.lsan-${arch} ${arch}
38      SOURCES ${LSAN_SOURCES}
39              $<TARGET_OBJECTS:RTInterception.${arch}>
40              $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
41              $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
42              $<TARGET_OBJECTS:RTLSanCommon.${arch}>
43      CFLAGS ${LSAN_CFLAGS})
44    list(APPEND LSAN_RUNTIME_LIBRARIES clang_rt.lsan-${arch})
45  endforeach()
46endif()
47
48add_subdirectory(tests)
49