bp2build: Refactor CreateBazelTargetModule API.
This CL refactors the CreateBazelTargetModule API to minimize boilerplate, and to establish a well defined function signature for the expected metadata about a BazelTargetModule.
Test: soong tests
Test: TH
Change-Id: I474ff5a2b0db8deeed49ba4ca73b416ccb494fdd
diff --git a/genrule/genrule.go b/genrule/genrule.go
index 62aa7f8..427c995 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -780,7 +780,6 @@
}
type bazelGenruleAttributes struct {
- Name *string
Srcs bazel.LabelList
Outs []string
Tools bazel.LabelList
@@ -804,7 +803,7 @@
if !ok {
return
}
- name := "__bp2build__" + m.Name()
+
// Bazel only has the "tools" attribute.
tools := android.BazelLabelForModuleDeps(ctx, m.properties.Tools)
tool_files := android.BazelLabelForModuleSrc(ctx, m.properties.Tool_files)
@@ -847,16 +846,22 @@
}
}
- // Create the BazelTargetModule.
- ctx.CreateModule(BazelGenruleFactory, &bazelGenruleAttributes{
- Name: proptools.StringPtr(name),
+ attrs := &bazelGenruleAttributes{
Srcs: srcs,
Outs: outs,
Cmd: cmd,
Tools: tools,
- }, &bazel.BazelTargetModuleProperties{
+ }
+
+ // Can we automate this?
+ name := "__bp2build__" + m.Name()
+ props := bazel.BazelTargetModuleProperties{
+ Name: &name,
Rule_class: "genrule",
- })
+ }
+
+ // Create the BazelTargetModule.
+ ctx.CreateBazelTargetModule(BazelGenruleFactory, props, attrs)
}
func (m *bazelGenrule) Name() string {