Merge "add support for java stream protos in protoDeps"

This commit is contained in:
Treehugger Robot
2022-02-11 01:19:32 +00:00
committed by Gerrit Code Review
2 changed files with 56 additions and 1 deletions

View File

@@ -73,13 +73,15 @@ func genProto(ctx android.ModuleContext, protoFiles android.Paths, flags android
} }
func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) { func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) {
const unspecifiedProtobufPluginType = ""
if String(p.Proto.Plugin) == "" { if String(p.Proto.Plugin) == "" {
switch String(p.Proto.Type) { switch String(p.Proto.Type) {
case "stream": // does not require additional dependencies
case "micro": case "micro":
ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-micro") ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-micro")
case "nano": case "nano":
ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-nano") ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-nano")
case "lite", "": case "lite", unspecifiedProtobufPluginType:
ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-lite") ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-lite")
case "full": case "full":
if ctx.Host() || ctx.BazelConversionMode() { if ctx.Host() || ctx.BazelConversionMode() {

53
java/proto_test.go Normal file
View File

@@ -0,0 +1,53 @@
// Copyright 2022 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package java
import (
"strings"
"testing"
"android/soong/android"
)
const protoModules = `
java_library_static {
name: "libprotobuf-java-lite",
}
`
func TestProtoStream(t *testing.T) {
bp := `
java_library {
name: "java-stream-protos",
proto: {
type: "stream",
},
srcs: [
"a.proto",
"b.proto",
],
}
`
ctx := android.GroupFixturePreparers(
PrepareForIntegrationTestWithJava,
).RunTestWithBp(t, protoModules+bp)
proto0 := ctx.ModuleForTests("java-stream-protos", "android_common").Output("proto/proto0.srcjar")
if cmd := proto0.RuleParams.Command; !strings.Contains(cmd, "--javastream_out=") {
t.Errorf("expected '--javastream_out' in %q", cmd)
}
}