Merge "Delay platform availability error for ALLOW_MISSING_DEPENDENCIES=true"

This commit is contained in:
Colin Cross 2020-08-31 04:20:18 +00:00 committed by Gerrit Code Review
commit 8b21e4e7d4
1 changed files with 23 additions and 3 deletions

View File

@ -26,11 +26,31 @@ $(strip $(foreach m,$(product_MODULES),\
$(if $(filter true,$(ALL_MODULES.$(m).NOT_AVAILABLE_FOR_PLATFORM)),\
$(m))))))
_violators_with_path := $(foreach m,$(sort $(_modules_not_available_for_platform)),\
ifndef ALLOW_MISSING_DEPENDENCIES
_violators_with_path := $(foreach m,$(sort $(_modules_not_available_for_platform)),\
$(m):$(word 1,$(ALL_MODULES.$(m).PATH))\
)
)
$(call maybe-print-list-and-error,$(_violators_with_path),\
$(call maybe-print-list-and-error,$(_violators_with_path),\
Following modules are requested to be installed. But are not available \
for platform because they do not have "//apex_available:platform" or \
they depend on other modules that are not available for platform)
else
# Don't error out immediately when ALLOW_MISSING_DEPENDENCIES is set.
# Instead, add a dependency on a rule that prints the error message.
define not_available_for_platform_rule
not_installable_file := $(patsubst $(OUT_DIR)/%,$(OUT_DIR)/NOT_AVAILABLE_FOR_PLATFORM/%,$(1)))
$(1): $$(not_installable_file)
$$(not_installable_file):
$(call echo-error,$(2),Module is requested to be installed but is not \
available for platform because it does not have "//apex_available:platform" or \
it depends on other modules that are not available for platform.)
exit 1
endef
$(foreach m,$(_modules_not_available_for_platform),\
$(foreach i,$(ALL_MODULES.$(m).INSTALLED),\
$(eval $(call not_available_for_platform_rule,$(i),$(m)))))
endif