我正在尝试调试CMake中自定义命令中依赖项的问题。我的依赖结构基本上看起来像(使用GraphViz表示法):
A -> B
{A; B} -> C -> D -> E
其中C和E为add_custom_target
,而A,B和D为add_custom_command
。 CMake可以正确推断出C和E之间的目标级别依赖关系,但是在项目的第一个构建中,B不会作为目标C的一部分被构建。结果E失败了(因为它需要B存在)。但是在 second 构建中,B作为C的一部分生成,并且一切正常。
此刻,我什至不知道如何调试它,尤其是在项目文件相当不透明的Visual Studio中。我可以看到在任何给定的构建中构建了什么,但是对于未构建的事物,我看不到为什么不构建它们。 CMake中可用的调试方法(例如--trace
)似乎仅对配置时问题有用,而事实并非如此。
是否有用于调试这类事情的工具,或者我只需要盯着我的CMake文件,直到我弄清楚了吗?
为了后代,以下是有关我的问题的更多详细信息,但是如果可以找到任何合理的方法,我将很乐意自己调试:https://github.com/zdevito/terra/pull/322#issuecomment-441084534