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¶
一个正则表达式列表,用于指定要从生成的图中排除的目标名称。
强制:否
默认值:空
- GRAPHVIZ_GENERATE_PER_TARGET¶
设置为 FALSE 可不生成每个目标的图
foo.dot.<target>
。强制:否
默认值:TRUE
- GRAPHVIZ_GENERATE_DEPENDERS¶
设置为 FALSE 可不生成依赖者图
foo.dot.<target>.dependers
。强制:否
默认值:TRUE