From c357c81f48bb8599dfc3aa117a58f614f0a5b7bb Mon Sep 17 00:00:00 2001 From: "Lukacs T. Berki" Date: Tue, 20 Jun 2023 09:30:06 +0000 Subject: [PATCH] Handle errors from RunBlueprint(). Bug: 244730498 Test: Presubmits. Change-Id: I264f1e4bd989b1c219800eec3be007c3f114c6d1 --- cmd/soong_build/main.go | 17 +++++++++++------ ui/build/soong.go | 5 ++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go index 989dd7fcd..10a5762cf 100644 --- a/cmd/soong_build/main.go +++ b/cmd/soong_build/main.go @@ -124,7 +124,8 @@ func runMixedModeBuild(ctx *android.Context, extraNinjaDeps []string) string { return ctx.Config().BazelContext.InvokeBazel(ctx.Config(), ctx) } ctx.SetBeforePrepareBuildActionsHook(bazelHook) - ninjaDeps := bootstrap.RunBlueprint(cmdlineArgs.Args, bootstrap.DoEverything, ctx.Context, ctx.Config()) + ninjaDeps, err := bootstrap.RunBlueprint(cmdlineArgs.Args, bootstrap.DoEverything, ctx.Context, ctx.Config()) + maybeQuit(err, "") ninjaDeps = append(ninjaDeps, extraNinjaDeps...) bazelPaths, err := readFileLines(ctx.Config().Getenv("BAZEL_DEPS_FILE")) @@ -185,10 +186,11 @@ func runApiBp2build(ctx *android.Context, extraNinjaDeps []string) string { } // Run the loading and analysis phase - ninjaDeps := bootstrap.RunBlueprint(cmdlineArgs.Args, + ninjaDeps, err := bootstrap.RunBlueprint(cmdlineArgs.Args, bootstrap.StopBeforePrepareBuildActions, ctx.Context, ctx.Config()) + maybeQuit(err, "") ninjaDeps = append(ninjaDeps, extraNinjaDeps...) // Add the globbed dependencies @@ -218,7 +220,7 @@ func runApiBp2build(ctx *android.Context, extraNinjaDeps []string) string { // } // // If we don't generate f/b/api/BUILD, foo.contribution will be unbuildable. - err := createBazelWorkspace(codegenContext, absoluteApiBp2buildDir, true) + err = createBazelWorkspace(codegenContext, absoluteApiBp2buildDir, true) maybeQuit(err, "") ninjaDeps = append(ninjaDeps, codegenContext.AdditionalNinjaDeps()...) @@ -412,12 +414,13 @@ func writeBuildGlobsNinjaFile(ctx *android.Context) []string { defer ctx.EventHandler.End("globs_ninja_file") globDir := bootstrap.GlobDirectory(ctx.Config().SoongOutDir(), globListDir) - bootstrap.WriteBuildGlobsNinjaFile(&bootstrap.GlobSingleton{ + err := bootstrap.WriteBuildGlobsNinjaFile(&bootstrap.GlobSingleton{ GlobLister: ctx.Globs, GlobFile: globFile, GlobDir: globDir, SrcDir: ctx.SrcDir(), }, ctx.Config()) + maybeQuit(err, "") return bootstrap.GlobFileListFiles(globDir) } @@ -444,7 +447,8 @@ func runSoongOnlyBuild(ctx *android.Context, extraNinjaDeps []string) string { stopBefore = bootstrap.DoEverything } - ninjaDeps := bootstrap.RunBlueprint(cmdlineArgs.Args, stopBefore, ctx.Context, ctx.Config()) + ninjaDeps, err := bootstrap.RunBlueprint(cmdlineArgs.Args, stopBefore, ctx.Context, ctx.Config()) + maybeQuit(err, "") ninjaDeps = append(ninjaDeps, extraNinjaDeps...) globListFiles := writeBuildGlobsNinjaFile(ctx) @@ -803,8 +807,9 @@ func runBp2Build(ctx *android.Context, extraNinjaDeps []string, metricsDir strin // from the regular Modules. ctx.EventHandler.Do("bootstrap", func() { blueprintArgs := cmdlineArgs - bootstrapDeps := bootstrap.RunBlueprint(blueprintArgs.Args, + bootstrapDeps, err := bootstrap.RunBlueprint(blueprintArgs.Args, bootstrap.StopBeforePrepareBuildActions, ctx.Context, ctx.Config()) + maybeQuit(err, "") ninjaDeps = append(ninjaDeps, bootstrapDeps...) }) diff --git a/ui/build/soong.go b/ui/build/soong.go index 59a32429f..07d618841 100644 --- a/ui/build/soong.go +++ b/ui/build/soong.go @@ -445,7 +445,10 @@ func bootstrapBlueprint(ctx Context, config Config) { // since `bootstrap.ninja` is regenerated unconditionally, we ignore the deps, i.e. little // reason to write a `bootstrap.ninja.d` file - _ = bootstrap.RunBlueprint(blueprintArgs, bootstrap.DoEverything, blueprintCtx, blueprintConfig) + _, err := bootstrap.RunBlueprint(blueprintArgs, bootstrap.DoEverything, blueprintCtx, blueprintConfig) + if err != nil { + ctx.Fatal(err) + } } func checkEnvironmentFile(ctx Context, currentEnv *Environment, envFile string) {