blob: 9c11bb6f7e61040b91d0cd402d57eb8bb2e0d51a [file] [log] [blame]
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07001add_custom_target(safestack)
2
3set(SAFESTACK_SOURCES safestack.cc)
4
5include_directories(..)
6
7set(SAFESTACK_CFLAGS ${SANITIZER_COMMON_CFLAGS})
8
9if(APPLE)
10 # Build universal binary on APPLE.
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080011 add_compiler_rt_runtime(clang_rt.safestack
12 STATIC
13 OS osx
14 ARCHS ${SAFESTACK_SUPPORTED_ARCH}
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070015 SOURCES ${SAFESTACK_SOURCES}
16 $<TARGET_OBJECTS:RTInterception.osx>
17 $<TARGET_OBJECTS:RTSanitizerCommon.osx>
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080018 $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.osx>
19 CFLAGS ${SAFESTACK_CFLAGS}
20 PARENT_TARGET safestack)
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070021else()
22 # Otherwise, build separate libraries for each target.
23 foreach(arch ${SAFESTACK_SUPPORTED_ARCH})
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080024 add_compiler_rt_runtime(clang_rt.safestack
25 STATIC
26 ARCHS ${arch}
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070027 SOURCES ${SAFESTACK_SOURCES}
28 $<TARGET_OBJECTS:RTInterception.${arch}>
29 $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080030 $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.${arch}>
31 CFLAGS ${SAFESTACK_CFLAGS}
32 PARENT_TARGET safestack)
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070033 endforeach()
34endif()