Merge pull request #1268 from keveman/grpc_support
Added grpc plugin support to cc_proto_library.
This commit is contained in:
commit
fc51bdc033
17
protobuf.bzl
17
protobuf.bzl
@ -63,6 +63,10 @@ def _proto_gen_impl(ctx):
|
||||
if ctx.attr.gen_py:
|
||||
args += ["--python_out=" + ctx.var["GENDIR"] + "/" + gen_dir]
|
||||
|
||||
if ctx.executable.grpc_cpp_plugin:
|
||||
args += ["--plugin=protoc-gen-grpc=" + ctx.executable.grpc_cpp_plugin.path]
|
||||
args += ["--grpc_out=" + ctx.var["GENDIR"] + "/" + gen_dir]
|
||||
|
||||
if args:
|
||||
ctx.action(
|
||||
inputs=srcs + deps,
|
||||
@ -90,6 +94,11 @@ _proto_gen = rule(
|
||||
single_file = True,
|
||||
mandatory = True,
|
||||
),
|
||||
"grpc_cpp_plugin": attr.label(
|
||||
cfg = HOST_CFG,
|
||||
executable = True,
|
||||
single_file = True,
|
||||
),
|
||||
"gen_cc": attr.bool(),
|
||||
"gen_py": attr.bool(),
|
||||
"outs": attr.output_list(),
|
||||
@ -106,6 +115,7 @@ def cc_proto_library(
|
||||
include=None,
|
||||
protoc="//google/protobuf:protoc",
|
||||
internal_bootstrap_hack=False,
|
||||
use_grpc_plugin=False,
|
||||
default_runtime="//google/protobuf:protobuf",
|
||||
**kargs):
|
||||
"""Bazel rule to create a C++ protobuf library from proto source files
|
||||
@ -126,6 +136,8 @@ def cc_proto_library(
|
||||
for bootstraping. When it is set to True, no files will be generated.
|
||||
The rule will simply be a provider for .proto files, so that other
|
||||
cc_proto_library can depend on it.
|
||||
use_grpc_plugin: a flag to indicate whether to call the grpc C++ plugin
|
||||
when processing the proto files.
|
||||
default_runtime: the implicitly default runtime which will be depended on by
|
||||
the generated cc_library target.
|
||||
**kargs: other keyword arguments that are passed to cc_library.
|
||||
@ -153,6 +165,10 @@ def cc_proto_library(
|
||||
**kargs)
|
||||
return
|
||||
|
||||
grpc_cpp_plugin = None
|
||||
if use_grpc_plugin:
|
||||
grpc_cpp_plugin = "//external:grpc_cpp_plugin"
|
||||
|
||||
outs = _CcOuts(srcs)
|
||||
_proto_gen(
|
||||
name=name + "_genproto",
|
||||
@ -160,6 +176,7 @@ def cc_proto_library(
|
||||
deps=[s + "_genproto" for s in deps],
|
||||
includes=includes,
|
||||
protoc=protoc,
|
||||
grpc_cpp_plugin=grpc_cpp_plugin,
|
||||
gen_cc=1,
|
||||
outs=outs,
|
||||
visibility=["//visibility:public"],
|
||||
|
Loading…
Reference in New Issue
Block a user