From 4dbd0e868875c6a839fc00b62f3701f8d9db6445 Mon Sep 17 00:00:00 2001 From: Zi Wang Date: Thu, 21 Sep 2023 16:00:45 -0700 Subject: Pass java_library libs and static_libs to java_*_proto_library If a java_library module has proto srcs, a java_*_proto_library target will be created for it. Proto sources are generated and then compiled by a java_library target. We need to pass the libs and static_libs of the java_library module to this java_library target so that the compile-time classpath is correct. Test: updated unit tests and CI Bug: 301469542 Change-Id: I05b2efce6fda2223e85728b3c4c7b1815d04c3dd --- java/proto.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'java/proto.go') diff --git a/java/proto.go b/java/proto.go index 2ed7b27e9..48adadcc9 100644 --- a/java/proto.go +++ b/java/proto.go @@ -151,11 +151,17 @@ type protoAttributes struct { // a specific .proto file module explicitly. Transitive_deps bazel.LabelListAttribute + // This is the libs and the static_libs of the original java_library module. + // On the bazel side, after proto sources are generated in java_*_proto_library, a java_library + // will compile them. The libs and static_libs from the original java_library module need + // to be linked because they are necessary in compile-time classpath. + Additional_proto_deps bazel.LabelListAttribute + Sdk_version bazel.StringAttribute Java_version bazel.StringAttribute } -func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs bazel.LabelListAttribute) *bazel.Label { +func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs bazel.LabelListAttribute, AdditionalProtoDeps bazel.LabelListAttribute) *bazel.Label { protoInfo, ok := android.Bp2buildProtoProperties(ctx, &m.ModuleBase, protoSrcs) if !ok { return nil @@ -184,10 +190,11 @@ func bp2buildProto(ctx android.Bp2buildMutatorContext, m *Module, protoSrcs baze } protoAttrs := &protoAttributes{ - 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}, + Deps: bazel.MakeLabelListAttribute(protoInfo.Proto_libs), + Transitive_deps: bazel.MakeLabelListAttribute(protoInfo.Transitive_proto_libs), + Additional_proto_deps: AdditionalProtoDeps, + Java_version: bazel.StringAttribute{Value: m.properties.Java_version}, + Sdk_version: bazel.StringAttribute{Value: m.deviceProperties.Sdk_version}, } name := m.Name() + suffix -- cgit v1.2.3-59-g8ed1b