diff --git a/Projects/Athena/CMakeGraphVizOptions.cmake b/Projects/Athena/CMakeGraphVizOptions.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..4f6d416f611d2a909e75120f4cedd261ebd7f504
--- /dev/null
+++ b/Projects/Athena/CMakeGraphVizOptions.cmake
@@ -0,0 +1,5 @@
+# Options used by cmake --graphviz
+set( GRAPHVIZ_CUSTOM_TARGETS TRUE )
+set( GRAPHVIZ_GENERATE_DEPENDERS FALSE )
+set( GRAPHVIZ_GENERATE_PER_TARGET FALSE )
+set( GRAPHVIZ_IGNORE_TARGETS ".*Pkg$" ".*PkgPrivate$" "^__.*" )
diff --git a/Projects/Athena/CMakeLists.txt b/Projects/Athena/CMakeLists.txt
index e411026d8cb5445baf7078e74ea13524754f375e..20c4b4df10d517a5f641b3b53a1f331e91ee71da 100644
--- a/Projects/Athena/CMakeLists.txt
+++ b/Projects/Athena/CMakeLists.txt
@@ -123,6 +123,10 @@ string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}"
 string( REPLACE "${TDAQ-COMMON_VERSION}" "\${TDAQ-COMMON_VERSION}"
    TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" )
 
+# Install graphviz output if available:
+install( FILES ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}/packages.dot
+   DESTINATION . OPTIONAL )
+
 # Temporarily add tdaq dependency to Athena build:
 string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}"
    TDAQ_ATROOT "${TDAQ_ATROOT}" )
diff --git a/Projects/Athena/build.sh b/Projects/Athena/build.sh
index b01005cdb5a79077465317dcb5394d493b38a352..544fcd9ead550f48baeaf4b13fa7283fefd16ef0 100755
--- a/Projects/Athena/build.sh
+++ b/Projects/Athena/build.sh
@@ -129,9 +129,10 @@ if [ -n "$EXE_CMAKE" ]; then
     # from scratch in an incremental build.
     rm -f CMakeCache.txt
     # Now run the actual CMake configuration:
-    { _time_ cmake ${BUILDTOOLTYPE} -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \
-        ${EXTRACMAKE[@]} \
+    { _time_ cmake ${BUILDTOOLTYPE} --graphviz=${BINARY_TAG}/packages.dot \
+        -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \
         -DCTEST_USE_LAUNCHERS:BOOL=TRUE \
+        ${EXTRACMAKE[@]} \
         ${AthenaSrcDir}; } 2>&1 | tee cmake_config.log
 fi