bp2build: comment documentation for BazelTargetModule.
Test: TH
Change-Id: Id193c6305f0264122ffa98f709e3ba4ca95d435c
diff --git a/android/module.go b/android/module.go
index 68008c2..a20dc56 100644
--- a/android/module.go
+++ b/android/module.go
@@ -492,22 +492,39 @@
TransitivePackagingSpecs() []PackagingSpec
}
+// BazelTargetModule is a lightweight wrapper interface around Module for
+// bp2build conversion purposes.
+//
+// In bp2build's bootstrap.Main execution, Soong runs an alternate pipeline of
+// mutators that creates BazelTargetModules from regular Module objects,
+// performing the mapping from Soong properties to Bazel rule attributes in the
+// process. This process may optionally create additional BazelTargetModules,
+// resulting in a 1:many mapping.
+//
+// bp2build.Codegen is then responsible for visiting all modules in the graph,
+// filtering for BazelTargetModules, and code-generating BUILD targets from
+// them.
type BazelTargetModule interface {
Module
BazelTargetModuleProperties() *bazel.BazelTargetModuleProperties
}
+// InitBazelTargetModule is a wrapper function that decorates BazelTargetModule
+// with property structs containing metadata for bp2build conversion.
func InitBazelTargetModule(module BazelTargetModule) {
module.AddProperties(module.BazelTargetModuleProperties())
InitAndroidModule(module)
}
+// BazelTargetModuleBase contains the property structs with metadata for
+// bp2build conversion.
type BazelTargetModuleBase struct {
ModuleBase
Properties bazel.BazelTargetModuleProperties
}
+// BazelTargetModuleProperties getter.
func (btmb *BazelTargetModuleBase) BazelTargetModuleProperties() *bazel.BazelTargetModuleProperties {
return &btmb.Properties
}