一次确定哪些目标在 ninja 中失败
Determine which targets failed in ninja all at once
有时我想一次构建多个目标:
$ 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
偶然发现这个是因为我有同样的问题。
Is there something I can that will successfully build all the things that can be successfully built [...]
是的,就像在 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
有时我想一次构建多个目标:
$ 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
偶然发现这个是因为我有同样的问题。
Is there something I can that will successfully build all the things that can be successfully built [...]
是的,就像在 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