Add support for skipping just kati

The existing --skip-make flag disables both the config step and the kati
step in the build. Add support for a --skip-kati flag that skips just
the kati step, and refactor things so that the logic is shared between
these two.

Bug: 174315599
Test: TARGET_PRODUCT=aosp_arm64 soong_ui --make-mode --skip-kati;
      (verify soong.variables is regenerated)
Change-Id: I75b1910fc1c12fcda130e37b7bc4c050131c7b33
This commit is contained in:
Anton Hansson
2020-11-27 12:35:20 +00:00
parent d74b9c5728
commit 5e5c48b2b5
3 changed files with 26 additions and 14 deletions

View File

@@ -28,7 +28,7 @@ import (
func SetupOutDir(ctx Context, config Config) {
ensureEmptyFileExists(ctx, filepath.Join(config.OutDir(), "Android.mk"))
ensureEmptyFileExists(ctx, filepath.Join(config.OutDir(), "CleanSpec.mk"))
if !config.SkipMake() {
if !config.SkipKati() {
// Run soong_build with Kati for a hybrid build, e.g. running the
// AndroidMk singleton and postinstall commands. Communicate this to
// soong_build by writing an empty .soong.kati_enabled marker file in the
@@ -67,8 +67,8 @@ subninja {{.SoongNinjaFile}}
`))
func createCombinedBuildNinjaFile(ctx Context, config Config) {
// If we're in SkipMake mode, skip creating this file if it already exists
if config.SkipMake() {
// If we're in SkipKati mode, skip creating this file if it already exists
if config.SkipKati() {
if _, err := os.Stat(config.CombinedNinjaFile()); err == nil || !os.IsNotExist(err) {
return
}
@@ -208,10 +208,14 @@ func Build(ctx Context, config Config, what int) {
SetupPath(ctx, config)
if config.SkipMake() {
ctx.Verboseln("Skipping Make/Kati as requested")
// If Make/Kati is disabled, then explicitly build using Soong and Ninja.
what = what & (BuildSoong | BuildNinja)
if config.SkipConfig() {
ctx.Verboseln("Skipping Config as requested")
what = what &^ BuildProductConfig
}
if config.SkipKati() {
ctx.Verboseln("Skipping Kati as requested")
what = what &^ BuildKati
}
if config.StartGoma() {
@@ -276,7 +280,7 @@ func Build(ctx Context, config Config, what int) {
}
if what&BuildNinja != 0 {
if !config.SkipMake() {
if what&BuildKati != 0 {
installCleanIfNecessary(ctx, config)
}