Merge pull request #1275 from keveman/grpc_support

Fixed grpc C++ plugin support.
diff --git a/protobuf.bzl b/protobuf.bzl
index 399cf62..e5af333 100644
--- a/protobuf.bzl
+++ b/protobuf.bzl
@@ -15,9 +15,13 @@
     return _GetPath(ctx, ctx.attr.includes[0])
   return _GetPath(ctx, ctx.label.package + '/' + ctx.attr.includes[0])
 
-def _CcOuts(srcs):
-  return [s[:-len(".proto")] +  ".pb.h" for s in srcs] + \
-         [s[:-len(".proto")] + ".pb.cc" for s in srcs]
+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]
+  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]
+  return ret
 
 def _PyOuts(srcs):
   return [s[:-len(".proto")] + "_pb2.py" for s in srcs]
@@ -169,7 +173,8 @@
   if use_grpc_plugin:
     grpc_cpp_plugin = "//external:grpc_cpp_plugin"
 
-  outs = _CcOuts(srcs)
+  outs = _CcOuts(srcs, use_grpc_plugin)
+
   _proto_gen(
       name=name + "_genproto",
       srcs=srcs,
@@ -184,6 +189,8 @@
 
   if default_runtime and not default_runtime in cc_libs:
     cc_libs += [default_runtime]
+  if use_grpc_plugin:
+    cc_libs += ["//external:grpc_lib"]
 
   native.cc_library(
       name=name,
@@ -192,7 +199,6 @@
       includes=includes,
       **kargs)
 
-
 def internal_copied_filegroup(
         name,
         srcs,
@@ -222,7 +228,6 @@
       srcs=outs,
       **kargs)
 
-
 def py_proto_library(
         name,
         srcs=[],