diff options
Diffstat (limited to 'ui/build/kati.go')
-rw-r--r-- | ui/build/kati.go | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/ui/build/kati.go b/ui/build/kati.go index 4bb2db97..cc02c761 100644 --- a/ui/build/kati.go +++ b/ui/build/kati.go @@ -59,11 +59,13 @@ func genKatiSuffix(ctx Context, config Config) { } func runKati(ctx Context, config Config) { + genKatiSuffix(ctx, config) + + runKatiCleanSpec(ctx, config) + ctx.BeginTrace("kati") defer ctx.EndTrace() - genKatiSuffix(ctx, config) - executable := config.PrebuiltBuildTool("ckati") args := []string{ "--ninja", @@ -159,3 +161,33 @@ func katiRewriteOutput(ctx Context, pipe io.ReadCloser) { fmt.Fprintln(ctx.Stdout()) } } + +func runKatiCleanSpec(ctx Context, config Config) { + ctx.BeginTrace("kati cleanspec") + defer ctx.EndTrace() + + executable := config.PrebuiltBuildTool("ckati") + args := []string{ + "--ninja", + "--ninja_dir=" + config.OutDir(), + "--ninja_suffix=" + config.KatiSuffix() + "-cleanspec", + "--regen", + "--detect_android_echo", + "--color_warnings", + "--gen_all_targets", + "--werror_find_emulator", + "--use_find_emulator", + "-f", "build/make/core/cleanbuild.mk", + "BUILDING_WITH_NINJA=true", + "SOONG_MAKEVARS_MK=" + config.SoongMakeVarsMk(), + } + + cmd := Command(ctx, config, "ckati", executable, args...) + cmd.Sandbox = katiCleanSpecSandbox + cmd.Stdout = ctx.Stdout() + cmd.Stderr = ctx.Stderr() + + // Kati leaks memory, so ensure leak detection is turned off + cmd.Environment.Set("ASAN_OPTIONS", "detect_leaks=0") + cmd.RunOrFatal() +} |