Implement enforce_product_packages_exist

This is something that didn't show up as a regression
when testing ninja files, but does show up when testing
make variables.

Bug: 229132189
Test: New --quick mode in rbc_dashboard.py
Change-Id: I6c1219cdc5ee1d8b3cc39e8f944e99fc380d4668
This commit is contained in:
Cole Faust
2022-04-13 13:52:14 -07:00
parent ec8316de2e
commit e050e8fec0

View File

@@ -164,6 +164,10 @@ def _product_configuration(top_pcm_name, top_pcm, input_variables_init):
globals.setdefault("ARTIFACT_PATH_REQUIREMENT_PRODUCTS", [])
globals["ARTIFACT_PATH_REQUIREMENT_PRODUCTS"] = sorted(globals["ARTIFACT_PATH_REQUIREMENT_PRODUCTS"] + [name+".mk"])
if handle.product_enforce_packages_exist[0]:
globals["PRODUCTS."+name+".mk.PRODUCT_ENFORCE_PACKAGES_EXIST"] = "true"
globals["PRODUCTS."+name+".mk.PRODUCT_ENFORCE_PACKAGES_EXIST_ALLOW_LIST"] = handle.product_enforce_packages_exist_allow_list
# Now we know everything about this PCM, record it in 'configs'.
children = handle.inherited_modules
if _options.trace_modules:
@@ -434,6 +438,8 @@ def __h_new():
artifact_path_requirements = list(),
artifact_path_allowed_list = list(),
artifact_path_requirement_is_relaxed = [False], # as a list so that we can reassign it
product_enforce_packages_exist = [False],
product_enforce_packages_exist_allow_list = [],
)
def __h_cfg(handle):
@@ -498,11 +504,11 @@ def _copy_if_exists(path_pair):
# Check that l[0] exists
return [":".join(value)] if rblf_file_exists(value[0]) else []
def _enforce_product_packages_exist(pkg_string_or_list):
def _enforce_product_packages_exist(handle, pkg_string_or_list=[]):
"""Makes including non-existent modules in PRODUCT_PACKAGES an error."""
#TODO(asmundak)
pass
handle.product_enforce_packages_exist[0] = True
handle.product_enforce_packages_exist_allow_list.clear()
handle.product_enforce_packages_exist_allow_list.extend(__words(pkg_string_or_list))
def _add_product_dex_preopt_module_config(handle, modules, config):
"""Equivalent to add-product-dex-preopt-module-config from build/make/core/product.mk."""