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
diff --git a/java/java.go b/java/java.go
index d9075b1..9b345fd 100644
--- a/java/java.go
+++ b/java/java.go
@@ -142,6 +142,11 @@
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 @@
}
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 428413f..226fac0 100644
--- a/java/proto.go
+++ b/java/proto.go
@@ -77,7 +77,9 @@
}
}
-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 @@
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