Merge pull request #265 from compnerd/test
tests: fix test build
diff --git a/cmake/modules/DTrace.cmake b/cmake/modules/DTrace.cmake
new file mode 100644
index 0000000..20a28cc
--- /dev/null
+++ b/cmake/modules/DTrace.cmake
@@ -0,0 +1,26 @@
+
+function(dtrace_usdt_probe script)
+ set(options)
+ set(single_parameter_options TARGET_NAME OUTPUT_SOURCES)
+ set(multiple_parameter_options)
+
+ cmake_parse_arguments("" "${options}" "${single_parameter_options}" "${multiple_parameter_options}" ${ARGN})
+
+ get_filename_component(script_we ${script} NAME_WE)
+
+ add_custom_command(OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/${script_we}.h
+ COMMAND
+ ${dtrace_EXECUTABLE} -h -s ${script} -o ${CMAKE_CURRENT_BINARY_DIR}/${script_we}.h
+ DEPENDS
+ ${script})
+ add_custom_target(dtrace-usdt-header-${script_we}
+ DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/${script_we}.h)
+ if(_TARGET_NAME)
+ set(${_TARGET_NAME} dtrace-usdt-header-${script_we} PARENT_SCOPE)
+ endif()
+ if(_OUTPUT_SOURCES)
+ set(${_OUTPUT_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/${script_we}.h PARENT_SCOPE)
+ endif()
+endfunction()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bbc7f46..ac2b30a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,5 +1,6 @@
include(SwiftSupport)
+include(DTrace)
add_library(dispatch
allocator.c
@@ -103,11 +104,20 @@
swift/DispatchStubs.cc
${CMAKE_CURRENT_BINARY_DIR}/swiftDispatch.o)
endif()
+if(dtrace_EXECUTABLE)
+ dtrace_usdt_probe(${CMAKE_CURRENT_SOURCE_DIR}/provider.d
+ OUTPUT_SOURCES
+ dispatch_dtrace_provider_headers)
+ target_sources(dispatch
+ PRIVATE
+ ${dispatch_dtrace_provider_headers})
+endif()
target_include_directories(dispatch
PRIVATE
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/private)
if(WITH_PTHREAD_WORKQUEUES)
target_include_directories(dispatch