CMakeGraphViz选项¶
CMake 的内置 Graphviz 支持。
生成 Graphviz 文件¶
CMake 可以生成 Graphviz 文件,显示项目中目标之间的依赖关系,以及链接的外部库。
当使用 --graphviz=foo.dot 选项运行 CMake 时,它会产生:
一个
foo.dot文件,显示项目中的所有依赖项每个目标的
foo.dot.<target>文件,显示它所依赖的其他目标每个目标的
foo.dot.<target>.dependers文件,显示哪些其他目标依赖于它
可以使用 Graphviz 包中的 dot 命令将这些 .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 以从生成的图形中排除可执行文件。
强制性:否
默认值:真
- GRAPHVIZ_STATIC_LIBS¶
设置为 FALSE 以从生成的图形中排除静态库。
强制性:否
默认值:真
- GRAPHVIZ_SHARED_LIBS¶
设置为 FALSE 以从生成的图形中排除共享库。
强制性:否
默认值:真
- GRAPHVIZ_MODULE_LIBS¶
设置为 FALSE 以从生成的图形中排除模块库。
强制性:否
默认值:真
- GRAPHVIZ_INTERFACE_LIBS¶
设置为 FALSE 以从生成的图形中排除接口库。
强制性:否
默认值:真
- GRAPHVIZ_OBJECT_LIBS¶
设置为 FALSE 以从生成的图形中排除对象库。
强制性:否
默认值:真
- GRAPHVIZ_UNKNOWN_LIBS¶
设置为 FALSE 以从生成的图形中排除未知库。
强制性:否
默认值:真
- GRAPHVIZ_EXTERNAL_LIBS¶
设置为 FALSE 以从生成的图形中排除外部库。
强制性:否
默认值:真
- GRAPHVIZ_CUSTOM_TARGETS¶
设置为 TRUE 以在生成的图形中包含自定义目标。
强制性:否
默认值:假
- GRAPHVIZ_IGNORE_TARGETS¶
要从生成的图形中排除的目标名称的正则表达式列表。
强制性:否
默认值:空
- GRAPHVIZ_GENERATE_PER_TARGET¶
设置为 FALSE 不生成每个目标图
foo.dot.<target>。强制性:否
默认值:真
- GRAPHVIZ_GENERATE_DEPENDERS¶
设置为 FALSE 不生成依赖图``foo.dot.<target>.dependers``。
强制性:否
默认值:真