summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/CMakeLists.txt
blob: d797a56dabd9bd4d49c492d384329a3d546aa493 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Build system for the common Sanitizer runtime support library components.
# These components are shared between AddressSanitizer and ThreadSanitizer.

set(SANITIZER_SOURCES
  sanitizer_allocator.cc
  sanitizer_common.cc
  sanitizer_flags.cc
  sanitizer_libc.cc
  sanitizer_linux.cc
  sanitizer_mac.cc
  sanitizer_posix.cc
  sanitizer_printf.cc
  sanitizer_symbolizer.cc
  sanitizer_win.cc
  )

set(SANITIZER_CFLAGS "-fPIC -fno-exceptions -funwind-tables -fvisibility=hidden")

set(SANITIZER_COMMON_DEFINITIONS
	SANITIZER_HAS_EXCEPTIONS=1)

if(CAN_TARGET_X86_64)
  add_library(RTSanitizerCommon.x86_64 OBJECT ${SANITIZER_SOURCES})
  set_property(TARGET RTSanitizerCommon.x86_64 PROPERTY COMPILE_FLAGS
		"${SANITIZER_CFLAGS} ${TARGET_X86_64_CFLAGS}")
  set_property(TARGET RTSanitizerCommon.x86_64 APPEND PROPERTY COMPILE_DEFINITIONS
		${SANITIZER_COMMON_DEFINITIONS})
endif()
if(CAN_TARGET_I386)
  add_library(RTSanitizerCommon.i386 OBJECT ${SANITIZER_SOURCES})
  set_property(TARGET RTSanitizerCommon.i386 PROPERTY COMPILE_FLAGS
		"${SANITIZER_CFLAGS} ${TARGET_I386_CFLAGS}")
  set_property(TARGET RTSanitizerCommon.i386 APPEND PROPERTY COMPILE_DEFINITIONS
		${SANITIZER_COMMON_DEFINITIONS})
endif()