forked from OSchip/llvm-project
35 lines
1.0 KiB
CMake
35 lines
1.0 KiB
CMake
add_custom_target(safestack)
|
|
|
|
set(SAFESTACK_SOURCES safestack.cc)
|
|
|
|
include_directories(..)
|
|
|
|
set(SAFESTACK_CFLAGS ${SANITIZER_COMMON_CFLAGS})
|
|
|
|
if(APPLE)
|
|
# Build universal binary on APPLE.
|
|
add_compiler_rt_runtime(clang_rt.safestack
|
|
STATIC
|
|
OS osx
|
|
ARCHS ${SAFESTACK_SUPPORTED_ARCH}
|
|
SOURCES ${SAFESTACK_SOURCES}
|
|
$<TARGET_OBJECTS:RTInterception.osx>
|
|
$<TARGET_OBJECTS:RTSanitizerCommon.osx>
|
|
$<TARGET_OBJECTS:RTSanitizerCommonNoLibc.osx>
|
|
CFLAGS ${SAFESTACK_CFLAGS}
|
|
PARENT_TARGET safestack)
|
|
else()
|
|
# Otherwise, build separate libraries for each target.
|
|
foreach(arch ${SAFESTACK_SUPPORTED_ARCH})
|
|
add_compiler_rt_runtime(clang_rt.safestack
|
|
STATIC
|
|
ARCHS ${arch}
|
|
SOURCES ${SAFESTACK_SOURCES}
|
|
$<TARGET_OBJECTS:RTInterception.${arch}>
|
|
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
|
|
$<TARGET_OBJECTS:RTSanitizerCommonNoLibc.${arch}>
|
|
CFLAGS ${SAFESTACK_CFLAGS}
|
|
PARENT_TARGET safestack)
|
|
endforeach()
|
|
endif()
|