diff --git a/core/config.mk b/core/config.mk index b3f3d3662..35a289aae 100644 --- a/core/config.mk +++ b/core/config.mk @@ -178,6 +178,9 @@ endef # Set common values # ############################################################### +# Initialize SOONG_CONFIG_NAMESPACES so that it isn't recursive. +SOONG_CONFIG_NAMESPACES := + # Set the extensions used for various packages COMMON_PACKAGE_SUFFIX := .zip COMMON_JAVA_PACKAGE_SUFFIX := .jar diff --git a/core/main.mk b/core/main.mk index 4f59076c3..16e70ebc2 100644 --- a/core/main.mk +++ b/core/main.mk @@ -52,6 +52,10 @@ ifneq ($(filter $(dont_bother_goals), $(MAKECMDGOALS)),) dont_bother := true endif +.KATI_READONLY := SOONG_CONFIG_NAMESPACES +.KATI_READONLY := $(foreach n,$(SOONG_CONFIG_NAMESPACES),SOONG_CONFIG_$(n)) +.KATI_READONLY := $(foreach n,$(SOONG_CONFIG_NAMESPACES),$(foreach k,$(SOONG_CONFIG_$(n)),SOONG_CONFIG_$(n)_$(k))) + include $(SOONG_MAKEVARS_MK) include $(BUILD_SYSTEM)/clang/config.mk diff --git a/core/soong_config.mk b/core/soong_config.mk index bf40fe345..ab493d916 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -137,7 +137,15 @@ $(call add_json_list, NamespacesToExport, $(PRODUCT_SOONG_NAMESPA $(call add_json_list, PgoAdditionalProfileDirs, $(PGO_ADDITIONAL_PROFILE_DIRS)) -_contents := $(subst $(comma)$(newline)__SV_END,$(newline)}$(newline),$(_contents)__SV_END) +_contents := $(_contents) "VendorVars": {$(newline) +$(foreach namespace,$(SOONG_CONFIG_NAMESPACES),\ + $(eval _contents := $$(_contents) "$(namespace)": {$$(newline)) \ + $(foreach key,$(SOONG_CONFIG_$(namespace)),\ + $(eval _contents := $$(_contents) "$(key)": "$(SOONG_CONFIG_$(namespace)_$(key))",$$(newline)))\ + $(eval _contents := $$(_contents)$(if $(strip $(SOONG_CONFIG_$(namespace))),__SV_END) },$$(newline))) +_contents := $(_contents)$(if $(strip $(SOONG_CONFIG_NAMESPACES)),__SV_END) },$(newline) + +_contents := $(subst $(comma)$(newline)__SV_END,$(newline),$(_contents)__SV_END}$(newline)) $(file >$(SOONG_VARIABLES).tmp,$(_contents))