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
This commit is contained in:
Colin Cross 2017-12-14 15:22:43 -08:00
parent 5dfabfba3e
commit 0f2ee15576
2 changed files with 16 additions and 2 deletions

View file

@ -142,6 +142,11 @@ type CompilerProperties struct {
Exclude_filter []string Exclude_filter []string
} }
Proto struct {
// List of extra options that will be passed to the proto generator.
Output_params []string
}
Instrument bool `blueprint:"mutated"` 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) srcFiles := ctx.ExpandSources(j.properties.Srcs, j.properties.Exclude_srcs)
if hasSrcExt(srcFiles.Strings(), ".proto") { 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) srcFiles = j.genSources(ctx, srcFiles, flags)

View file

@ -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) { switch proptools.String(p.Proto.Type) {
case "micro": case "micro":
flags.protoOutTypeFlag = "--javamicro_out" flags.protoOutTypeFlag = "--javamicro_out"
@ -93,6 +95,13 @@ func protoFlags(ctx android.ModuleContext, p *android.ProtoProperties, flags jav
proptools.String(p.Proto.Type)) 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) flags.protoFlags = android.ProtoFlags(ctx, p)
return flags return flags