CMakeLists.txt revision 74c88796a4024922144660ed1ade519af5008fe2
161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekinclude_directories(..) 261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekset(LSAN_CFLAGS 461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek ${SANITIZER_COMMON_CFLAGS} 561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek -fno-rtti) 661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekset(LSAN_COMMON_SOURCES 861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_common.cc 961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_common_linux.cc) 1061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 1161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekset(LSAN_SOURCES 1261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan.cc 1361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_allocator.cc 1461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_interceptors.cc 1561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_preinit.cc 1661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek lsan_thread.cc) 1761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 1861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekset(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 1961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 2061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek# The common files need to build on every arch supported by ASan. 2161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek# (Even if they build into dummy object files.) 2261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekfilter_available_targets(LSAN_COMMON_SUPPORTED_ARCH 2361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek x86_64 i386 powerpc64) 2461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 2561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek# Architectures supported by the standalone LSan. 2661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekfilter_available_targets(LSAN_SUPPORTED_ARCH 2761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek x86_64) 2861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 2961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekset(LSAN_RUNTIME_LIBRARIES) 3061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 3161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekif(APPLE) 3261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek foreach(os ${SANITIZER_COMMON_SUPPORTED_DARWIN_OS}) 3361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek add_compiler_rt_darwin_object_library(RTLSanCommon ${os} 3461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek ARCH ${LSAN_COMMON_SUPPORTED_ARCH} 3561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek SOURCES ${LSAN_COMMON_SOURCES} 3661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek CFLAGS ${LSAN_CFLAGS}) 3761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek endforeach() 3861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekelseif(NOT ANDROID) 3961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek foreach(arch ${LSAN_COMMON_SUPPORTED_ARCH}) 4061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek add_compiler_rt_object_library(RTLSanCommon ${arch} 4161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek SOURCES ${LSAN_COMMON_SOURCES} 4261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek CFLAGS ${LSAN_CFLAGS}) 4361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek endforeach() 4461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 4561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek foreach(arch ${LSAN_SUPPORTED_ARCH}) 4661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek add_compiler_rt_static_runtime(clang_rt.lsan-${arch} ${arch} 4761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek SOURCES ${LSAN_SOURCES} 4861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek $<TARGET_OBJECTS:RTInterception.${arch}> 4961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> 5061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> 5161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek $<TARGET_OBJECTS:RTLSanCommon.${arch}> 5261f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek CFLAGS ${LSAN_CFLAGS}) 5361f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek list(APPEND LSAN_RUNTIME_LIBRARIES clang_rt.lsan-${arch}) 5461f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek endforeach() 5561f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekendif() 5661f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek 5761f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekif (LLVM_INCLUDE_TESTS) 5861f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek add_subdirectory(tests) 5961f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekendif() 6061f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenekadd_subdirectory(lit_tests) 6161f3e058056ab519d249aa67e3d52b0ead57c63eTed Kremenek