aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ninjabackend.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/ninjabackend.py b/ninjabackend.py
index 7ea73f1..2eaaaa1 100644
--- a/ninjabackend.py
+++ b/ninjabackend.py
@@ -67,9 +67,11 @@ class NinjaBuildElement():
self.elems.append((name, elems))
def write(self, outfile):
- line = 'build %s: %s %s' % (' '.join([ninja_quote(i) for i in self.outfilenames]),\
+ # Sort inputs so the command line does not change.
+ # This allows Ninja to skip unnecessary rebuilds.
+ line = 'build %s: %s %s' % (' '.join([ninja_quote(i) for i in self.outfilenames]),\
self.rule,
- ' '.join([ninja_quote(i) for i in self.infilenames]))
+ ' '.join([ninja_quote(i) for i in sorted(self.infilenames)]))
if len(self.deps) > 0:
line += ' | ' + ' '.join([ninja_quote(x) for x in self.deps])
if len(self.orderdeps) > 0: