Pass TARGET_DEVICE_DIR from dumpvars to later kati runs
The find commands used to locate the BoardConfig.mk can't be optimized by Kati, so we're currently spending ~125ms three times during every build (dumpvars, cleanspec, and the main kati run). Preserve the value of TARGET_DEVICE_DIR from the dumpvars run so that we only need to run the find commands once. Bug: 78020936 Test: out/build-taimen.ninja is identical Test: out/soong.log shows that we're not running these finds again Change-Id: Iee56b454c3661de2b58c161169218ecaf2135398
This commit is contained in:
@@ -44,10 +44,11 @@ type configImpl struct {
|
||||
skipMake bool
|
||||
|
||||
// From the product config
|
||||
katiArgs []string
|
||||
ninjaArgs []string
|
||||
katiSuffix string
|
||||
targetDevice string
|
||||
katiArgs []string
|
||||
ninjaArgs []string
|
||||
katiSuffix string
|
||||
targetDevice string
|
||||
targetDeviceDir string
|
||||
|
||||
brokenDupRules bool
|
||||
}
|
||||
@@ -568,3 +569,11 @@ func (c *configImpl) SetBuildBrokenDupRules(val bool) {
|
||||
func (c *configImpl) BuildBrokenDupRules() bool {
|
||||
return c.brokenDupRules
|
||||
}
|
||||
|
||||
func (c *configImpl) SetTargetDeviceDir(dir string) {
|
||||
c.targetDeviceDir = dir
|
||||
}
|
||||
|
||||
func (c *configImpl) TargetDeviceDir() string {
|
||||
return c.targetDeviceDir
|
||||
}
|
||||
|
@@ -157,6 +157,9 @@ func runMakeProductConfig(ctx Context, config Config) {
|
||||
// To find target/product/<DEVICE>
|
||||
"TARGET_DEVICE",
|
||||
|
||||
// So that later Kati runs can find BoardConfig.mk faster
|
||||
"TARGET_DEVICE_DIR",
|
||||
|
||||
// Whether --werror_overriding_commands will work
|
||||
"BUILD_BROKEN_DUP_RULES",
|
||||
}, exportEnvVars...), BannerVars...)
|
||||
@@ -182,6 +185,7 @@ func runMakeProductConfig(ctx Context, config Config) {
|
||||
config.SetKatiArgs(strings.Fields(make_vars["KATI_GOALS"]))
|
||||
config.SetNinjaArgs(strings.Fields(make_vars["NINJA_GOALS"]))
|
||||
config.SetTargetDevice(make_vars["TARGET_DEVICE"])
|
||||
config.SetTargetDeviceDir(make_vars["TARGET_DEVICE_DIR"])
|
||||
|
||||
config.SetBuildBrokenDupRules(make_vars["BUILD_BROKEN_DUP_RULES"] != "false")
|
||||
}
|
||||
|
@@ -94,7 +94,8 @@ func runKati(ctx Context, config Config) {
|
||||
args = append(args,
|
||||
"BUILDING_WITH_NINJA=true",
|
||||
"SOONG_ANDROID_MK="+config.SoongAndroidMk(),
|
||||
"SOONG_MAKEVARS_MK="+config.SoongMakeVarsMk())
|
||||
"SOONG_MAKEVARS_MK="+config.SoongMakeVarsMk(),
|
||||
"TARGET_DEVICE_DIR="+config.TargetDeviceDir())
|
||||
|
||||
if config.UseGoma() {
|
||||
args = append(args, "-j"+strconv.Itoa(config.Parallel()))
|
||||
@@ -199,6 +200,7 @@ func runKatiCleanSpec(ctx Context, config Config) {
|
||||
"-f", "build/make/core/cleanbuild.mk",
|
||||
"BUILDING_WITH_NINJA=true",
|
||||
"SOONG_MAKEVARS_MK=" + config.SoongMakeVarsMk(),
|
||||
"TARGET_DEVICE_DIR=" + config.TargetDeviceDir(),
|
||||
}
|
||||
|
||||
cmd := Command(ctx, config, "ckati", executable, args...)
|
||||
|
Reference in New Issue
Block a user