Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 1 | # Build system for the common Sanitizer runtime support library components. |
| 2 | # These components are shared between AddressSanitizer and ThreadSanitizer. |
| 3 | |
| 4 | set(SANITIZER_SOURCES |
| 5 | sanitizer_allocator.cc |
| 6 | sanitizer_common.cc |
Alexey Samsonov | 9b1b101 | 2012-07-10 09:17:06 +0000 | [diff] [blame] | 7 | sanitizer_flags.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 8 | sanitizer_libc.cc |
| 9 | sanitizer_linux.cc |
| 10 | sanitizer_mac.cc |
| 11 | sanitizer_posix.cc |
| 12 | sanitizer_printf.cc |
Alexey Samsonov | 3f3ca96 | 2012-09-11 10:50:32 +0000 | [diff] [blame] | 13 | sanitizer_stackdepot.cc |
Kostya Serebryany | 1b5ea8f | 2012-08-28 14:11:57 +0000 | [diff] [blame] | 14 | sanitizer_stacktrace.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 15 | sanitizer_symbolizer.cc |
Richard Smith | ab63743 | 2012-12-20 05:00:13 +0000 | [diff] [blame] | 16 | sanitizer_symbolizer_itanium.cc |
Alexey Samsonov | 6e893b6 | 2012-08-14 13:00:32 +0000 | [diff] [blame] | 17 | sanitizer_symbolizer_linux.cc |
Alexey Samsonov | 6e893b6 | 2012-08-14 13:00:32 +0000 | [diff] [blame] | 18 | sanitizer_symbolizer_mac.cc |
| 19 | sanitizer_symbolizer_win.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 20 | sanitizer_win.cc |
| 21 | ) |
| 22 | |
Alexey Samsonov | 032e833 | 2012-12-21 14:04:52 +0000 | [diff] [blame] | 23 | # Explicitly list all sanitizer_common headers. Not all of these are |
| 24 | # included in sanitizer_common source files, but we need to depend on |
| 25 | # headers when building our custom unit tests. |
| 26 | set(SANITIZER_HEADERS |
| 27 | sanitizer_allocator.h |
| 28 | sanitizer_atomic_clang.h |
| 29 | sanitizer_atomic_msvc.h |
| 30 | sanitizer_atomic.h |
| 31 | sanitizer_common.h |
Evgeniy Stepanov | 4f32c0b | 2013-01-18 13:01:18 +0000 | [diff] [blame] | 32 | sanitizer_common_interceptors.inc |
| 33 | sanitizer_common_interceptors_scanf.inc |
Alexey Samsonov | 032e833 | 2012-12-21 14:04:52 +0000 | [diff] [blame] | 34 | sanitizer_flags.h |
| 35 | sanitizer_internal_defs.h |
Dmitry Vyukov | b48224c | 2013-01-14 08:23:34 +0000 | [diff] [blame] | 36 | sanitizer_lfstack.h |
Alexey Samsonov | 032e833 | 2012-12-21 14:04:52 +0000 | [diff] [blame] | 37 | sanitizer_libc.h |
| 38 | sanitizer_list.h |
| 39 | sanitizer_mutex.h |
| 40 | sanitizer_placement_new.h |
| 41 | sanitizer_platform_interceptors.h |
| 42 | sanitizer_procmaps.h |
Dmitry Vyukov | 9fc0df8 | 2013-01-11 08:07:43 +0000 | [diff] [blame] | 43 | sanitizer_quarantine.h |
Alexey Samsonov | 032e833 | 2012-12-21 14:04:52 +0000 | [diff] [blame] | 44 | sanitizer_report_decorator.h |
| 45 | sanitizer_stackdepot.h |
| 46 | sanitizer_stacktrace.h |
| 47 | sanitizer_symbolizer.h |
| 48 | ) |
| 49 | |
Alexey Samsonov | 0f7d4a4 | 2012-09-05 09:00:03 +0000 | [diff] [blame] | 50 | set(SANITIZER_CFLAGS ${SANITIZER_COMMON_CFLAGS}) |
Chandler Carruth | a765ffc | 2012-06-25 08:40:10 +0000 | [diff] [blame] | 51 | |
Alexey Samsonov | 0b56247 | 2012-08-13 07:41:43 +0000 | [diff] [blame] | 52 | set(SANITIZER_RUNTIME_LIBRARIES) |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 53 | if(APPLE) |
| 54 | # Build universal binary on APPLE. |
| 55 | add_library(RTSanitizerCommon.osx OBJECT ${SANITIZER_SOURCES}) |
| 56 | set_target_compile_flags(RTSanitizerCommon.osx ${SANITIZER_CFLAGS}) |
| 57 | filter_available_targets(SANITIZER_TARGETS x86_64 i386) |
| 58 | set_target_properties(RTSanitizerCommon.osx PROPERTIES |
| 59 | OSX_ARCHITECTURES "${SANITIZER_TARGETS}") |
Alexey Samsonov | 0b56247 | 2012-08-13 07:41:43 +0000 | [diff] [blame] | 60 | list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.osx) |
Alexey Samsonov | 392c50d | 2013-01-18 16:05:21 +0000 | [diff] [blame^] | 61 | elseif(ANDROID) |
| 62 | add_library(RTSanitizerCommon.arm.android OBJECT ${SANITIZER_SOURCES}) |
| 63 | set_target_compile_flags(RTSanitizerCommon.arm.android |
| 64 | ${SANITIZER_CFLAGS}) |
| 65 | list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.arm.android) |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 66 | else() |
| 67 | # Otherwise, build separate libraries for each target. |
Alexey Samsonov | 2f3aef0 | 2013-01-18 12:45:44 +0000 | [diff] [blame] | 68 | if(CAN_TARGET_x86_64) |
Alexey Samsonov | 392c50d | 2013-01-18 16:05:21 +0000 | [diff] [blame^] | 69 | add_compiler_rt_object_library(RTSanitizerCommon x86_64 |
| 70 | SOURCES ${SANITIZER_SOURCES} CFLAGS ${SANITIZER_CFLAGS}) |
Alexey Samsonov | 0b56247 | 2012-08-13 07:41:43 +0000 | [diff] [blame] | 71 | list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.x86_64) |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 72 | endif() |
Alexey Samsonov | 2f3aef0 | 2013-01-18 12:45:44 +0000 | [diff] [blame] | 73 | if(CAN_TARGET_i386) |
Alexey Samsonov | 392c50d | 2013-01-18 16:05:21 +0000 | [diff] [blame^] | 74 | add_compiler_rt_object_library(RTSanitizerCommon i386 |
| 75 | SOURCES ${SANITIZER_SOURCES} CFLAGS ${SANITIZER_CFLAGS}) |
Alexey Samsonov | 0b56247 | 2012-08-13 07:41:43 +0000 | [diff] [blame] | 76 | list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.i386) |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 77 | endif() |
| 78 | endif() |
Alexey Samsonov | 8fc90f6 | 2012-08-08 09:46:51 +0000 | [diff] [blame] | 79 | |
Alexey Samsonov | 3f3ca96 | 2012-09-11 10:50:32 +0000 | [diff] [blame] | 80 | # Unit tests for common sanitizer runtime. |
| 81 | if(LLVM_INCLUDE_TESTS) |
Alexey Samsonov | 3f3ca96 | 2012-09-11 10:50:32 +0000 | [diff] [blame] | 82 | add_subdirectory(tests) |
| 83 | endif() |