一次确定哪些目标在忍者中失败

时间:2019-01-14 18:51:40

标签: ninja

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

$ 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

1 个答案:

答案 0 :(得分: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