From 0f2ee15576d8d0eb8a8617ba1dd4493f6169bbd7 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 14 Dec 2017 15:22:43 -0800 Subject: [PATCH] Support output params in java proto Allow java modules using proto to specify output params to be passed to the proto generator. Test: m checkbuild Change-Id: I8a06f07218073236f4f85996ea5f09fb3702ed1a --- java/java.go | 7 ++++++- java/proto.go | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/java/java.go b/java/java.go index d9075b175..9b345fdcd 100644 --- a/java/java.go +++ b/java/java.go @@ -142,6 +142,11 @@ type CompilerProperties struct { Exclude_filter []string } + Proto struct { + // List of extra options that will be passed to the proto generator. + Output_params []string + } + Instrument bool `blueprint:"mutated"` } @@ -620,7 +625,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars ...android.Path } srcFiles := ctx.ExpandSources(j.properties.Srcs, j.properties.Exclude_srcs) if hasSrcExt(srcFiles.Strings(), ".proto") { - flags = protoFlags(ctx, &j.protoProperties, flags) + flags = protoFlags(ctx, &j.properties, &j.protoProperties, flags) } srcFiles = j.genSources(ctx, srcFiles, flags) diff --git a/java/proto.go b/java/proto.go index 428413f4c..226fac086 100644 --- a/java/proto.go +++ b/java/proto.go @@ -77,7 +77,9 @@ func protoDeps(ctx android.BottomUpMutatorContext, p *android.ProtoProperties) { } } -func protoFlags(ctx android.ModuleContext, p *android.ProtoProperties, flags javaBuilderFlags) javaBuilderFlags { +func protoFlags(ctx android.ModuleContext, j *CompilerProperties, p *android.ProtoProperties, + flags javaBuilderFlags) javaBuilderFlags { + switch proptools.String(p.Proto.Type) { case "micro": flags.protoOutTypeFlag = "--javamicro_out" @@ -93,6 +95,13 @@ func protoFlags(ctx android.ModuleContext, p *android.ProtoProperties, flags jav proptools.String(p.Proto.Type)) } + if len(j.Proto.Output_params) > 0 { + if flags.protoOutParams != "" { + flags.protoOutParams += "," + } + flags.protoOutParams += strings.Join(j.Proto.Output_params, ",") + } + flags.protoFlags = android.ProtoFlags(ctx, p) return flags