diff options
Diffstat (limited to 'java/proto.go')
-rw-r--r-- | java/proto.go | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/java/proto.go b/java/proto.go index 8de9e26d..37de1d28 100644 --- a/java/proto.go +++ b/java/proto.go @@ -18,7 +18,7 @@ import ( "android/soong/android" ) -func genProto(ctx android.ModuleContext, protoFile android.Path, flags javaBuilderFlags) android.Path { +func genProto(ctx android.ModuleContext, protoFile android.Path, flags android.ProtoFlags) android.Path { srcJarFile := android.GenPathWithExt(ctx, "proto", protoFile, "srcjar") outDir := srcJarFile.ReplaceExtension(ctx, "tmp") @@ -29,7 +29,7 @@ func genProto(ctx android.ModuleContext, protoFile android.Path, flags javaBuild rule.Command().Text("rm -rf").Flag(outDir.String()) rule.Command().Text("mkdir -p").Flag(outDir.String()) - android.ProtoRule(ctx, rule, protoFile, flags.proto, nil, outDir, depFile, nil) + android.ProtoRule(ctx, rule, protoFile, flags, flags.Deps, outDir, depFile, nil) // Proto generated java files have an unknown package name in the path, so package the entire output directory // into a srcjar. @@ -48,22 +48,24 @@ func genProto(ctx android.ModuleContext, protoFile android.Path, flags javaBuild } func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) { - switch String(p.Proto.Type) { - case "micro": - ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-micro") - case "nano": - ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-nano") - case "lite", "": - ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-lite") - case "full": - if ctx.Host() { - ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-full") - } else { - ctx.PropertyErrorf("proto.type", "full java protos only supported on the host") + if String(p.Proto.Plugin) == "" { + switch String(p.Proto.Type) { + case "micro": + ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-micro") + case "nano": + ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-nano") + case "lite", "": + ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-lite") + case "full": + if ctx.Host() { + ctx.AddVariationDependencies(nil, staticLibTag, "libprotobuf-java-full") + } else { + ctx.PropertyErrorf("proto.type", "full java protos only supported on the host") + } + default: + ctx.PropertyErrorf("proto.type", "unknown proto type %q", + String(p.Proto.Type)) } - default: - ctx.PropertyErrorf("proto.type", "unknown proto type %q", - String(p.Proto.Type)) } } @@ -72,19 +74,21 @@ func protoFlags(ctx android.ModuleContext, j *CompilerProperties, p *android.Pro flags.proto = android.GetProtoFlags(ctx, p) - switch String(p.Proto.Type) { - case "micro": - flags.proto.OutTypeFlag = "--javamicro_out" - case "nano": - flags.proto.OutTypeFlag = "--javanano_out" - case "lite": - flags.proto.OutTypeFlag = "--java_out" - flags.proto.OutParams = append(flags.proto.OutParams, "lite") - case "full", "": - flags.proto.OutTypeFlag = "--java_out" - default: - ctx.PropertyErrorf("proto.type", "unknown proto type %q", - String(p.Proto.Type)) + if String(p.Proto.Plugin) == "" { + switch String(p.Proto.Type) { + case "micro": + flags.proto.OutTypeFlag = "--javamicro_out" + case "nano": + flags.proto.OutTypeFlag = "--javanano_out" + case "lite": + flags.proto.OutTypeFlag = "--java_out" + flags.proto.OutParams = append(flags.proto.OutParams, "lite") + case "full", "": + flags.proto.OutTypeFlag = "--java_out" + default: + ctx.PropertyErrorf("proto.type", "unknown proto type %q", + String(p.Proto.Type)) + } } flags.proto.OutParams = append(flags.proto.OutParams, j.Proto.Output_params...) |