diff --git a/cmd/multiproduct_kati/main.go b/cmd/multiproduct_kati/main.go index 6a3d579bd..330c5dd27 100644 --- a/cmd/multiproduct_kati/main.go +++ b/cmd/multiproduct_kati/main.go @@ -172,7 +172,8 @@ func main() { stat := &status.Status{} defer stat.Finish() - stat.AddOutput(terminal.NewStatusOutput(writer, "")) + stat.AddOutput(terminal.NewStatusOutput(writer, "", + build.OsEnvironment().IsEnvTrue("ANDROID_QUIET_BUILD"))) var failures failureCount stat.AddOutput(&failures) @@ -389,7 +390,8 @@ func buildProduct(mpctx *mpContext, product string) { Thread: mpctx.Tracer.NewThread(product), Status: &status.Status{}, }} - ctx.Status.AddOutput(terminal.NewStatusOutput(ctx.Writer, "")) + ctx.Status.AddOutput(terminal.NewStatusOutput(ctx.Writer, "", + build.OsEnvironment().IsEnvTrue("ANDROID_QUIET_BUILD"))) config := build.NewConfig(ctx, flag.Args()...) config.Environment().Set("OUT_DIR", outDir) diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go index 03803689e..d6999c570 100644 --- a/cmd/soong_ui/main.go +++ b/cmd/soong_ui/main.go @@ -78,7 +78,8 @@ func main() { stat := &status.Status{} defer stat.Finish() - stat.AddOutput(terminal.NewStatusOutput(writer, os.Getenv("NINJA_STATUS"))) + stat.AddOutput(terminal.NewStatusOutput(writer, os.Getenv("NINJA_STATUS"), + build.OsEnvironment().IsEnvTrue("ANDROID_QUIET_BUILD"))) stat.AddOutput(trace.StatusTracer()) build.SetupSignals(log, cancel, func() { diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go index 98bb1c56d..d644f5ff7 100644 --- a/ui/build/dumpvars.go +++ b/ui/build/dumpvars.go @@ -214,11 +214,13 @@ func runMakeProductConfig(ctx Context, config Config) { ctx.Fatalln("Error dumping make vars:", err) } + env := config.Environment() // Print the banner like make does - ctx.Writer.Print(Banner(make_vars)) + if !env.IsEnvTrue("ANDROID_QUIET_BUILD") { + ctx.Writer.Print(Banner(make_vars)) + } // Populate the environment - env := config.Environment() for _, name := range exportEnvVars { if make_vars[name] == "" { env.Unset(name) diff --git a/ui/terminal/status.go b/ui/terminal/status.go index c8eb382fc..2445c5b2c 100644 --- a/ui/terminal/status.go +++ b/ui/terminal/status.go @@ -27,6 +27,7 @@ type statusOutput struct { format string start time.Time + quiet bool } // NewStatusOutput returns a StatusOutput that represents the @@ -35,12 +36,13 @@ type statusOutput struct { // // statusFormat takes nearly all the same options as NINJA_STATUS. // %c is currently unsupported. -func NewStatusOutput(w Writer, statusFormat string) status.StatusOutput { +func NewStatusOutput(w Writer, statusFormat string, quietBuild bool) status.StatusOutput { return &statusOutput{ writer: w, format: statusFormat, start: time.Now(), + quiet: quietBuild, } } @@ -76,13 +78,12 @@ func (s *statusOutput) FinishAction(result status.ActionResult, counts status.Co progress := s.progress(counts) + str if result.Error != nil { - hasCommand := "" - if result.Command != "" { - hasCommand = "\n" + targets := strings.Join(result.Outputs, " ") + if s.quiet || result.Command == "" { + s.writer.StatusAndMessage(progress, fmt.Sprintf("FAILED: %s\n%s", targets, result.Output)) + } else { + s.writer.StatusAndMessage(progress, fmt.Sprintf("FAILED: %s\n%s\n%s", targets, result.Command, result.Output)) } - - s.writer.StatusAndMessage(progress, fmt.Sprintf("FAILED: %s\n%s%s%s", - strings.Join(result.Outputs, " "), result.Command, hasCommand, result.Output)) } else if result.Output != "" { s.writer.StatusAndMessage(progress, result.Output) } else {