blob: a3870ab803577df7e7e3cd6f99a167852cae3419 [file] [log] [blame]
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07001add_custom_target(safestack)
Pirama Arumuga Nainarc58a4362016-09-19 23:00:23 -07002set_target_properties(safestack PROPERTIES
3 FOLDER "Compiler-RT Misc")
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -07004
5set(SAFESTACK_SOURCES safestack.cc)
6
7include_directories(..)
8
9set(SAFESTACK_CFLAGS ${SANITIZER_COMMON_CFLAGS})
10
11if(APPLE)
12 # Build universal binary on APPLE.
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080013 add_compiler_rt_runtime(clang_rt.safestack
14 STATIC
15 OS osx
16 ARCHS ${SAFESTACK_SUPPORTED_ARCH}
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070017 SOURCES ${SAFESTACK_SOURCES}
18 $<TARGET_OBJECTS:RTInterception.osx>
19 $<TARGET_OBJECTS:RTSanitizerCommon.osx>
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080020 $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.osx>
21 CFLAGS ${SAFESTACK_CFLAGS}
22 PARENT_TARGET safestack)
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070023else()
24 # Otherwise, build separate libraries for each target.
25 foreach(arch ${SAFESTACK_SUPPORTED_ARCH})
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080026 add_compiler_rt_runtime(clang_rt.safestack
27 STATIC
28 ARCHS ${arch}
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070029 SOURCES ${SAFESTACK_SOURCES}
30 $<TARGET_OBJECTS:RTInterception.${arch}>
31 $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
Pirama Arumuga Nainar799172d2016-03-03 15:50:30 -080032 $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.${arch}>
33 CFLAGS ${SAFESTACK_CFLAGS}
34 PARENT_TARGET safestack)
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -070035 endforeach()
36endif()