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
