Don't create a new module for bp2build conversion.
A performance improvement for bp2build as Blueprint/Soong no longer have the overhead of additional modules. The creation of these modules results in: * traversal of additional modules for each subsequent mutator * synchronization over a go channel to collect newly created modules: https://cs.android.com/android/platform/superproject/+/master:build/blueprint/context.go;l=2594,2600;drc=1602226f23181b8c3fbfcaf3358f0297e839d7d3 We avoid both of these by storing the information directly in the underlying module. Also as a fringe benefit, removes some necessary boilerplate for conversion. For benchmarks, reduces runtime ~1% for 1% converted, ~24% for 100% converted. See more: go/benchmarks-for-https:-r.android.com-1792714 Test: ran benchmarks/tests in bp2build Test: build/bazel/ci/bp2build.sh Change-Id: Ie9273b8cbab5bc6edac1728067ce184382feb211
This commit is contained in:
@@ -662,18 +662,6 @@ type bazelPrebuiltEtcAttributes struct {
|
||||
Installable bazel.BoolAttribute
|
||||
}
|
||||
|
||||
type bazelPrebuiltEtc struct {
|
||||
android.BazelTargetModuleBase
|
||||
bazelPrebuiltEtcAttributes
|
||||
}
|
||||
|
||||
func BazelPrebuiltEtcFactory() android.Module {
|
||||
module := &bazelPrebuiltEtc{}
|
||||
module.AddProperties(&module.bazelPrebuiltEtcAttributes)
|
||||
android.InitBazelTargetModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
func PrebuiltEtcBp2Build(ctx android.TopDownMutatorContext) {
|
||||
module, ok := ctx.Module().(*PrebuiltEtc)
|
||||
if !ok {
|
||||
@@ -723,11 +711,5 @@ func prebuiltEtcBp2BuildInternal(ctx android.TopDownMutatorContext, module *Preb
|
||||
Bzl_load_location: "//build/bazel/rules:prebuilt_etc.bzl",
|
||||
}
|
||||
|
||||
ctx.CreateBazelTargetModule(BazelPrebuiltEtcFactory, module.Name(), props, attrs)
|
||||
ctx.CreateBazelTargetModule(module.Name(), props, attrs)
|
||||
}
|
||||
|
||||
func (m *bazelPrebuiltEtc) Name() string {
|
||||
return m.BaseModuleName()
|
||||
}
|
||||
|
||||
func (m *bazelPrebuiltEtc) GenerateAndroidBuildActions(ctx android.ModuleContext) {}
|
||||
|
Reference in New Issue
Block a user