# 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 `_ 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.`` file for each target, file showing on which other targets the respective target depends * a ``foo.dot..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.``. * Mandatory : NO * Default : TRUE .. variable:: GRAPHVIZ_GENERATE_DEPENDERS Set this to FALSE to exclude depender graphs ``foo.dot..dependers``. * Mandatory : NO * Default : TRUE #]=======================================================================]