summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Spandan Das <spandandas@google.com> 2023-08-24 00:30:13 +0000
committer Spandan Das <spandandas@google.com> 2023-08-24 19:21:10 +0000
commite8a90c57e0500bc25aba0e665cd3032c496d9571 (patch)
tree498a4038ae30468ca3adb8fd5bf01d35ab065566
parentcb847638af5a56969929ddeae57d407fc8ad98c0 (diff)
Handle proto.include_dirs for java
The proto_library(s) created for include_dirs will be added to transitive_deps This also fixes an existing bug for java_library containing .protos in srcs via filegroups. ``` java_library { name: "foo", srcs: ["foo.proto", "foo_filegroup"], } ``` At ToT, foo_filegroup was missing from the equivalent proto_library in bp2build workspace. Bug: 285140726 Test: allowlisted pandora-proto-java and built that Change-Id: I2657d8cdef2e47434bc3e0d09a074c8e27299afc
-rw-r--r--java/proto.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/java/proto.go b/java/proto.go
index c732d9842..2ed7b27e9 100644
--- a/java/proto.go
+++ b/java/proto.go
@@ -143,7 +143,14 @@ func protoFlags(ctx android.ModuleContext, j *CommonProperties, p *android.Proto
}
type protoAttributes struct {
- Deps bazel.LabelListAttribute
+ Deps bazel.LabelListAttribute
+
+ // A list of proto_library targets that the proto_library in `deps` depends on
+ // This list is overestimation.
+ // Overestimation is necessary since Soong includes other protos via proto.include_dirs and not
+ // a specific .proto file module explicitly.
+ Transitive_deps bazel.LabelListAttribute
+
Sdk_version bazel.StringAttribute
Java_version bazel.StringAttribute
}
@@ -176,11 +183,11 @@ func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs baze
ctx.PropertyErrorf("proto.type", "cannot handle conversion at this time: %q", typ)
}
- protoLabel := bazel.Label{Label: ":" + m.Name() + "_proto"}
protoAttrs := &protoAttributes{
- Deps: bazel.MakeSingleLabelListAttribute(protoLabel),
- Java_version: bazel.StringAttribute{Value: m.properties.Java_version},
- Sdk_version: bazel.StringAttribute{Value: m.deviceProperties.Sdk_version},
+ Deps: bazel.MakeLabelListAttribute(protoInfo.Proto_libs),
+ Transitive_deps: bazel.MakeLabelListAttribute(protoInfo.Transitive_proto_libs),
+ Java_version: bazel.StringAttribute{Value: m.properties.Java_version},
+ Sdk_version: bazel.StringAttribute{Value: m.deviceProperties.Sdk_version},
}
name := m.Name() + suffix