自定义目标的CMake依赖关系图
CMake的自定义目标的CMake依赖关系图,cmake,Cmake,CMake的--graphviz选项是否应该获得对自定义目标的依赖 示例CMakeLists.txt文件: cmake_minimum_required(VERSION 2.8) add_executable(target0 test.cpp) add_dependencies(target0 target1) add_custom_target(target1 ALL COMMAND echo hello ) “cmake--graphviz=test.dot”的输出文件是: digra
--graphviz
选项是否应该获得对自定义目标的依赖
示例CMakeLists.txt
文件:
cmake_minimum_required(VERSION 2.8)
add_executable(target0 test.cpp)
add_dependencies(target0 target1)
add_custom_target(target1 ALL
COMMAND echo hello
)
“cmake--graphviz=test.dot”的输出文件是:
digraph GG {
node [
fontsize = "12"
];
"node3" [ label="target0" shape="house"];
}
没有任何target1
的痕迹,清楚地表明:
--graphviz=[文件]
生成一个graphviz输入文件,该文件将包含项目中所有的库和可执行的依赖项。有关更多详细信息,请参阅CMakeGraphVizOptions.cmake的文档
因此,据我所知,您的自定义目标既不是-也不是库,也不是可执行文件,因此无法包含在生成的图形中。因为有些人可能会在这个问题上绊倒 使用CMake 3.17,现在可以包括自定义目标
(相关问题) GRAPHVIZ_自定义_目标 设置为TRUE以在生成的图形中包括自定义目标。
必填项:否
默认值:FALSE GRAPHVIZ_忽略_目标 用于从生成的图形中排除的目标名称的正则表达式列表。
必填项:否
默认值:空
在创建目标之前添加依赖项
?CMake不抱怨吗?好的地方,确实看起来很奇怪,但我的CMake没有抱怨。无论如何,在文件末尾添加依赖项并没有任何区别。您的CMake版本是什么?可以在CMake 2.8.12.2上复制。因为我刚刚开始使用CMake,所以很难从构建图表的角度理解可执行文件和自定义目标之间的区别。