1 function(enable_dtrace_for TARGET PROBES_D PROBES_H)
2 if(HAVE_DTRACE AND NOT CMAKE_CROSSCOMPILING)
5 ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_H}
12 -s ${CMAKE_CURRENT_SOURCE_DIR}/${PROBES_D}
13 -o ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_H}
15 target_sources(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_H})
16 if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
19 ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_probes.o
21 ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_H}
26 -s ${CMAKE_CURRENT_SOURCE_DIR}/${PROBES_D}
27 -o ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_probes.o
29 target_sources(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_probes.o)
30 set_source_files_properties(${TARGET}_probes.o PROPERTIES
35 cmake_host_system_information(RESULT OS_RELEASE QUERY OS_RELEASE)
36 if(NOT (CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin AND OS_RELEASE VERSION_GREATER_EQUAL 11))
37 set(PROBES_C ${TARGET}_probes.cc)
39 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_C}
40 CONTENT "#include \"${PROBES_H}\"\n"
46 ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_H}
48 rm -f ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET}.dir/${PROBES_C}.o
50 ${DTRACE_EXECUTABLE} -x nolibs -G
51 -s ${CMAKE_CURRENT_SOURCE_DIR}/${PROBES_D}
52 -o ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET}.dir/${PROBES_C}.o
53 ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET}.dir/*.o
55 target_sources(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${PROBES_C})