xref: /aosp_15_r20/external/bcc/examples/usdt_sample/usdt_sample_lib1/CMakeLists.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1cmake_minimum_required(VERSION 3.12)
2project(usdt_sample_lib1)
3
4# Define variables.
5set(USDT_SAMPLE_LIB1_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE STRING "USDT_SAMPLE_LIB1_INCLUDE_DIR" FORCE)
6set(USDT_SAMPLE_LIB1_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src CACHE STRING "USDT_SAMPLE_LIB1_SRC_DIR" FORCE)
7set(USDT_SAMPLE_LIB1_LINK_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "USDT_SAMPLE_LIB1_LINK_DIR" FORCE)
8set(USDT_SAMPLE_LIB1_LIB ${PROJECT_NAME} CACHE STRING "USDT_SAMPLE_LIB1_LIB" FORCE)
9set(USDT_SAMPLE_LIB1_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/generated)
10set(USDT_SAMPLE_SDT_HEADER ${USDT_SAMPLE_LIB1_SRC_DIR}/lib1_sdt.h)
11set(USDT_SAMPLE_SDT_OBJECT ${USDT_SAMPLE_LIB1_GENERATED}/lib1_sdt.o)
12set(USDT_SAMPLE_SDT_PROBES ${USDT_SAMPLE_LIB1_SRC_DIR}/lib1_sdt.d)
13
14add_library( ${PROJECT_NAME} SHARED
15    ${USDT_SAMPLE_LIB1_SRC_DIR}/lib1.cpp
16)
17
18target_include_directories( ${PROJECT_NAME}
19    PRIVATE
20        # For folly StaticTracepoint.h:
21        ${CMAKE_CURRENT_SOURCE_DIR}/../../../tests/python/include
22    PUBLIC
23        ${USDT_SAMPLE_LIB1_INCLUDE_DIR}
24)
25
26target_link_libraries( ${PROJECT_NAME}
27    ${USDT_SAMPLE_SDT_OBJECT}
28)
29
30## Start - N.B. Following section is relevant for when using systemtap-sdt-devel to define the probes.
31
32# Create usdt header file.
33add_custom_target( ${PROJECT_NAME}_HDR_CLEAN
34   COMMAND rm -f ${USDT_SAMPLE_SDT_HEADER}
35   COMMENT "Remove generated header"
36)
37add_custom_target( ${PROJECT_NAME}_HDR
38   COMMAND dtrace -h -s ${USDT_SAMPLE_SDT_PROBES} -o ${USDT_SAMPLE_SDT_HEADER}
39   COMMENT "Create usdt probes header file"
40)
41add_dependencies(${PROJECT_NAME}_HDR ${PROJECT_NAME}_HDR_CLEAN)
42
43# Create usdt object file.
44add_custom_target( ${PROJECT_NAME}_CLEAN
45   COMMAND rm -rf ${USDT_SAMPLE_LIB1_GENERATED} && mkdir -p ${USDT_SAMPLE_LIB1_GENERATED}
46   COMMENT "Recreate usdt probes generated folder"
47)
48add_custom_target( ${PROJECT_NAME}_OBJ
49   COMMAND dtrace -G -s ${USDT_SAMPLE_SDT_PROBES} -o ${USDT_SAMPLE_SDT_OBJECT}
50   COMMENT "Create usdt probes object file"
51)
52add_dependencies(${PROJECT_NAME}_OBJ ${PROJECT_NAME}_CLEAN)
53
54add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_HDR ${PROJECT_NAME}_OBJ)
55
56## End
57