| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file Copyright.txt or https://cmake.org/licensing for details. |
| |
| #[=======================================================================[.rst: |
| CMakeGraphVizOptions |
| -------------------- |
| |
| The builtin graphviz support of CMake. |
| |
| Variables specific to the graphviz support |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| CMake |
| can generate `graphviz <http://www.graphviz.org/>`_ files, showing the dependencies between the |
| targets in a project and also external libraries which are linked |
| against. When CMake is run with the ``--graphviz=foo.dot`` option, it will |
| produce: |
| |
| * a ``foo.dot`` file showing all dependencies in the project |
| * a ``foo.dot.<target>`` file for each target, file showing on which other targets the respective target depends |
| * a ``foo.dot.<target>.dependers`` file, showing which other targets depend on the respective target |
| |
| The different dependency types ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` |
| are represented as solid, dashed and dotted edges. |
| |
| This can result in huge graphs. Using the file |
| ``CMakeGraphVizOptions.cmake`` the look and content of the generated |
| graphs can be influenced. This file is searched first in |
| :variable:`CMAKE_BINARY_DIR` and then in :variable:`CMAKE_SOURCE_DIR`. If found, it is |
| read and the variables set in it are used to adjust options for the |
| generated graphviz files. |
| |
| .. variable:: GRAPHVIZ_GRAPH_TYPE |
| |
| The graph type. |
| |
| * Mandatory : NO |
| * Default : "digraph" |
| |
| Valid graph types are: |
| |
| * "graph" : Nodes are joined with lines |
| * "digraph" : Nodes are joined with arrows showing direction |
| * "strict graph" : Like "graph" but max one line between each node |
| * "strict digraph" : Like "graph" but max one line between each node in each direction |
| |
| .. variable:: GRAPHVIZ_GRAPH_NAME |
| |
| The graph name. |
| |
| * Mandatory : NO |
| * Default : "GG" |
| |
| .. variable:: GRAPHVIZ_GRAPH_HEADER |
| |
| The header written at the top of the graphviz file. |
| |
| * Mandatory : NO |
| * Default : "node [n fontsize = "12"];" |
| |
| .. variable:: GRAPHVIZ_NODE_PREFIX |
| |
| The prefix for each node in the graphviz file. |
| |
| * Mandatory : NO |
| * Default : "node" |
| |
| .. variable:: GRAPHVIZ_EXECUTABLES |
| |
| Set this to FALSE to exclude executables from the generated graphs. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_STATIC_LIBS |
| |
| Set this to FALSE to exclude static libraries from the generated graphs. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_SHARED_LIBS |
| |
| Set this to FALSE to exclude shared libraries from the generated graphs. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_MODULE_LIBS |
| |
| Set this to FALSE to exclude module libraries from the generated graphs. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_EXTERNAL_LIBS |
| |
| Set this to FALSE to exclude external libraries from the generated graphs. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_IGNORE_TARGETS |
| |
| A list of regular expressions for ignoring targets. |
| |
| * Mandatory : NO |
| * Default : empty |
| |
| .. variable:: GRAPHVIZ_GENERATE_PER_TARGET |
| |
| Set this to FALSE to exclude per target graphs ``foo.dot.<target>``. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| |
| .. variable:: GRAPHVIZ_GENERATE_DEPENDERS |
| |
| Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``. |
| |
| * Mandatory : NO |
| * Default : TRUE |
| #]=======================================================================] |