diff options
author | 2023-08-24 00:30:13 +0000 | |
---|---|---|
committer | 2023-08-24 19:21:10 +0000 | |
commit | e8a90c57e0500bc25aba0e665cd3032c496d9571 (patch) | |
tree | 498a4038ae30468ca3adb8fd5bf01d35ab065566 | |
parent | cb847638af5a56969929ddeae57d407fc8ad98c0 (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.go | 17 |
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 |