CMake:For CMake Hackers

From KitwarePublic
Jump to: navigation, search

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)
  • 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:

CMake-graph.png


Just CMake dependencies:

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.



CMake: [Welcome | Site Map]