CMakeGraphVizOptions¶
CMake 的内置 Graphviz 支持。
生成 Graphviz 文件¶
CMake 可以生成 Graphviz 文件,显示项目中目标之间的依赖关系,以及与之链接的外部库。
当使用 --graphviz=foo.dot
选项运行 CMake 时,它会生成
一个
foo.dot
文件,显示项目中的所有依赖关系每个目标一个
foo.dot.<target>
文件,显示它依赖于哪些其他目标每个目标一个
foo.dot.<target>.dependers
文件,显示哪些其他目标依赖于它
这些 .dot 文件可以使用 Graphviz 包中的 dot 命令转换为图像。
dot -Tpng -o foo.png foo.dot
版本 3.10 新增: 不同的依赖类型 PUBLIC
、INTERFACE
和 PRIVATE
表示为实线、虚线和点线边。
Graphviz 支持特有的变量¶
生成的图形可能非常庞大。可以使用文件 CMakeGraphVizOptions.cmake
控制生成图形的外观和内容。此文件首先在 CMAKE_BINARY_DIR
中搜索,然后在 CMAKE_SOURCE_DIR
中搜索。如果找到,则使用其中设置的变量来调整生成的 Graphviz 文件的选项。
- GRAPHVIZ_GRAPH_NAME¶
图形名称。
必需: 否
默认值:
CMAKE_PROJECT_NAME
的值
- GRAPHVIZ_GRAPH_HEADER¶
写入 Graphviz 文件顶部的标头。
必需: 否
默认值: "node [ fontsize = "12" ];"
- GRAPHVIZ_NODE_PREFIX¶
Graphviz 文件中每个节点的前缀。
必需: 否
默认值: "node"
- GRAPHVIZ_EXECUTABLES¶
设置为 FALSE 以从生成的图形中排除可执行文件。
必需: 否
默认值: TRUE
- GRAPHVIZ_STATIC_LIBS¶
设置为 FALSE 以从生成的图形中排除静态库。
必需: 否
默认值: TRUE
- GRAPHVIZ_SHARED_LIBS¶
设置为 FALSE 以从生成的图形中排除共享库。
必需: 否
默认值: TRUE
- GRAPHVIZ_MODULE_LIBS¶
设置为 FALSE 以从生成的图形中排除模块库。
必需: 否
默认值: TRUE
- GRAPHVIZ_INTERFACE_LIBS¶
设置为 FALSE 以从生成的图形中排除接口库。
必需: 否
默认值: TRUE
- GRAPHVIZ_OBJECT_LIBS¶
设置为 FALSE 以从生成的图形中排除对象库。
必需: 否
默认值: TRUE
- GRAPHVIZ_UNKNOWN_LIBS¶
设置为 FALSE 以从生成的图形中排除未知库。
必需: 否
默认值: TRUE
- GRAPHVIZ_EXTERNAL_LIBS¶
设置为 FALSE 以从生成的图形中排除外部库。
必需: 否
默认值: TRUE
- GRAPHVIZ_CUSTOM_TARGETS¶
设置为 TRUE 以在生成的图形中包含自定义目标。
必需: 否
默认值: FALSE
- GRAPHVIZ_IGNORE_TARGETS¶
用于从生成的图形中排除的目标名称的正则表达式列表。
必需: 否
默认值: empty
- GRAPHVIZ_GENERATE_PER_TARGET¶
设置为 FALSE 以不生成每个目标的图形
foo.dot.<target>
。必需: 否
默认值: TRUE
- GRAPHVIZ_GENERATE_DEPENDERS¶
设置为 FALSE 以不生成依赖关系图
foo.dot.<target>.dependers
。必需: 否
默认值: TRUE