diff --git a/core/product.mk b/core/product.mk index 4c642b82d4..7621c71314 100644 --- a/core/product.mk +++ b/core/product.mk @@ -263,6 +263,9 @@ _product_list_vars += PRODUCT_FORCE_PRODUCT_MODULES_TO_SYSTEM_PARTITION # This flag implies PRODUCT_USE_DYNAMIC_PARTITIONS. _product_single_value_vars += PRODUCT_RETROFIT_DYNAMIC_PARTITIONS +# List of tags that will be used to gate blueprint modules from the build graph +_product_list_vars += PRODUCT_INCLUDE_TAGS + # When this is true, various build time as well as runtime debugfs restrictions are enabled. _product_single_value_vars += PRODUCT_SET_DEBUGFS_RESTRICTIONS diff --git a/core/product_config.mk b/core/product_config.mk index e03ae2baee..7055a1e958 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -274,6 +274,14 @@ endif current_product_makefile := ############################################################################# +# Check product include tag allowlist +BLUEPRINT_INCLUDE_TAGS_ALLOWLIST := com.android.mainline_go com.android.mainline +.KATI_READONLY := BLUEPRINT_INCLUDE_TAGS_ALLOWLIST +$(foreach include_tag,$(PRODUCT_INCLUDE_TAGS), \ + $(if $(filter $(include_tag),$(BLUEPRINT_INCLUDE_TAGS_ALLOWLIST)),,\ + $(call pretty-error, $(include_tag) is not in BLUEPRINT_INCLUDE_TAGS_ALLOWLIST: $(BLUEPRINT_INCLUDE_TAGS_ALLOWLIST)))) +############################################################################# + # Quick check and assign default values TARGET_DEVICE := $(PRODUCT_DEVICE) diff --git a/core/soong_config.mk b/core/soong_config.mk index 7d3ae23d08..a89db4f9bf 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -300,6 +300,8 @@ $(call add_json_bool, GenerateAidlNdkPlatformBackend, $(filter true,$(NEED_AIDL_ $(call add_json_bool, IgnorePrefer32OnDevice, $(filter true,$(IGNORE_PREFER32_ON_DEVICE))) +$(call add_json_list, IncludeTags, $(PRODUCT_INCLUDE_TAGS)) + $(call json_end) $(file >$(SOONG_VARIABLES).tmp,$(json_contents))