Merge "Delay platform availability error for ALLOW_MISSING_DEPENDENCIES=true" am: 8b21e4e7d4

Original change: https://android-review.googlesource.com/c/platform/build/+/1414693

Change-Id: I29547f61db2e2f00c436cec5e0da236d7f1a3953
This commit is contained in:
Colin Cross
2020-08-31 04:51:05 +00:00
committed by Automerger Merge Worker

View File

@@ -26,11 +26,31 @@ $(strip $(foreach m,$(product_MODULES),\
$(if $(filter true,$(ALL_MODULES.$(m).NOT_AVAILABLE_FOR_PLATFORM)),\ $(if $(filter true,$(ALL_MODULES.$(m).NOT_AVAILABLE_FOR_PLATFORM)),\
$(m)))))) $(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))\ $(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 \ Following modules are requested to be installed. But are not available \
for platform because they do not have "//apex_available:platform" or \ for platform because they do not have "//apex_available:platform" or \
they depend on other modules that are not available for platform) 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