假设我有数百个目标,其中一些对于构建成功并不重要(例如,我--keep-going
在 make 或-k 9000
ninja 上使用),我需要找出哪些 cmake 目标失败。
可以将add_custom_command()
构建后命令添加到 cmake 目标,该目标打印其名称,如下所示:
success: myTarget.dll
但是失败呢?
如果链接失败,那么我可以解析我正在使用的任何内容(ninja/make/msbuild)的详细输出,并查看哪个目标失败了。
但是,如果翻译单元的编译失败,我得到的唯一错误是特定源文件无法编译,并且确定哪个 cmake 目标完全失败更难。
我唯一想到的是在构建失败后运行它:ninja -nv
这将进行详细的空运行,我可以拦截链接命令并解析以这种方式失败的 cmake 目标......
还有其他想法吗?