Lorsque j'ai une règle avec plusieurs sorties en ninja, cela suppose que toutes les sorties ont été mises à jour et que toutes leurs dépendances ont été reconstruites, même si elles n'ont pas changé du tout.Éviter de reconstruire les dépendances des sorties inchangées
Cela arrive souvent avec une étape de génération de code, comme les générateurs d'analyseurs.
E.g. pour le générateur d'analyseur CITRON:
rule lemon
command = lemon $in
build grammar.c grammar.h grammar.out: lemon grammar.y
Si grammar.y
est mise à jour, mais grammar.h
ne change pas après l'exécution CITRON. LEMON détecte cela et ne met pas à jour le fichier. Pourtant, ninja reconstruit tout ce qui dépendait de grammar.h
.
Comment puis-je empêcher cela?