Implement bp2build converter for aidl_library
Test: go test
Bug: 278704136
Change-Id: Ia9c3772257af58e1de9041ba465130740b555fe4
diff --git a/aidl_library/aidl_library.go b/aidl_library/aidl_library.go
index 2a42170..9b5f0a8 100644
--- a/aidl_library/aidl_library.go
+++ b/aidl_library/aidl_library.go
@@ -16,6 +16,7 @@
import (
"android/soong/android"
+ "android/soong/bazel"
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
@@ -48,9 +49,57 @@
type AidlLibrary struct {
android.ModuleBase
+ android.BazelModuleBase
properties aidlLibraryProperties
}
+type bazelAidlLibraryAttributes struct {
+ Srcs bazel.LabelListAttribute
+ Hdrs bazel.LabelListAttribute
+ Strip_import_prefix *string
+ Deps bazel.LabelListAttribute
+}
+
+func (lib *AidlLibrary) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
+ srcs := bazel.MakeLabelListAttribute(
+ android.BazelLabelForModuleSrc(
+ ctx,
+ lib.properties.Srcs,
+ ),
+ )
+
+ hdrs := bazel.MakeLabelListAttribute(
+ android.BazelLabelForModuleSrc(
+ ctx,
+ lib.properties.Hdrs,
+ ),
+ )
+
+ tags := []string{"apex_available=//apex_available:anyapex"}
+ deps := bazel.MakeLabelListAttribute(android.BazelLabelForModuleDeps(ctx, lib.properties.Deps))
+
+ attrs := &bazelAidlLibraryAttributes{
+ Srcs: srcs,
+ Hdrs: hdrs,
+ Strip_import_prefix: lib.properties.Strip_import_prefix,
+ Deps: deps,
+ }
+
+ props := bazel.BazelTargetModuleProperties{
+ Rule_class: "aidl_library",
+ Bzl_load_location: "//build/bazel/rules/aidl:aidl_library.bzl",
+ }
+
+ ctx.CreateBazelTargetModule(
+ props,
+ android.CommonAttributes{
+ Name: lib.Name(),
+ Tags: bazel.MakeStringListAttribute(tags),
+ },
+ attrs,
+ )
+}
+
type AidlLibraryInfo struct {
// The direct aidl files of the module
Srcs android.Paths
@@ -104,6 +153,7 @@
module := &AidlLibrary{}
module.AddProperties(&module.properties)
android.InitAndroidModule(module)
+ android.InitBazelModule(module)
return module
}