除了翻译单元编译失败之外,还报告目标失败
Report target failure in addition to translation unit compilation failure
假设我有数百个目标,其中一些对于构建成功并不重要(例如,我在 make 上使用 --keep-going
或在 ninja 上使用 -k 9000
)并且我需要找出哪些 cmake 目标失败了。
使用 add_custom_command()
可以将 post-build 命令添加到打印其名称的 cmake 目标,如下所示:
success: myTarget.dll
但是失败呢?
如果 linking 失败,那么我可以解析我正在使用的任何内容的详细输出 (ninja/make/msbuild) 并查看哪个目标失败了。
但是,如果翻译单元的编译失败,我得到的唯一错误是特定的源文件没有编译,并且更难确定哪个 cmake 目标到底失败了。
我唯一想出的是 运行在构建失败后进行此操作:ninja -nv
这将使冗长的干涸 运行 我可以拦截 link 命令并解析以这种方式失败的 cmake 目标...
还有其他想法吗?
我最终使用了 make/ninja 的空运行并解析了它们的输出
假设我有数百个目标,其中一些对于构建成功并不重要(例如,我在 make 上使用 --keep-going
或在 ninja 上使用 -k 9000
)并且我需要找出哪些 cmake 目标失败了。
使用 add_custom_command()
可以将 post-build 命令添加到打印其名称的 cmake 目标,如下所示:
success: myTarget.dll
但是失败呢?
如果 linking 失败,那么我可以解析我正在使用的任何内容的详细输出 (ninja/make/msbuild) 并查看哪个目标失败了。
但是,如果翻译单元的编译失败,我得到的唯一错误是特定的源文件没有编译,并且更难确定哪个 cmake 目标到底失败了。
我唯一想出的是 运行在构建失败后进行此操作:ninja -nv
这将使冗长的干涸 运行 我可以拦截 link 命令并解析以这种方式失败的 cmake 目标...
还有其他想法吗?
我最终使用了 make/ninja 的空运行并解析了它们的输出