diff options
author | Anton Hansson <hansson@google.com> | 2021-06-04 10:08:08 +0100 |
---|---|---|
committer | Anton Hansson <hansson@google.com> | 2021-06-04 12:14:05 +0100 |
commit | 546de4a1f3de92a2f920daa6311a1c317aedf877 (patch) | |
tree | f90c153bdbb4b7319d37236748ee75c135166d52 /ui | |
parent | d274ea91968b95ef7a2edd2d604afbc237e84ff9 (diff) | |
download | soong-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.go | 18 | ||||
-rw-r--r-- | ui/build/config.go | 9 |
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 } |