diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/java/java.go b/java/java.go index e55f04599..0a35908dd 100644 --- a/java/java.go +++ b/java/java.go @@ -2013,8 +2013,16 @@ type javaLibraryAttributes struct { func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) *javaLibraryAttributes { //TODO(b/209577426): Support multiple arch variants srcs := bazel.MakeLabelListAttribute(android.BazelLabelForModuleSrcExcludes(ctx, m.properties.Srcs, m.properties.Exclude_srcs)) + + javaSrcPartition := "java" + protoSrcPartition := "proto" + srcPartitions := bazel.PartitionLabelListAttribute(ctx, &srcs, bazel.LabelPartitions{ + javaSrcPartition: bazel.LabelPartition{Extensions: []string{".java"}, Keep_remainder: true}, + protoSrcPartition: android.ProtoSrcLabelPartition, + }) + attrs := &javaLibraryAttributes{ - Srcs: srcs, + Srcs: srcPartitions[javaSrcPartition], } if m.properties.Javacflags != nil { @@ -2022,6 +2030,11 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) } var deps bazel.LabelList + sdkVersion := m.SdkVersion(ctx) + if sdkVersion.Kind == android.SdkPublic && sdkVersion.ApiLevel == android.FutureApiLevel { + // TODO(b/220869005) remove forced dependency on current public android.jar + deps.Add(&bazel.Label{Label: "//prebuilts/sdk:public_current_android_sdk_java_import"}) + } if m.properties.Libs != nil { deps.Append(android.BazelLabelForModuleDeps(ctx, m.properties.Libs)) } @@ -2029,6 +2042,12 @@ func (m *Library) convertLibraryAttrsBp2Build(ctx android.TopDownMutatorContext) //TODO(b/217236083) handle static libs similarly to Soong deps.Append(android.BazelLabelForModuleDeps(ctx, m.properties.Static_libs)) } + + protoDeps := bp2buildProto(ctx, &m.Module, srcPartitions[protoSrcPartition]) + if protoDeps != nil { + deps.Add(protoDeps) + } + attrs.Deps = bazel.MakeLabelListAttribute(deps) return attrs |