CMake:For CMake Hackers
From KitwarePublic
Generating Dependency Graphs with CMake
By using CMake you can automatically generate dependency graphs (dot/graphviz) of the targets in your project. This works for dependencies within the project, as well as dependencies to external libraries.
Usage
To use it, run cmake in the build tree:
cmake --graphviz=test.dot .
Customize graphviz output
The output can be customized with the following options in CMakeGraphVizOptions.cmake (located in base source directory)
graphviz options
- GRAPHVIZ_GRAPH_TYPE - default: 'digraph'
- GRAPHVIZ_GRAPH_NAME - default: 'GG'
- GRAPHVIZ_GRAPH_HEADER - default: 'node [\n fontsize = \"12\"\n];'
- GRAPHVIZ_NODE_PREFIX - default: 'node'
module inclusion config
- GRAPHVIZ_EXECUTABLES - Export executables (default: ON)
- GRAPHVIZ_STATIC_LIBS - Export static libs (default: ON)
- GRAPHVIZ_SHARED_LIBS - Export shared libs (default: ON)
- GRAPHVIZ_MODULE_LIBS - Export modules (default: ON)
- GRAPHVIZ_EXTERNAL_LIBS - Export external libs (default: ON) roulette
- GRAPHVIZ_IGNORE_TARGETS - Do not export targets in the given list. Since 2.8.5 this supports regular expressions.
- GRAPHVIZ_IGNORE_TARGETS_REGEX - Do not export targets which match the given regex. Not supported anymore since 2.8.5.
Example output
Dependencies within CMake:
Just CMake dependencies: