我知道CLI生成CMake项目依赖关系图的常用方法:
cmake --graphviz=[file]
但是有没有办法通过在CMakeList中设置标志或命令来自动生成它?我们的想法是让CMakeLists.txt本身触发图形生成,而不是通过命令行触发用户。
答案 0 :(得分:4)
您可以再次在脚本中调用CMake,例如像:
add_custom_target(graphviz ALL
"${CMAKE_COMMAND}" "--graphviz=foo" .
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
答案 1 :(得分:0)
不仅可以创建用于运行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
前面加上自己选择的路径来在系统上的任何位置输出图像文件。