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