Bug 1239217 - Skip empty install manifests, apart a few exceptions. r=gps

Install manifests are not empty in normal conditions, apart a few
exceptions where they are only used for a "magic" `rm -rf`.

However, we're going to introduce changes that will empty some of
the install manifests and make their work happen from a different
backend, in which case we don't want them to correspond to a `rm -rf`.
This commit is contained in:
Mike Hommey 2016-01-21 18:10:57 +09:00
Родитель 6a8edbd624
Коммит 2bbd2afaf4
2 изменённых файлов: 11 добавлений и 19 удалений

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

@ -128,16 +128,13 @@ ifdef JS_STANDALONE
NO_REMOVE=1
endif
.PHONY: $(addprefix install-,$(install_manifests))
$(addprefix install-,$(filter dist/%,$(install_manifests))): install-dist/%: $(install_manifest_depends)
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )$(DIST)/$* _build_manifests/install/dist_$*)
.PHONY: $(addprefix install-,$(subst /,_,$(install_manifests)))
$(addprefix install-,$(install_manifests)): install-%: $(install_manifest_depends)
$(addprefix $(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )$*) ,$(wildcard _build_manifests/install/$(subst /,_,$*)))
# Dummy wrapper rule to allow the faster backend to piggy back
install-dist_%: install-dist/% ;
install-_tests: $(install_manifest_depends)
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )_tests _build_manifests/install/_tests)
# For compatibility
.PHONY: install-tests
install-tests: install-_tests

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

@ -391,19 +391,14 @@ class RecursiveMakeBackend(CommonBackend):
self.backend_input_files.add(mozpath.join(self.environment.topobjdir,
'config', 'autoconf.mk'))
self._install_manifests = {
k: InstallManifest() for k in [
'dist_bin',
'dist_branding',
'dist_idl',
'dist_include',
'dist_public',
'dist_private',
'dist_sdk',
'dist_xpi-stage',
'_tests',
'xpidl',
]}
self._install_manifests = defaultdict(InstallManifest)
# The build system relies on some install manifests always existing
# even if they are empty, because the directories are still filled
# by the build system itself, and the install manifests are only
# used for a "magic" rm -rf.
self._install_manifests['dist_public']
self._install_manifests['dist_private']
self._install_manifests['dist_sdk']
self._traversal = RecursiveMakeTraversal()
self._compile_graph = defaultdict(set)