--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -576,3 +576,14 @@
     ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-runtime/include/gnuradio/config.h
     DESTINATION ${GR_INCLUDE_DIR}/gnuradio
 )
+
+# generate CMake dependency graph (TODO: maybe strip swig and qa nodes)
+add_custom_target(grdeps.png ALL
+   COMMAND ${CMAKE_COMMAND} "--graphviz=grdeps.dot" .
+   COMMAND dot -Tpng grdeps.dot -o grdeps.png
+   WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+)
+install(
+   FILES ${CMAKE_BINARY_DIR}/grdeps.png
+   DESTINATION ${GR_PKG_DOC_DIR}
+)
