【问题标题】:Determine which targets failed in ninja all at once确定哪些目标在忍者中一次全部失败
【发布时间】:2019-01-14 18:51:40
【问题描述】:

有时我想一次构建多个目标:

$ ninja A B C D -j10

其中一些目标可能无法构建。有什么我能做到的吗:

  • 将成功构建所有可以成功构建的东西,并且
  • 会向我报告构建失败的目标列表吗?

以下方法可行,但我觉得应该有更有效的方法:

for target in A B C D; do
    if ! ninja ${target} -j10 >/dev/null 2>/dev/null; then 
        echo "${target} failed"
    fi
done

【问题讨论】:

    标签: ninja


    【解决方案1】:

    偶然发现这个是因为我有同样的问题。

    有什么我可以成功构建所有可以成功构建的东西[...]

    是的,就像在make 中一样,您可以提供-k 选项。

    -k N keep going until N jobs fail [default=1]

    继续构建直到所有任务完成或失败:

    ninja -k 0
    

    将此与知道失败的目标将在标准输出上列为FAILED: <target_name> 相结合:

    ninja -k0 | grep FAILED > failed_targets.log
    

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2010-12-03
      • 2021-12-27
      • 2018-06-06
      • 2022-10-01
      相关资源
      最近更新 更多