aboutsummaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorAnton Hansson <hansson@google.com>2021-06-04 10:08:08 +0100
committerAnton Hansson <hansson@google.com>2021-06-04 12:14:05 +0100
commit546de4a1f3de92a2f920daa6311a1c317aedf877 (patch)
treef90c153bdbb4b7319d37236748ee75c135166d52 /ui
parentd274ea91968b95ef7a2edd2d604afbc237e84ff9 (diff)
downloadsoong-546de4a1f3de92a2f920daa6311a1c317aedf877.tar.gz
Add a soong-only mode to soong-ui
The previous --skip-kati flag could be interpreted as "do not run kati to re-generate ninja file". Add a more specific flag for the "soong only" build use-case, where we do not load the kati-generated ninja files at all. Bug: 189187214 Test: build/soong/soong_ui.bash \ --make-mode \ --soong-only --skip-soong-tests \ TARGET_PRODUCT=mainline_sdk \ SOONG_ALLOW_MISSING_DEPENDENCIES=true \ SOONG_SDK_SNAPSHOT_VERSION=unversioned \ SOONG_SDK_SNAPSHOT_USE_SRCJAR=true \ out/soong/mainline-sdks/art-module-sdk.zip Change-Id: I91abbd28af517d4b550ebc6d88fd64947caf9545
Diffstat (limited to 'ui')
-rw-r--r--ui/build/build.go18
-rw-r--r--ui/build/config.go9
2 files changed, 21 insertions, 6 deletions
diff --git a/ui/build/build.go b/ui/build/build.go
index da44b6568..8f050d9be 100644
--- a/ui/build/build.go
+++ b/ui/build/build.go
@@ -60,15 +60,15 @@ builddir = {{.OutDir}}
{{end -}}
pool highmem_pool
depth = {{.HighmemParallel}}
-{{if .HasKatiSuffix}}subninja {{.KatiBuildNinjaFile}}
+{{if and (not .SkipKatiNinja) .HasKatiSuffix}}subninja {{.KatiBuildNinjaFile}}
subninja {{.KatiPackageNinjaFile}}
{{end -}}
subninja {{.SoongNinjaFile}}
`))
func createCombinedBuildNinjaFile(ctx Context, config Config) {
- // If we're in SkipKati mode, skip creating this file if it already exists
- if config.SkipKati() {
+ // If we're in SkipKati mode but want to run kati ninja, skip creating this file if it already exists
+ if config.SkipKati() && !config.SkipKatiNinja() {
if _, err := os.Stat(config.CombinedNinjaFile()); err == nil || !os.IsNotExist(err) {
return
}
@@ -94,13 +94,15 @@ const (
RunSoong = 1 << iota
// Whether to run kati to generate a ninja file.
RunKati = 1 << iota
+ // Whether to include the kati-generated ninja file in the combined ninja.
+ RunKatiNinja = 1 << iota
// Whether to run ninja on the combined ninja.
RunNinja = 1 << iota
// Whether to run bazel on the combined ninja.
RunBazel = 1 << iota
RunBuildTests = 1 << iota
- RunAll = RunProductConfig | RunSoong | RunKati | RunNinja
- RunAllWithBazel = RunProductConfig | RunSoong | RunKati | RunBazel
+ RunAll = RunProductConfig | RunSoong | RunKati | RunKatiNinja | RunNinja
+ RunAllWithBazel = RunProductConfig | RunSoong | RunKati | RunKatiNinja | RunBazel
)
// checkProblematicFiles fails the build if existing Android.mk or CleanSpec.mk files are found at the root of the tree.
@@ -228,6 +230,10 @@ func Build(ctx Context, config Config) {
ctx.Verboseln("Skipping Kati as requested")
what = what &^ RunKati
}
+ if config.SkipKatiNinja() {
+ ctx.Verboseln("Skipping use of Kati ninja as requested")
+ what = what &^ RunKatiNinja
+ }
if config.SkipNinja() {
ctx.Verboseln("Skipping Ninja as requested")
what = what &^ RunNinja
@@ -277,7 +283,7 @@ func Build(ctx Context, config Config) {
runKatiPackage(ctx, config)
ioutil.WriteFile(config.LastKatiSuffixFile(), []byte(config.KatiSuffix()), 0666) // a+rw
- } else {
+ } else if what&RunKatiNinja != 0 {
// Load last Kati Suffix if it exists
if katiSuffix, err := ioutil.ReadFile(config.LastKatiSuffixFile()); err == nil {
ctx.Verboseln("Loaded previous kati config:", string(katiSuffix))
diff --git a/ui/build/config.go b/ui/build/config.go
index bbb3c9c7f..862e09f3c 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -48,6 +48,7 @@ type configImpl struct {
dist bool
skipConfig bool
skipKati bool
+ skipKatiNinja bool
skipNinja bool
skipSoongTests bool
@@ -573,7 +574,11 @@ func (c *configImpl) parseArgs(ctx Context, args []string) {
c.skipConfig = true
c.skipKati = true
} else if arg == "--skip-kati" {
+ // TODO: remove --skip-kati once module builds have been migrated to --song-only
c.skipKati = true
+ } else if arg == "--soong-only" {
+ c.skipKati = true
+ c.skipKatiNinja = true
} else if arg == "--skip-soong-tests" {
c.skipSoongTests = true
} else if len(arg) > 0 && arg[0] == '-' {
@@ -789,6 +794,10 @@ func (c *configImpl) SkipKati() bool {
return c.skipKati
}
+func (c *configImpl) SkipKatiNinja() bool {
+ return c.skipKatiNinja
+}
+
func (c *configImpl) SkipNinja() bool {
return c.skipNinja
}