1add_custom_target(cfi) 2 3set(CFI_SOURCES cfi.cc) 4 5include_directories(..) 6 7set(CFI_CFLAGS 8 ${SANITIZER_COMMON_CFLAGS} 9) 10 11set(CFI_DIAG_CFLAGS 12 -DCFI_ENABLE_DIAG=1 13) 14 15foreach(arch ${CFI_SUPPORTED_ARCH}) 16 add_compiler_rt_runtime(clang_rt.cfi 17 STATIC 18 ARCHS ${arch} 19 SOURCES ${CFI_SOURCES} 20 OBJECT_LIBS RTInterception 21 RTSanitizerCommon 22 RTSanitizerCommonLibc 23 CFLAGS ${CFI_CFLAGS} 24 PARENT_TARGET cfi) 25 add_compiler_rt_runtime(clang_rt.cfi_diag 26 STATIC 27 ARCHS ${arch} 28 SOURCES ${CFI_SOURCES} 29 OBJECT_LIBS RTInterception 30 RTSanitizerCommon 31 RTSanitizerCommonLibc 32 RTUbsan 33 RTUbsan_cxx 34 CFLAGS ${CFI_CFLAGS} ${CFI_DIAG_CFLAGS} 35 PARENT_TARGET cfi) 36endforeach() 37 38add_compiler_rt_resource_file(cfi_blacklist cfi_blacklist.txt) 39add_dependencies(cfi cfi_blacklist) 40add_dependencies(compiler-rt cfi) 41