Определите, какие цели потерпели неудачу в ниндзя все сразу
Иногда я хочу построить несколько целей одновременно:
$ 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
0 ответов
Наткнулся на это, потому что у меня был такой же вопрос.
Есть ли что-то, что я могу успешно построить все, что может быть успешно построено [...]
Да как в 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