]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/compiler-rt/lib/xray/CMakeLists.txt
Merge compiler-rt r291274.
[FreeBSD/FreeBSD.git] / contrib / compiler-rt / lib / xray / CMakeLists.txt
1 # Build for the XRay runtime support library.
2
3 # Core XRay runtime library implementation files.
4 set(XRAY_SOURCES
5   xray_init.cc
6   xray_interface.cc
7   xray_flags.cc
8   xray_inmemory_log.cc)
9
10 # XRay flight data recorder (FDR) implementation files.
11 set(XRAY_FDR_SOURCES
12   xray_buffer_queue.cc)
13
14 set(x86_64_SOURCES
15     xray_x86_64.cc
16     xray_trampoline_x86_64.S
17     ${XRAY_SOURCES})
18
19 set(arm_SOURCES
20     xray_arm.cc
21     xray_trampoline_arm.S
22     ${XRAY_SOURCES})
23
24 set(armhf_SOURCES ${arm_SOURCES})
25
26 set(aarch64_SOURCES
27         xray_AArch64.cc
28         xray_trampoline_AArch64.S
29         ${XRAY_SOURCES})
30
31 include_directories(..)
32 include_directories(../../include)
33
34 set(XRAY_CFLAGS ${SANITIZER_COMMON_CFLAGS})
35 set(XRAY_COMMON_DEFINITIONS XRAY_HAS_EXCEPTIONS=1)
36 append_list_if(
37   COMPILER_RT_HAS_XRAY_COMPILER_FLAG XRAY_SUPPORTED=1 XRAY_COMMON_DEFINITIONS)
38
39 add_compiler_rt_object_libraries(RTXray
40   ARCHS ${XRAY_SUPPORTED_ARCH}
41   SOURCES ${XRAY_SOURCES} CFLAGS ${XRAY_CFLAGS}
42   DEFS ${XRAY_COMMON_DEFINITIONS})
43
44 add_compiler_rt_object_libraries(RTXrayFDR
45   ARCHS ${XRAY_SUPPORTED_ARCH}
46   SOURCES ${XRAY_FDR_SOURCES} CFLAGS ${XRAY_CFLAGS}
47   DEFS ${XRAY_COMMON_DEFINITIONS})
48
49 add_compiler_rt_component(xray)
50 add_compiler_rt_component(xray-fdr)
51
52 set(XRAY_COMMON_RUNTIME_OBJECT_LIBS
53     RTSanitizerCommon
54     RTSanitizerCommonLibc)
55
56 foreach(arch ${XRAY_SUPPORTED_ARCH})
57   if(CAN_TARGET_${arch})
58     add_compiler_rt_runtime(clang_rt.xray
59      STATIC
60      ARCHS ${arch}
61      SOURCES ${${arch}_SOURCES}
62      CFLAGS ${XRAY_CFLAGS}
63      DEFS ${XRAY_COMMON_DEFINITIONS}
64      OBJECT_LIBS ${XRAY_COMMON_RUNTIME_OBJECT_LIBS}
65      PARENT_TARGET xray)
66    add_compiler_rt_runtime(clang_rt.xray-fdr
67      STATIC
68      ARCHS ${arch}
69      SOURCES ${XRAY_FDR_SOURCES}
70      CFLAGS ${XRAY_CFLAGS}
71      DEFS ${XRAY_COMMON_DEFINITIONS}
72      OBJECT_LIBS ${XRAY_COMMON_RUNTIME_OBJECT_LIBS}
73      PARENT_TARGET xray-fdr)
74   endif()
75 endforeach()
76
77 if(COMPILER_RT_INCLUDE_TESTS)
78   add_subdirectory(tests)
79 endif()