我正在调试CMake中自定义命令中的依赖项问题。我的依赖结构基本上看起来像(使用GraphViz表示法):
A -> B
{A; B} -> C -> D -> E
C和E在哪里
add_custom_target
add_custom_command
. CMASE正确地推断C和E之间的目标级依赖性,但是在项目的第一个构建中,B没有被构建为目标C的一部分,因此E失败(因为它需要B存在)。但是在
第二
build,B作为C的一部分生成,一切正常。
目前,我甚至不知道如何调试它,特别是在Visual Studio中,项目文件相当不透明。我可以看到在任何给定的构建中构建了什么,但是对于那些没有构建的东西,我看不出它们为什么没有被构建。CMake中可用的调试方法(如
--trace
)似乎只对配置时间问题有用,而这不是。
有没有什么工具可以调试这些东西,或者我只需要盯着我的CMake文件,直到找到答案?
对于后人来说,下面有关于我的问题的更具体的细节,但是如果我能找到任何合理的方法,我很乐意自己调试:
https://github.com/zdevito/terra/pull/322#issuecomment-441084534