Bug 1216901 - Make the FasterMake backend reticulate splines when moz.build or jar.mn files are modified. r=mshal

This commit is contained in:
Mike Hommey 2015-10-28 11:48:19 +09:00
Родитель d2683de574
Коммит 03e573e93c
2 изменённых файлов: 18 добавлений и 0 удалений

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

@ -24,6 +24,8 @@
# python/mozbuild/mozbuild/backend/fastermake.py is the following:
# - TOPSRCDIR/TOPOBJDIR, respectively the top source directory and the top
# object directory
# - BACKEND, the path to the file the backend will always update when running
# mach build-backend
# - PYTHON, the path to the python executable
# - ACDEFINES, which contains a set of -Dvar=name to be used during
# preprocessing
@ -69,12 +71,22 @@ $(TOPOBJDIR)/%: FORCE
# fallback
$(TOPOBJDIR)/faster/%: ;
# Files under the python virtualenv, which are dependencies of the BACKEND
# file, are not meant to use the fallback either.
$(TOPOBJDIR)/_virtualenv/%: ;
# And files under dist/ are meant to be copied from their first dependency
# if there is no other rule.
$(TOPOBJDIR)/dist/%:
rm -f $@
cp $< $@
# Refresh backend
$(BACKEND):
cd $(TOPOBJDIR) && $(PYTHON) config.status --backend FasterMake
$(MAKEFILE_LIST): $(BACKEND)
# Install files using install manifests
#
# The list of base directories is given in INSTALL_MANIFESTS. The

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

@ -207,6 +207,7 @@ class FasterMakeBackend(CommonBackend):
)
pp.out = JarManifestParser()
pp.do_include(obj.path)
self.backend_input_files |= pp.includes
for jarinfo in pp.out:
install_target = obj.install_target
@ -294,6 +295,7 @@ class FasterMakeBackend(CommonBackend):
mk.create_rule(['default'])
mk.add_statement('TOPSRCDIR = %s' % self.environment.topsrcdir)
mk.add_statement('TOPOBJDIR = %s' % self.environment.topobjdir)
mk.add_statement('BACKEND = %s' % self._backend_output_list_file)
# Add a few necessary variables inherited from configure
for var in (
@ -324,6 +326,10 @@ class FasterMakeBackend(CommonBackend):
mk.create_rule([target]).add_dependencies(
'$(TOPOBJDIR)/%s' % d for d in deps)
# Add backend dependencies:
mk.create_rule([self._backend_output_list_file]).add_dependencies(
self.backend_input_files)
mk.add_statement('include $(TOPSRCDIR)/config/faster/rules.mk')
for base, install_manifest in self._install_manifests.iteritems():