xref: /aosp_15_r20/external/compiler-rt/lib/safestack/CMakeLists.txt (revision 7c3d14c8b49c529e04be81a3ce6f5cc23712e4c6)
1*7c3d14c8STreehugger Robotadd_custom_target(safestack)
2*7c3d14c8STreehugger Robotset_target_properties(safestack PROPERTIES
3*7c3d14c8STreehugger Robot  FOLDER "Compiler-RT Misc")
4*7c3d14c8STreehugger Robot
5*7c3d14c8STreehugger Robotset(SAFESTACK_SOURCES safestack.cc)
6*7c3d14c8STreehugger Robot
7*7c3d14c8STreehugger Robotinclude_directories(..)
8*7c3d14c8STreehugger Robot
9*7c3d14c8STreehugger Robotset(SAFESTACK_CFLAGS ${SANITIZER_COMMON_CFLAGS})
10*7c3d14c8STreehugger Robot
11*7c3d14c8STreehugger Robotif(APPLE)
12*7c3d14c8STreehugger Robot  # Build universal binary on APPLE.
13*7c3d14c8STreehugger Robot  add_compiler_rt_runtime(clang_rt.safestack
14*7c3d14c8STreehugger Robot    STATIC
15*7c3d14c8STreehugger Robot    OS osx
16*7c3d14c8STreehugger Robot    ARCHS ${SAFESTACK_SUPPORTED_ARCH}
17*7c3d14c8STreehugger Robot    SOURCES ${SAFESTACK_SOURCES}
18*7c3d14c8STreehugger Robot            $<TARGET_OBJECTS:RTInterception.osx>
19*7c3d14c8STreehugger Robot            $<TARGET_OBJECTS:RTSanitizerCommon.osx>
20*7c3d14c8STreehugger Robot            $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.osx>
21*7c3d14c8STreehugger Robot    CFLAGS ${SAFESTACK_CFLAGS}
22*7c3d14c8STreehugger Robot    PARENT_TARGET safestack)
23*7c3d14c8STreehugger Robotelse()
24*7c3d14c8STreehugger Robot  # Otherwise, build separate libraries for each target.
25*7c3d14c8STreehugger Robot  foreach(arch ${SAFESTACK_SUPPORTED_ARCH})
26*7c3d14c8STreehugger Robot    add_compiler_rt_runtime(clang_rt.safestack
27*7c3d14c8STreehugger Robot      STATIC
28*7c3d14c8STreehugger Robot      ARCHS ${arch}
29*7c3d14c8STreehugger Robot      SOURCES ${SAFESTACK_SOURCES}
30*7c3d14c8STreehugger Robot              $<TARGET_OBJECTS:RTInterception.${arch}>
31*7c3d14c8STreehugger Robot              $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
32*7c3d14c8STreehugger Robot              $<TARGET_OBJECTS:RTSanitizerCommonNoLibc.${arch}>
33*7c3d14c8STreehugger Robot      CFLAGS ${SAFESTACK_CFLAGS}
34*7c3d14c8STreehugger Robot      PARENT_TARGET safestack)
35*7c3d14c8STreehugger Robot  endforeach()
36*7c3d14c8STreehugger Robotendif()
37