From aaf2fd13e1ae0f2236329d0beab36cee613e4acc Mon Sep 17 00:00:00 2001 From: usta Date: Sat, 1 Jul 2023 11:40:36 -0400 Subject: [PATCH] add bp2build subevents Test: verified new events in bp2build_metrics.pb Bug: 286412441 Change-Id: Ib803c3a3d1a8e7eaae5fb4c01c7769a72f4664ff --- bp2build/bp2build.go | 9 +++++++-- bp2build/build_conversion.go | 2 ++ cmd/soong_build/main.go | 4 +--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/bp2build/bp2build.go b/bp2build/bp2build.go index cfe52db47..84e76235f 100644 --- a/bp2build/bp2build.go +++ b/bp2build/bp2build.go @@ -15,7 +15,6 @@ package bp2build import ( - "android/soong/starlark_import" "fmt" "os" "path/filepath" @@ -24,6 +23,7 @@ import ( "android/soong/android" "android/soong/bazel" "android/soong/shared" + "android/soong/starlark_import" ) func deleteFilesExcept(ctx *CodegenContext, rootOutputPath android.OutputPath, except []BazelFile) { @@ -67,6 +67,8 @@ func deleteFilesExcept(ctx *CodegenContext, rootOutputPath android.OutputPath, e // writing .bzl files that are equivalent to Android.bp files that are capable // of being built with Bazel. func Codegen(ctx *CodegenContext) *CodegenMetrics { + ctx.Context().BeginEvent("Codegen") + defer ctx.Context().EndEvent("Codegen") // This directory stores BUILD files that could be eventually checked-in. bp2buildDir := android.PathForOutput(ctx, "bp2build") @@ -79,7 +81,10 @@ func Codegen(ctx *CodegenContext) *CodegenMetrics { fmt.Printf("ERROR: Encountered %d error(s): \nERROR: %s", len(errs), strings.Join(errMsgs, "\n")) os.Exit(1) } - bp2buildFiles := CreateBazelFiles(ctx.Config(), nil, res.buildFileToTargets, ctx.mode) + var bp2buildFiles []BazelFile + ctx.Context().EventHandler.Do("CreateBazelFile", func() { + bp2buildFiles = CreateBazelFiles(ctx.Config(), nil, res.buildFileToTargets, ctx.mode) + }) injectionFiles, additionalBp2buildFiles, err := CreateSoongInjectionDirFiles(ctx, res.metrics) if err != nil { fmt.Printf("%s\n", err.Error()) diff --git a/bp2build/build_conversion.go b/bp2build/build_conversion.go index 09a9d04f3..6f41f3763 100644 --- a/bp2build/build_conversion.go +++ b/bp2build/build_conversion.go @@ -653,6 +653,8 @@ func generateBazelTargetsGoBinary(ctx *android.Context, g *bootstrap.GoBinary, g } func GenerateBazelTargets(ctx *CodegenContext, generateFilegroups bool) (conversionResults, []error) { + ctx.Context().BeginEvent("GenerateBazelTargets") + defer ctx.Context().EndEvent("GenerateBazelTargets") buildFileToTargets := make(map[string]BazelTargets) // Simple metrics tracking for bp2build diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go index 62b3333b3..20e366e8a 100644 --- a/cmd/soong_build/main.go +++ b/cmd/soong_build/main.go @@ -814,9 +814,7 @@ func runBp2Build(ctx *android.Context, extraNinjaDeps []string, metricsDir strin // Run the code-generation phase to convert BazelTargetModules to BUILD files // and print conversion codegenMetrics to the user. codegenContext := bp2build.NewCodegenContext(ctx.Config(), ctx, bp2build.Bp2Build, topDir) - ctx.EventHandler.Do("codegen", func() { - codegenMetrics = bp2build.Codegen(codegenContext) - }) + codegenMetrics = bp2build.Codegen(codegenContext) ninjaDeps = append(ninjaDeps, codegenContext.AdditionalNinjaDeps()...)