【发布时间】:2019-06-13 22:28:52
【问题描述】:
我知道通过 CLI 生成 CMake 项目依赖关系图的常用方法:
cmake --graphviz=[file]
但是有没有办法通过在 CMakeList 中设置标志或命令来自动生成它?这个想法是 CMakeLists.txt 本身触发图形生成,而不是用户通过命令行触发。
【问题讨论】:
标签: graph cmake dependencies graphviz
我知道通过 CLI 生成 CMake 项目依赖关系图的常用方法:
cmake --graphviz=[file]
但是有没有办法通过在 CMakeList 中设置标志或命令来自动生成它?这个想法是 CMakeLists.txt 本身触发图形生成,而不是用户通过命令行触发。
【问题讨论】:
标签: graph cmake dependencies graphviz
您可以再次在脚本中调用 CMake,例如喜欢:
add_custom_target(graphviz ALL
"${CMAKE_COMMAND}" "--graphviz=foo" .
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
【讨论】:
您不仅可以创建用于运行 Graphviz 的 CMake 自定义目标,还可以更进一步,让它还使用 Dot 为您生成图像文件:
add_custom_target(graphviz ALL
COMMAND ${CMAKE_COMMAND} "--graphviz=foo.dot" .
COMMAND dot -Tpng foo.dot -o foo.png
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
)
这样,自定义目标也会运行第二个命令dot -Tpng foo.dot -o foo.png。您可以通过在foo.png 前面加上您选择的路径来在系统上的任何位置输出图像文件。
【讨论】: