diff --git a/protobuf.bzl b/protobuf.bzl index c5555fde87..1291f2aac9 100644 --- a/protobuf.bzl +++ b/protobuf.bzl @@ -15,14 +15,21 @@ def _GenDir(ctx): return _GetPath(ctx, ctx.attr.includes[0]) return _GetPath(ctx, ctx.label.package + '/' + ctx.attr.includes[0]) -def _CcOuts(srcs, use_grpc_plugin=False): - ret = [s[:-len(".proto")] + ".pb.h" for s in srcs] + \ - [s[:-len(".proto")] + ".pb.cc" for s in srcs] +def _CcHdrs(srcs, use_grpc_plugin=False): + ret = [s[:-len(".proto")] + ".pb.h" for s in srcs] + if use_grpc_plugin: + ret += [s[:-len(".proto")] + ".grpc.pb.h" for s in srcs] + return ret + +def _CcSrcs(srcs, use_grpc_plugin=False): + ret = [s[:-len(".proto")] + ".pb.cc" for s in srcs] if use_grpc_plugin: - ret += [s[:-len(".proto")] + ".grpc.pb.h" for s in srcs] + \ - [s[:-len(".proto")] + ".grpc.pb.cc" for s in srcs] + ret += [s[:-len(".proto")] + ".grpc.pb.cc" for s in srcs] return ret +def _CcOuts(srcs, use_grpc_plugin=False): + return _CcHdrs(srcs, use_grpc_plugin) + _CcSrcs(srcs, use_grpc_plugin) + def _PyOuts(srcs): return [s[:-len(".proto")] + "_pb2.py" for s in srcs] @@ -168,7 +175,9 @@ def cc_proto_library( if use_grpc_plugin: grpc_cpp_plugin = "//external:grpc_cpp_plugin" - outs = _CcOuts(srcs, use_grpc_plugin) + gen_srcs = _CcSrcs(srcs, use_grpc_plugin) + gen_hdrs = _CcHdrs(srcs, use_grpc_plugin) + outs = gen_srcs + gen_hdrs _proto_gen( name=name + "_genproto", @@ -189,7 +198,8 @@ def cc_proto_library( native.cc_library( name=name, - srcs=outs, + srcs=gen_srcs, + hdrs=gen_hdrs, deps=cc_libs + deps, includes=includes, **kargs)