1

假设我有数百个目标,其中一些对于构建成功并不重要(例如,我--keep-going在 make 或-k 9000ninja 上使用),我需要找出哪些 cmake 目标失败。

可以将add_custom_command()构建后命令添加到 cmake 目标,该目标打印其名称,如下所示:

success: myTarget.dll

但是失败呢?

如果链接失败,那么我可以解析我正在使用的任何内容(ninja/make/msbuild)的详细输出,并查看哪个目标失败了。

但是,如果翻译单元的编译失败,我得到的唯一错误是特定源文件无法编译,并且确定哪个 cmake 目标完全失败更难。

我唯一想到的是在构建失败后运行它:ninja -nv这将进行详细的空运行,我可以拦截链接命令并解析以这种方式失败的 cmake 目标......

还有其他想法吗?

4

1 回答 1

0

我最终使用了 make/ninja 的空运行并解析了它们的输出

于 2016-04-15T13:48:08.773 回答