Bug 1601777 - Check if any build backend is out of date; r=froydnj

By default we create both the RecursiveMake and FasterMake backends, but
building.py is only checking if the RecursiveMake backend is out of date
to decide if the backend needs to be updated. Since the FasterMake
backend may have different input files, we also need to check if that's
out of date, otherwise renaming certain files can cause './mach build
faster' to break.

Differential Revision: https://phabricator.services.mozilla.com/D58010

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Mike Shal 2019-12-20 17:49:26 +00:00
parent c4a7a05545
commit 97bd574229

View File

@ -1074,14 +1074,16 @@ class BuildDriver(MozbuildObject):
config = self.reload_config_environment()
active_backend = config.substs.get('BUILD_BACKENDS', [None])[0]
all_backends = config.substs.get('BUILD_BACKENDS', [None])
active_backend = all_backends[0]
status = None
if (not config_rc and
self.backend_out_of_date(mozpath.join(self.topobjdir,
'backend.%sBackend' %
active_backend))):
any([self.backend_out_of_date(mozpath.join(self.topobjdir,
'backend.%sBackend' %
backend))
for backend in all_backends])):
print('Build configuration changed. Regenerating backend.')
args = [config.substs['PYTHON'],
mozpath.join(self.topobjdir, 'config.status')]