Add --multitree-build flag
Add a flag that enables logic specific to multitree-build builds.
Bug: b/266730267
Test: treehugger, manual
Change-Id: Ia6f392525faa9d66bb6e0692b2a2e9c3b8493b0d
diff --git a/ui/build/config.go b/ui/build/config.go
index b5ee440..9c7f558 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -77,6 +77,7 @@
queryview bool
reportMkMetrics bool // Collect and report mk2bp migration progress metrics.
soongDocs bool
+ multitreeBuild bool // This is a multitree build.
skipConfig bool
skipKati bool
skipKatiNinja bool
@@ -474,6 +475,10 @@
ret.environ.Set("ANDROID_JAVA11_HOME", java11Home)
ret.environ.Set("PATH", strings.Join(newPath, string(filepath.ListSeparator)))
+ if ret.MultitreeBuild() {
+ ret.environ.Set("MULTITREE_BUILD", "true")
+ }
+
outDir := ret.OutDir()
buildDateTimeFile := filepath.Join(outDir, "build_date.txt")
if buildDateTime, ok := ret.environ.Get("BUILD_DATETIME"); ok && buildDateTime != "" {
@@ -781,6 +786,8 @@
c.skipMetricsUpload = true
} else if arg == "--mk-metrics" {
c.reportMkMetrics = true
+ } else if arg == "--multitree-build" {
+ c.multitreeBuild = true
} else if arg == "--bazel-mode" {
c.bazelProdMode = true
} else if arg == "--bazel-mode-dev" {
@@ -1079,6 +1086,10 @@
return c.verbose
}
+func (c *configImpl) MultitreeBuild() bool {
+ return c.multitreeBuild
+}
+
func (c *configImpl) SkipKati() bool {
return c.skipKati
}
diff --git a/ui/build/config_test.go b/ui/build/config_test.go
index 940d85c..1749cd4 100644
--- a/ui/build/config_test.go
+++ b/ui/build/config_test.go
@@ -903,6 +903,15 @@
tidyOnly: "",
expectedArgs: []string{},
}, {
+ description: "multitree build action executed at root directory",
+ dirsInTrees: []string{},
+ buildFiles: []string{},
+ rootSymlink: false,
+ args: []string{"--multitree-build"},
+ curDir: ".",
+ tidyOnly: "",
+ expectedArgs: []string{"--multitree-build"},
+ }, {
description: "build action executed at root directory in symlink",
dirsInTrees: []string{},
buildFiles: []string{},
diff --git a/ui/build/soong.go b/ui/build/soong.go
index a5a3263..655ae35 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -168,6 +168,10 @@
commonArgs = append(commonArgs, "-t")
}
+ if !pb.config.multitreeBuild {
+ commonArgs = append(commonArgs, "--multitree-build")
+ }
+
commonArgs = append(commonArgs, "-l", filepath.Join(pb.config.FileListDir(), "Android.bp.list"))
invocationEnv := make(map[string]string)
if pb.debugPort != "" {
@@ -275,6 +279,9 @@
if len(config.bazelForceEnabledModules) > 0 {
mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--bazel-force-enabled-modules="+config.bazelForceEnabledModules)
}
+ if config.MultitreeBuild() {
+ mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--multitree-build")
+ }
queryviewDir := filepath.Join(config.SoongOutDir(), "queryview")
// The BUILD files will be generated in out/soong/.api_bp2build (no symlinks to src files)