CMakeGraphVizOptions.cmake 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. #.rst:
  4. # CMakeGraphVizOptions
  5. # --------------------
  6. #
  7. # The builtin graphviz support of CMake.
  8. #
  9. # Variables specific to the graphviz support
  10. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  11. #
  12. # CMake
  13. # can generate `graphviz <http://www.graphviz.org/>`_ files, showing the dependencies between the
  14. # targets in a project and also external libraries which are linked
  15. # against. When CMake is run with the ``--graphviz=foo.dot`` option, it will
  16. # produce:
  17. #
  18. # * a ``foo.dot`` file showing all dependencies in the project
  19. # * a ``foo.dot.<target>`` file for each target, file showing on which other targets the respective target depends
  20. # * a ``foo.dot.<target>.dependers`` file, showing which other targets depend on the respective target
  21. #
  22. # The different dependency types ``PUBLIC``, ``PRIVATE`` and ``INTERFACE``
  23. # are represented as solid, dashed and dotted edges.
  24. #
  25. # This can result in huge graphs. Using the file
  26. # ``CMakeGraphVizOptions.cmake`` the look and content of the generated
  27. # graphs can be influenced. This file is searched first in
  28. # :variable:`CMAKE_BINARY_DIR` and then in :variable:`CMAKE_SOURCE_DIR`. If found, it is
  29. # read and the variables set in it are used to adjust options for the
  30. # generated graphviz files.
  31. #
  32. # .. variable:: GRAPHVIZ_GRAPH_TYPE
  33. #
  34. # The graph type.
  35. #
  36. # * Mandatory : NO
  37. # * Default : "digraph"
  38. #
  39. # Valid graph types are:
  40. #
  41. # * "graph" : Nodes are joined with lines
  42. # * "digraph" : Nodes are joined with arrows showing direction
  43. # * "strict graph" : Like "graph" but max one line between each node
  44. # * "strict digraph" : Like "graph" but max one line between each node in each direction
  45. #
  46. # .. variable:: GRAPHVIZ_GRAPH_NAME
  47. #
  48. # The graph name.
  49. #
  50. # * Mandatory : NO
  51. # * Default : "GG"
  52. #
  53. # .. variable:: GRAPHVIZ_GRAPH_HEADER
  54. #
  55. # The header written at the top of the graphviz file.
  56. #
  57. # * Mandatory : NO
  58. # * Default : "node [n fontsize = "12"];"
  59. #
  60. # .. variable:: GRAPHVIZ_NODE_PREFIX
  61. #
  62. # The prefix for each node in the graphviz file.
  63. #
  64. # * Mandatory : NO
  65. # * Default : "node"
  66. #
  67. # .. variable:: GRAPHVIZ_EXECUTABLES
  68. #
  69. # Set this to FALSE to exclude executables from the generated graphs.
  70. #
  71. # * Mandatory : NO
  72. # * Default : TRUE
  73. #
  74. # .. variable:: GRAPHVIZ_STATIC_LIBS
  75. #
  76. # Set this to FALSE to exclude static libraries from the generated graphs.
  77. #
  78. # * Mandatory : NO
  79. # * Default : TRUE
  80. #
  81. # .. variable:: GRAPHVIZ_SHARED_LIBS
  82. #
  83. # Set this to FALSE to exclude shared libraries from the generated graphs.
  84. #
  85. # * Mandatory : NO
  86. # * Default : TRUE
  87. #
  88. # .. variable:: GRAPHVIZ_MODULE_LIBS
  89. #
  90. # Set this to FALSE to exclude module libraries from the generated graphs.
  91. #
  92. # * Mandatory : NO
  93. # * Default : TRUE
  94. #
  95. # .. variable:: GRAPHVIZ_EXTERNAL_LIBS
  96. #
  97. # Set this to FALSE to exclude external libraries from the generated graphs.
  98. #
  99. # * Mandatory : NO
  100. # * Default : TRUE
  101. #
  102. # .. variable:: GRAPHVIZ_IGNORE_TARGETS
  103. #
  104. # A list of regular expressions for ignoring targets.
  105. #
  106. # * Mandatory : NO
  107. # * Default : empty
  108. #
  109. # .. variable:: GRAPHVIZ_GENERATE_PER_TARGET
  110. #
  111. # Set this to FALSE to exclude per target graphs ``foo.dot.<target>``.
  112. #
  113. # * Mandatory : NO
  114. # * Default : TRUE
  115. #
  116. # .. variable:: GRAPHVIZ_GENERATE_DEPENDERS
  117. #
  118. # Set this to FALSE to exclude depender graphs ``foo.dot.<target>.dependers``.
  119. #
  120. # * Mandatory : NO
  121. # * Default : TRUE