Przeglądaj źródła

Merge pull request #2404 from wiktortomczak/master

Support grpc plugin in py_proto_library
Feng Xiao 8 lat temu
rodzic
commit
c950471563
1 zmienionych plików z 12 dodań i 0 usunięć
  1. 12 0
      protobuf.bzl

+ 12 - 0
protobuf.bzl

@@ -304,6 +304,7 @@ def py_proto_library(
         include=None,
         default_runtime="//:protobuf_python",
         protoc="//:protoc",
+        use_grpc_plugin=False,
         **kargs):
   """Bazel rule to create a Python protobuf library from proto source files
 
@@ -323,6 +324,8 @@ def py_proto_library(
     default_runtime: the implicitly default runtime which will be depended on by
         the generated py_library target.
     protoc: the label of the protocol compiler to generate the sources.
+    use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
+        when processing the proto files.
     **kargs: other keyword arguments that are passed to cc_library.
 
   """
@@ -332,6 +335,13 @@ def py_proto_library(
   if include != None:
     includes = [include]
 
+  grpc_python_plugin = None
+  if use_grpc_plugin:
+    grpc_python_plugin = "//external:grpc_python_plugin"
+    # Note: Generated grpc code depends on Python grpc module. This dependency
+    # is not explicitly listed in py_libs. Instead, host system is assumed to
+    # have grpc installed.
+
   proto_gen(
       name=name + "_genproto",
       srcs=srcs,
@@ -341,6 +351,8 @@ def py_proto_library(
       gen_py=1,
       outs=outs,
       visibility=["//visibility:public"],
+      plugin=grpc_python_plugin,
+      plugin_language="grpc"
   )
 
   if default_runtime and not default_runtime in py_libs + deps: