Default from-text stub generation in build
This change defaults Java stubs to be generated from API text files
during build. Using the `--build-from-source-stubs` flag, users can
toggle between the feature.
Test: m nothing && verify ninja path exists between android_stubs_current and android_stubs_current.from-text, and does not exist between android_stubs_current.from-source, m nothing --build-from-source-stub && verify the opposite
Bug: 274805756
Change-Id: I28834f92c1b1311e3fe0a71a6ea9e8ec2e278d7e
diff --git a/android/config.go b/android/config.go
index 8ad53e3..c6d8d9f 100644
--- a/android/config.go
+++ b/android/config.go
@@ -99,7 +99,7 @@
UseBazelProxy bool
- BuildFromTextStub bool
+ BuildFromSourceStub bool
EnsureAllowlistIntegrity bool
}
@@ -337,9 +337,9 @@
// unix sockets, instead of spawning Bazel as a subprocess.
UseBazelProxy bool
- // If buildFromTextStub is true then the Java API stubs are
- // built from the signature text files, not the source Java files.
- buildFromTextStub bool
+ // If buildFromSourceStub is true then the Java API stubs are
+ // built from the source Java files, not the signature text files.
+ buildFromSourceStub bool
// If ensureAllowlistIntegrity is true, then the presence of any allowlisted
// modules that aren't mixed-built for at least one variant will cause a build
@@ -556,7 +556,7 @@
MultitreeBuild: cmdArgs.MultitreeBuild,
UseBazelProxy: cmdArgs.UseBazelProxy,
- buildFromTextStub: cmdArgs.BuildFromTextStub,
+ buildFromSourceStub: cmdArgs.BuildFromSourceStub,
}
config.deviceConfig = &deviceConfig{
@@ -2071,11 +2071,11 @@
// TODO: b/302320354 - Remove the coverage build specific logic once the
// robust solution for handling native properties in from-text stub build
// is implemented.
- return c.buildFromTextStub && !c.JavaCoverageEnabled()
+ return !c.buildFromSourceStub && !c.JavaCoverageEnabled()
}
func (c *config) SetBuildFromTextStub(b bool) {
- c.buildFromTextStub = b
+ c.buildFromSourceStub = !b
c.productVariables.Build_from_text_stub = boolPtr(b)
}
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index d20847b..53f5d80 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -84,7 +84,7 @@
flag.BoolVar(&cmdlineArgs.BazelMode, "bazel-mode", false, "use bazel for analysis of certain modules")
flag.BoolVar(&cmdlineArgs.BazelModeStaging, "bazel-mode-staging", false, "use bazel for analysis of certain near-ready modules")
flag.BoolVar(&cmdlineArgs.UseBazelProxy, "use-bazel-proxy", false, "communicate with bazel using unix socket proxy instead of spawning subprocesses")
- flag.BoolVar(&cmdlineArgs.BuildFromTextStub, "build-from-text-stub", false, "build Java stubs from API text files instead of source files")
+ flag.BoolVar(&cmdlineArgs.BuildFromSourceStub, "build-from-source-stub", false, "build Java stubs from source files instead of API text files")
flag.BoolVar(&cmdlineArgs.EnsureAllowlistIntegrity, "ensure-allowlist-integrity", false, "verify that allowlisted modules are mixed-built")
// Flags that probably shouldn't be flags of soong_build, but we haven't found
// the time to remove them yet
diff --git a/ui/build/config.go b/ui/build/config.go
index 5925b28..eae379f 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -85,7 +85,7 @@
searchApiDir bool // Scan the Android.bp files generated in out/api_surfaces
skipMetricsUpload bool
buildStartedTime int64 // For metrics-upload-only - manually specify a build-started time
- buildFromTextStub bool
+ buildFromSourceStub bool
ensureAllowlistIntegrity bool // For CI builds - make sure modules are mixed-built
bazelExitCode int32 // For b runs - necessary for updating NonZeroExit
besId string // For b runs, to identify the BuildEventService logs
@@ -808,8 +808,8 @@
} else {
ctx.Fatalf("unknown option for ninja_weight_source: %s", source)
}
- } else if arg == "--build-from-text-stub" {
- c.buildFromTextStub = true
+ } else if arg == "--build-from-source-stub" {
+ c.buildFromSourceStub = true
} else if strings.HasPrefix(arg, "--build-command=") {
buildCmd := strings.TrimPrefix(arg, "--build-command=")
// remove quotations
@@ -1157,7 +1157,7 @@
}
func (c *configImpl) BuildFromTextStub() bool {
- return c.buildFromTextStub
+ return !c.buildFromSourceStub
}
func (c *configImpl) TargetProduct() string {
diff --git a/ui/build/soong.go b/ui/build/soong.go
index ac9bf3a..18eee75 100644
--- a/ui/build/soong.go
+++ b/ui/build/soong.go
@@ -188,8 +188,8 @@
if pb.config.multitreeBuild {
commonArgs = append(commonArgs, "--multitree-build")
}
- if pb.config.buildFromTextStub {
- commonArgs = append(commonArgs, "--build-from-text-stub")
+ if pb.config.buildFromSourceStub {
+ commonArgs = append(commonArgs, "--build-from-source-stub")
}
commonArgs = append(commonArgs, "-l", filepath.Join(pb.config.FileListDir(), "Android.bp.list"))
@@ -305,8 +305,8 @@
if config.MultitreeBuild() {
mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--multitree-build")
}
- if config.buildFromTextStub {
- mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--build-from-text-stub")
+ if config.buildFromSourceStub {
+ mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--build-from-source-stub")
}
if config.ensureAllowlistIntegrity {
mainSoongBuildExtraArgs = append(mainSoongBuildExtraArgs, "--ensure-allowlist-integrity")