support libs for android_library
adds support for *-> android_library and android_library->* edges
Change-Id: I41d4e1d1b8106a17e67951d47e67b59ef3170d17
Test: manually inspected build files for libWallpaperPicker & android-suppor-v4
diff --git a/java/aar.go b/java/aar.go
index ccd68cd..f4a2ff2 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -1054,12 +1054,15 @@
ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.")
}
+ name := a.Name()
+ props := bazel.BazelTargetModuleProperties{
+ Rule_class: "android_library",
+ Bzl_load_location: "@rules_android//rules:rules.bzl",
+ }
+
ctx.CreateBazelTargetModule(
- bazel.BazelTargetModuleProperties{
- Rule_class: "android_library",
- Bzl_load_location: "@rules_android//rules:rules.bzl",
- },
- android.CommonAttributes{Name: a.Name()},
+ props,
+ android.CommonAttributes{Name: name},
&bazelAndroidLibrary{
&javaLibraryAttributes{
javaCommonAttributes: commonAttrs,
@@ -1069,4 +1072,16 @@
a.convertAaptAttrsWithBp2Build(ctx),
},
)
+
+ neverlink := true
+ ctx.CreateBazelTargetModule(
+ props,
+ android.CommonAttributes{Name: name + "-neverlink"},
+ &bazelAndroidLibrary{
+ javaLibraryAttributes: &javaLibraryAttributes{
+ Neverlink: bazel.BoolAttribute{Value: &neverlink},
+ Exports: bazel.MakeSingleLabelListAttribute(bazel.Label{Label: ":" + name}),
+ },
+ },
+ )
}
diff --git a/java/java.go b/java/java.go
index 275abbe..22bcc03 100644
--- a/java/java.go
+++ b/java/java.go
@@ -2663,7 +2663,7 @@
if m.properties.Libs != nil {
// TODO 244210934 ALIX Check if this else statement breaks presubmits get rid of it if it doesn't
- if strings.HasPrefix(ctx.ModuleType(), "java_binary") || strings.HasPrefix(ctx.ModuleType(), "java_library") {
+ if strings.HasPrefix(ctx.ModuleType(), "java_binary") || strings.HasPrefix(ctx.ModuleType(), "java_library") || ctx.ModuleType() == "android_library" {
for _, d := range m.properties.Libs {
neverlinkLabel := android.BazelLabelForModuleDepSingle(ctx, d)
neverlinkLabel.Label = neverlinkLabel.Label + "-neverlink"