Convert cc_aconfig_library to bazel.
Bug: 297358249
Test: Unit test and CI
Change-Id: Ic84128b0df16efe4255b52b83670ec9902c09383
diff --git a/aconfig/cc_aconfig_library.go b/aconfig/cc_aconfig_library.go
index ec86af7..0583bef 100644
--- a/aconfig/cc_aconfig_library.go
+++ b/aconfig/cc_aconfig_library.go
@@ -16,6 +16,7 @@
import (
"android/soong/android"
+ "android/soong/bazel"
"android/soong/cc"
"github.com/google/blueprint"
@@ -31,6 +32,8 @@
var ccDeclarationsTag = ccDeclarationsTagType{}
+const baseLibDep = "server_configurable_flags"
+
type CcAconfigLibraryProperties struct {
// name of the aconfig_declarations module to generate a library for
Aconfig_declarations string
@@ -72,7 +75,7 @@
}
// Add a dependency for the aconfig flags base library
- deps.SharedLibs = append(deps.SharedLibs, "server_configurable_flags")
+ deps.SharedLibs = append(deps.SharedLibs, baseLibDep)
// TODO: It'd be really nice if we could reexport this library and not make everyone do it.
return deps
@@ -138,3 +141,33 @@
},
})
}
+
+type bazelCcAconfigLibraryAttributes struct {
+ Aconfig_declarations bazel.LabelAttribute
+ Dynamic_deps bazel.LabelListAttribute
+}
+
+// Convert the cc_aconfig_library module to bazel.
+//
+// This method is called from cc.ConvertWithBp2build to actually convert the
+// cc_aconfig_library module. This is necessary since the factory method of this
+// module type returns a cc library and the bp2build conversion is called on the
+// cc library type.
+
+func (this *CcAconfigLibraryCallbacks) GeneratorBp2build(ctx android.Bp2buildMutatorContext) bool {
+ if ctx.ModuleType() != "cc_aconfig_library" {
+ return false
+ }
+
+ attrs := bazelCcAconfigLibraryAttributes{
+ Aconfig_declarations: *bazel.MakeLabelAttribute(android.BazelLabelForModuleDepSingle(ctx, this.properties.Aconfig_declarations).Label),
+ Dynamic_deps: bazel.MakeLabelListAttribute(android.BazelLabelForModuleDeps(ctx, []string{baseLibDep})),
+ }
+ props := bazel.BazelTargetModuleProperties{
+ Rule_class: "cc_aconfig_library",
+ Bzl_load_location: "//build/bazel/rules/cc:cc_aconfig_library.bzl",
+ }
+
+ ctx.CreateBazelTargetModule(props, android.CommonAttributes{Name: ctx.ModuleName()}, &attrs)
+ return true
+}