Bug 1649898 - Improve reproducibility of root-deps.mk and binaries.json r=nalexander

Differential Revision: https://phabricator.services.mozilla.com/D81922
This commit is contained in:
Ricky Stewart 2020-07-07 16:13:52 +00:00
Родитель bff89afddf
Коммит 78b3e5d01b
2 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -6,6 +6,7 @@ from __future__ import absolute_import, print_function, unicode_literals
import itertools
import json
from operator import itemgetter
import os
import six
@ -214,8 +215,12 @@ class CommonBackend(BuildBackend):
topobjdir = self.environment.topobjdir
with self._write_file(mozpath.join(topobjdir, 'binaries.json')) as fh:
d = {
'shared_libraries': [s.to_dict() for s in self._binaries.shared_libraries],
'programs': [p.to_dict() for p in self._binaries.programs],
'shared_libraries': sorted(
(s.to_dict() for s in self._binaries.shared_libraries),
key=itemgetter('basename')),
'programs': sorted(
(p.to_dict() for p in self._binaries.programs),
key=itemgetter('program')),
}
json.dump(d, fh, sort_keys=True, indent=4)

Просмотреть файл

@ -781,7 +781,7 @@ class RecursiveMakeBackend(MakeBackend):
r = root_deps_mk.create_rule([target])
r.add_dependencies([prior_target])
rule.add_dependencies(chain(rust_roots, roots))
rule.add_dependencies(chain(rust_roots, sorted(roots)))
for target, deps in sorted(graph.items()):
if deps:
rule = root_deps_mk.create_rule([target])