diff options
-rw-r--r-- | backends.py | 3 | ||||
-rw-r--r-- | ninjabackend.py | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/backends.py b/backends.py index 0e5f8f7..574d8f9 100644 --- a/backends.py +++ b/backends.py @@ -277,7 +277,8 @@ class Backend(): for src in self.generate_unity_files(target, unity_src): obj_list.append(self.generate_single_compile(target, outfile, src, True, unity_deps + header_deps)) linker = self.determine_linker(target, src_list) - elem = self.generate_link(target, outfile, outname, obj_list, linker) + # Sort object list to preserve command line over multiple invocations. + elem = self.generate_link(target, outfile, outname, sorted(obj_list), linker) self.generate_shlib_aliases(target, self.get_target_dir(target), outfile, elem) self.processed_targets[name] = True diff --git a/ninjabackend.py b/ninjabackend.py index 2eaaaa1..1d72387 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -71,7 +71,7 @@ class NinjaBuildElement(): # 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 sorted(self.infilenames)])) + ' '.join([ninja_quote(i) for i in self.infilenames])) if len(self.deps) > 0: line += ' | ' + ' '.join([ninja_quote(x) for x in self.deps]) if len(self.orderdeps) > 0: |