• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1add_custom_target(safestack)
2set_target_properties(safestack PROPERTIES
3  FOLDER "Compiler-RT Misc")
4
5set(SAFESTACK_SOURCES safestack.cc)
6
7include_directories(..)
8
9set(SAFESTACK_CFLAGS ${SANITIZER_COMMON_CFLAGS})
10
11if(APPLE)
12  # Build universal binary on APPLE.
13  add_compiler_rt_runtime(clang_rt.safestack
14    STATIC
15    OS osx
16    ARCHS ${SAFESTACK_SUPPORTED_ARCH}
17    SOURCES ${SAFESTACK_SOURCES}
18            $<TARGET_OBJECTS:RTInterception.osx>
19            $<TARGET_OBJECTS:RTSanitizerCommon.osx>
20            $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.osx>
21    CFLAGS ${SAFESTACK_CFLAGS}
22    PARENT_TARGET safestack)
23else()
24  # Otherwise, build separate libraries for each target.
25  foreach(arch ${SAFESTACK_SUPPORTED_ARCH})
26    add_compiler_rt_runtime(clang_rt.safestack
27      STATIC
28      ARCHS ${arch}
29      SOURCES ${SAFESTACK_SOURCES}
30              $<TARGET_OBJECTS:RTInterception.${arch}>
31              $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
32              $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.${arch}>
33      CFLAGS ${SAFESTACK_CFLAGS}
34      PARENT_TARGET safestack)
35  endforeach()
36endif()
37