diff options
| author | Colin Cross <ccross@android.com> | 2019-04-02 10:31:28 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-04-02 10:31:28 -0700 |
| commit | 32762a08eb75ce6c666e84a6462388d73bba99fa (patch) | |
| tree | 10f84259616d130b096bcd6f3fc3539ed17a1b76 /java | |
| parent | 57205f3cb4fda0ca2687e5f881c36f21b6c9c20a (diff) | |
| parent | 7299e418df78f1919b2c9d5344ddc0be20aee691 (diff) | |
| download | build_soong-32762a08eb75ce6c666e84a6462388d73bba99fa.tar.gz build_soong-32762a08eb75ce6c666e84a6462388d73bba99fa.tar.bz2 build_soong-32762a08eb75ce6c666e84a6462388d73bba99fa.zip | |
Add support for protoc plugins am: fe17f6f0e8 am: 91c063cfdc
am: 7299e418df
Change-Id: I30e57f6678343f57233831775b62afa1f043a450
Diffstat (limited to 'java')
| -rw-r--r-- | java/gen.go | 2 | ||||
| -rw-r--r-- | java/java.go | 7 | ||||
| -rw-r--r-- | java/proto.go | 64 |
3 files changed, 36 insertions, 37 deletions
diff --git a/java/gen.go b/java/gen.go index 83625561..500d887e 100644 --- a/java/gen.go +++ b/java/gen.go @@ -118,7 +118,7 @@ func (j *Module) genSources(ctx android.ModuleContext, srcFiles android.Paths, javaFile := genLogtags(ctx, srcFile) outSrcFiles = append(outSrcFiles, javaFile) case ".proto": - srcJarFile := genProto(ctx, srcFile, flags) + srcJarFile := genProto(ctx, srcFile, flags.proto) outSrcFiles = append(outSrcFiles, srcJarFile) case ".sysprop": srcJarFile := genSysprop(ctx, srcFile) diff --git a/java/java.go b/java/java.go index beee1a5b..0417dee8 100644 --- a/java/java.go +++ b/java/java.go @@ -481,6 +481,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { {Mutator: "arch", Variation: ctx.Config().BuildOsCommonVariant}, }, pluginTag, j.properties.Plugins...) + android.ProtoDeps(ctx, &j.protoProperties) if j.hasSrcExt(".proto") { protoDeps(ctx, &j.protoProperties) } @@ -768,12 +769,6 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { deps.classpath = append(deps.classpath, dep.Srcs()...) deps.staticJars = append(deps.staticJars, dep.Srcs()...) deps.staticHeaderJars = append(deps.staticHeaderJars, dep.Srcs()...) - case android.DefaultsDepTag, android.SourceDepTag: - // Nothing to do - case publicApiFileTag, systemApiFileTag, testApiFileTag: - // Nothing to do - default: - ctx.ModuleErrorf("dependency on genrule %q may only be in srcs, libs, or static_libs", otherName) } default: switch tag { 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...) |
