From fa7ddae29b506c5e10b04d4fcfcc7685e494dd11 Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Tue, 19 Mar 2019 18:20:30 +0000 Subject: [PATCH] Fix missing modules check for dont_bother goals Like If1f817d855cbe329b83caee9fdd68c2cce55f02b, but for PRODUCT_PACKAGES, which is only enabled for a few builds. Also share the ALLOW_MISSING_DEPENDENCIES check with the host version. Test: m product-graph Change-Id: Iab55072e7d7c0fc9f4680cc515e139a5214dc3b4 --- core/main.mk | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/core/main.mk b/core/main.mk index 22cba4e2d0..746319f254 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1144,27 +1144,28 @@ $(if $(strip $(1)), \ ) endef -ifeq (true|,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_PACKAGES_EXIST)|$(filter true,$(ALLOW_MISSING_DEPENDENCIES))) - _whitelist := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_PACKAGES_EXIST_WHITELIST) - _modules := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) - # Sanity check all modules in PRODUCT_PACKAGES exist. We check for the - # existence if either or the _32 variant. - _nonexistant_modules := $(filter-out $(ALL_MODULES),$(_modules)) - _nonexistant_modules := $(foreach m,$(_nonexistant_modules),\ - $(if $(call get-32-bit-modules,$(m)),,$(m))) - $(call maybe-print-list-and-error,$(filter-out $(_whitelist),$(_nonexistant_modules)),\ - $(INTERNAL_PRODUCT) includes non-existant modules in PRODUCT_PACKAGES) - $(call maybe-print-list-and-error,$(filter-out $(_nonexistant_modules),$(_whitelist)),\ - $(INTERNAL_PRODUCT) includes redundant whitelist entries for nonexistant PRODUCT_PACKAGES) -endif - ifdef FULL_BUILD - # Check to ensure that all modules in PRODUCT_HOST_PACKAGES exist - # - # Many host modules are Linux-only, so skip this check on Mac. If we ever have Mac-only modules, - # maybe it would make sense to have PRODUCT_HOST_PACKAGES_LINUX/_DARWIN? - ifneq ($(HOST_OS),darwin) - ifneq (true,$(ALLOW_MISSING_DEPENDENCIES)) + ifneq (true,$(ALLOW_MISSING_DEPENDENCIES)) + # Check to ensure that all modules in PRODUCT_PACKAGES exist (opt in per product) + ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_PACKAGES_EXIST)) + _whitelist := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_PACKAGES_EXIST_WHITELIST) + _modules := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) + # Sanity check all modules in PRODUCT_PACKAGES exist. We check for the + # existence if either or the _32 variant. + _nonexistant_modules := $(filter-out $(ALL_MODULES),$(_modules)) + _nonexistant_modules := $(foreach m,$(_nonexistant_modules),\ + $(if $(call get-32-bit-modules,$(m)),,$(m))) + $(call maybe-print-list-and-error,$(filter-out $(_whitelist),$(_nonexistant_modules)),\ + $(INTERNAL_PRODUCT) includes non-existant modules in PRODUCT_PACKAGES) + $(call maybe-print-list-and-error,$(filter-out $(_nonexistant_modules),$(_whitelist)),\ + $(INTERNAL_PRODUCT) includes redundant whitelist entries for nonexistant PRODUCT_PACKAGES) + endif + + # Check to ensure that all modules in PRODUCT_HOST_PACKAGES exist + # + # Many host modules are Linux-only, so skip this check on Mac. If we ever have Mac-only modules, + # maybe it would make sense to have PRODUCT_HOST_PACKAGES_LINUX/_DARWIN? + ifneq ($(HOST_OS),darwin) _modules := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_HOST_PACKAGES) _nonexistant_modules := $(foreach m,$(_modules),\ $(if $(filter FAKE,$(ALL_MODULES.$(m).CLASS))$(filter $(HOST_OUT_ROOT)/%,$(ALL_MODULES.$(m).INSTALLED)),,$(m)))