diff options
Diffstat (limited to 'Modules/CMakeGraphVizOptions.cmake')
-rw-r--r-- | Modules/CMakeGraphVizOptions.cmake | 239 |
1 files changed, 120 insertions, 119 deletions
diff --git a/Modules/CMakeGraphVizOptions.cmake b/Modules/CMakeGraphVizOptions.cmake index 0d7f1d9..1911e73 100644 --- a/Modules/CMakeGraphVizOptions.cmake +++ b/Modules/CMakeGraphVizOptions.cmake @@ -1,122 +1,123 @@ # 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 +#[=======================================================================[.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 +#]=======================================================================] |