diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-07-19 15:53:43 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-07-19 15:53:43 +0300 |
commit | 279dd5e809cd9bb2bcb0693bb6104a191060d4b7 (patch) | |
tree | 99b073e61c42cffc7ffe160193012d6a860c48e0 | |
parent | 02cb18c93428fb881c453494b4841cd4b2896202 (diff) | |
download | meson-279dd5e809cd9bb2bcb0693bb6104a191060d4b7.zip meson-279dd5e809cd9bb2bcb0693bb6104a191060d4b7.tar.gz meson-279dd5e809cd9bb2bcb0693bb6104a191060d4b7.tar.bz2 |
Sort input files so command lines do not change. This allows Ninja to skip unnecessary build steps.
-rw-r--r-- | ninjabackend.py | 6 |
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: |