Merge "Add support for PRODUCT_RELEASE_CONFIG_MAPS" into main am: c416ddd1cc am: 1b6f1d27a0

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

Change-Id: I56bf1b239e1cb77550b95b579053cc6b04668f67
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/ui/build/config.go b/ui/build/config.go
index 5cf6ea8..4aa3a51 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -120,6 +120,9 @@
 	includeTags    []string
 	sourceRootDirs []string
 
+	productReleaseConfigMaps       string
+	productReleaseConfigMapsLoaded bool
+
 	// Data source to write ninja weight list
 	ninjaWeightListSource NinjaWeightListSource
 }
@@ -925,6 +928,9 @@
 }
 
 func (c *configImpl) Environment() *Environment {
+	if c.productReleaseConfigMapsLoaded {
+		c.environ.Set("PRODUCT_RELEASE_CONFIG_MAPS", c.productReleaseConfigMaps)
+	}
 	return c.environ
 }
 
diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go
index efe7478..360d0da 100644
--- a/ui/build/dumpvars.go
+++ b/ui/build/dumpvars.go
@@ -92,6 +92,20 @@
 	}
 	defer tool.Finish()
 
+	releaseConfigVars := []string{
+		"PRODUCT_RELEASE_CONFIG_MAPS",
+	}
+
+	if !config.productReleaseConfigMapsLoaded {
+		// Get the PRODUCT_RELEASE_CONFIG_MAPS for this product, to avoid polluting the environment
+		// when we run product config to get the rest of the make vars.
+		config.productReleaseConfigMapsLoaded = true
+		releaseMapVars, err := dumpMakeVars(ctx, config, goals, releaseConfigVars, false, "")
+		if err != nil {
+			ctx.Fatalln("Error getting PRODUCT_RELEASE_CONFIG_MAPS:", err)
+		}
+		config.productReleaseConfigMaps = releaseMapVars["PRODUCT_RELEASE_CONFIG_MAPS"]
+	}
 	cmd := Command(ctx, config, "dumpvars",
 		config.PrebuiltBuildTool("ckati"),
 		"-f", "build/make/core/config.mk",
@@ -191,6 +205,9 @@
 		"TARGET_BUILD_APPS",
 		"TARGET_BUILD_UNBUNDLED",
 
+		// Additional release config maps
+		"PRODUCT_RELEASE_CONFIG_MAPS",
+
 		// compiler wrappers set up by make
 		"CC_WRAPPER",
 		"CXX_WRAPPER",