Merge "rust: Fix GRPC generator invocation" am: 40c9798e92 am: 13a4ae9c7b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1489600
Change-Id: Ifd72ec42c389b0b9feeb717779f6b4b02de63942
diff --git a/rust/protobuf.go b/rust/protobuf.go
index 28a4597..ca40154 100644
--- a/rust/protobuf.go
+++ b/rust/protobuf.go
@@ -55,17 +55,17 @@
func (proto *protobufDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) android.Path {
var protoFlags android.ProtoFlags
- var pluginPath android.Path
+ var pluginPaths android.Paths
protoFlags.OutTypeFlag = "--rust_out"
outDir := android.PathForModuleOut(ctx)
- pluginPath, protoFlags = proto.setupPlugin(ctx, protoFlags, outDir)
+ pluginPaths, protoFlags = proto.setupPlugin(ctx, protoFlags, outDir)
protoFlags.Flags = append(protoFlags.Flags, defaultProtobufFlags...)
protoFlags.Flags = append(protoFlags.Flags, proto.Properties.Proto_flags...)
- protoFlags.Deps = append(protoFlags.Deps, pluginPath)
+ protoFlags.Deps = append(protoFlags.Deps, pluginPaths...)
protoFile := android.OptionalPathForModuleSrc(ctx, proto.Properties.Proto)
if !protoFile.Valid() {
@@ -90,21 +90,25 @@
return modFile
}
-func (proto *protobufDecorator) setupPlugin(ctx ModuleContext, protoFlags android.ProtoFlags, outDir android.ModuleOutPath) (android.Path, android.ProtoFlags) {
- var pluginPath android.Path
+func (proto *protobufDecorator) setupPlugin(ctx ModuleContext, protoFlags android.ProtoFlags, outDir android.ModuleOutPath) (android.Paths, android.ProtoFlags) {
+ pluginPaths := []android.Path{}
if proto.plugin == Protobuf {
- pluginPath = ctx.Config().HostToolPath(ctx, "protoc-gen-rust")
+ pluginPath := ctx.Config().HostToolPath(ctx, "protoc-gen-rust")
+ pluginPaths = append(pluginPaths, pluginPath)
protoFlags.Flags = append(protoFlags.Flags, "--plugin="+pluginPath.String())
} else if proto.plugin == Grpc {
- pluginPath = ctx.Config().HostToolPath(ctx, "grpc_rust_plugin")
+ grpcPath := ctx.Config().HostToolPath(ctx, "grpc_rust_plugin")
+ protobufPath := ctx.Config().HostToolPath(ctx, "protoc-gen-rust")
+ pluginPaths = append(pluginPaths, grpcPath, protobufPath)
protoFlags.Flags = append(protoFlags.Flags, "--grpc_out="+outDir.String())
- protoFlags.Flags = append(protoFlags.Flags, "--plugin=protoc-gen-grpc="+pluginPath.String())
+ protoFlags.Flags = append(protoFlags.Flags, "--plugin=protoc-gen-grpc="+grpcPath.String())
+ protoFlags.Flags = append(protoFlags.Flags, "--plugin=protoc-gen-rust="+protobufPath.String())
} else {
ctx.ModuleErrorf("Unknown protobuf plugin type requested")
}
- return pluginPath, protoFlags
+ return pluginPaths, protoFlags
}
func (proto *protobufDecorator) SourceProviderProps() []interface{} {