1add_compiler_rt_component(cfi)
2
3if(OS_NAME MATCHES "Linux" OR OS_NAME MATCHES "FreeBSD" OR OS_NAME MATCHES "NetBSD")
4  set(CFI_SOURCES
5    cfi.cpp
6    )
7
8  include_directories(..)
9
10  set(CFI_CFLAGS
11    ${SANITIZER_COMMON_CFLAGS}
12  )
13
14  set(CFI_DIAG_CFLAGS
15    -DCFI_ENABLE_DIAG=1
16  )
17
18  foreach(arch ${CFI_SUPPORTED_ARCH})
19    add_compiler_rt_runtime(clang_rt.cfi
20      STATIC
21      ARCHS ${arch}
22      SOURCES ${CFI_SOURCES}
23      OBJECT_LIBS RTInterception
24                  RTSanitizerCommon
25                  RTSanitizerCommonLibc
26      CFLAGS ${CFI_CFLAGS}
27      PARENT_TARGET cfi)
28    add_compiler_rt_runtime(clang_rt.cfi_diag
29      STATIC
30      ARCHS ${arch}
31      SOURCES ${CFI_SOURCES}
32      OBJECT_LIBS RTInterception
33                  RTSanitizerCommon
34                  RTSanitizerCommonLibc
35                  RTSanitizerCommonCoverage
36                  RTSanitizerCommonSymbolizer
37                  RTUbsan
38      CFLAGS ${CFI_CFLAGS} ${CFI_DIAG_CFLAGS}
39      PARENT_TARGET cfi)
40  endforeach()
41endif()
42
43add_compiler_rt_resource_file(cfi_blacklist cfi_blacklist.txt cfi)
44