From 6eb4a396945bbe89831ce1d205106c1348f376e3 Mon Sep 17 00:00:00 2001
From: Mark Schaller <mschaller@google.com>
Date: Thu, 9 Jan 2020 19:50:57 -0500
Subject: [PATCH] Adapt gRPC bazel files for use in Bazel

This simplifies the cc_grpc_library macro and its deps:
* removes cc_grpc_library's grpc_only parameter (now always true)
* removes its proto_only, well_known_protos parameters (now always
    false)
* removes its use_external parameter (it was previously unused)
* adds to it an extra_cc_library_kwargs parameter (forwarded to its
    generated cc_library rule)
* removes "well_known_proto" functionality from generate_cc.bzl and
    protobuf.bzl
* changes generate_cc's _protoc attribute to protoc
* sets cc_grpc_library's generate_cc call's plugin and protoc arguments
    to Bazel's targets ("//third_party/grpc:cpp_plugin" and
    "//third_party/protobuf:protoc", respectively)
* relativizes load statements throughout
* adds "srcs" filegroup to the package's BUILD file and includes it in
    //third_party/grpc:srcs
    
---
 third_party/grpc/bazel/BUILD               |   5 +
 third_party/grpc/bazel/cc_grpc_library.bzl | 127 +++++++--------------
 third_party/grpc/bazel/generate_cc.bzl     |  39 +------
 third_party/grpc/bazel/protobuf.bzl        |  16 ---
 4 files changed, 51 insertions(+), 136 deletions(-)

diff --git a/third_party/grpc/bazel/BUILD b/third_party/grpc/bazel/BUILD
index c3c82c9c0c..6f451a6f24 100644
--- a/third_party/grpc/bazel/BUILD
+++ b/third_party/grpc/bazel/BUILD
@@ -17,3 +17,18 @@ licenses(["notice"])  # Apache v2
 package(default_visibility = ["//:__subpackages__"])
 
 load(":cc_grpc_library.bzl", "cc_grpc_library")
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**"]),
+)
+
+filegroup(
+    name = "embedded_tools_srcs",
+    srcs = [
+        "BUILD.tools",
+        "cc_grpc_library.bzl",
+        "generate_cc.bzl",
+        "protobuf.bzl",
+    ],
+)
diff --git a/third_party/grpc/bazel/cc_grpc_library.bzl b/third_party/grpc/bazel/cc_grpc_library.bzl
index dea493eaf2..0470a294fc 100644
--- a/third_party/grpc/bazel/cc_grpc_library.bzl
+++ b/third_party/grpc/bazel/cc_grpc_library.bzl
@@ -1,105 +1,58 @@
 """Generates and compiles C++ grpc stubs from proto_library rules."""
 
-load("@rules_proto//proto:defs.bzl", "proto_library")
-load("//bazel:generate_cc.bzl", "generate_cc")
-load("//bazel:protobuf.bzl", "well_known_proto_libs")
+load(":generate_cc.bzl", "generate_cc")
 
+# Simplified version of gRPC upstream's cc_grpc_library.
 def cc_grpc_library(
         name,
         srcs,
         deps,
-        proto_only = False,
-        well_known_protos = False,
         generate_mocks = False,
-        use_external = False,
-        grpc_only = False,
+        extra_cc_library_kwargs = {},
         **kwargs):
-    """Generates C++ grpc classes for services defined in a proto file.
+    """Generates C++ grpc classes for services defined in proto_library rules.
 
-    If grpc_only is True, this rule is compatible with proto_library and
-    cc_proto_library native rules such that it expects proto_library target
-    as srcs argument and generates only grpc library classes, expecting
-    protobuf messages classes library (cc_proto_library target) to be passed in
-    deps argument. By default grpc_only is False which makes this rule to behave
-    in a backwards-compatible mode (trying to generate both proto and grpc
-    classes).
+    This rule expects a singleton list containing a proto_library target for its
+    srcs argument, and expects a list (of arbitrary size) of cc_proto_library
+    targets for its deps argument.
+
+    It generates only grpc library classes.
 
     Assumes the generated classes will be used in cc_api_version = 2.
 
     Args:
         name (str): Name of rule.
-        srcs (list): A single .proto file which contains services definitions,
-          or if grpc_only parameter is True, a single proto_library which
-          contains services descriptors.
-        deps (list): A list of C++ proto_library (or cc_proto_library) which
-          provides the compiled code of any message that the services depend on.
-        proto_only (bool): If True, create only C++ proto classes library,
-          avoid creating C++ grpc classes library (expect it in deps).
-          Deprecated, use native cc_proto_library instead. False by default.
-        well_known_protos (bool): Should this library additionally depend on
-          well known protos. Deprecated, the well known protos should be
-          specified as explicit dependencies of the proto_library target
-          (passed in srcs parameter) instead. False by default.
+        srcs (list): A single proto_library which contains services descriptors.
+        deps (list): A list of cc_proto_library targets which
+          provide the compiled code of any message that the services depend on.
         generate_mocks (bool): when True, Google Mock code for client stub is
           generated. False by default.
-        use_external (bool): Not used.
-        grpc_only (bool): if True, generate only grpc library, expecting
-          protobuf messages library (cc_proto_library target) to be passed as
-          deps. False by default (will become True by default eventually).
-        **kwargs: rest of arguments, e.g., compatible_with and visibility
+        extra_cc_library_kwargs (map): extra arguments to pass to the cc_library
+          rule
+        **kwargs: extra arguments to pass to all rules instantiated by this
+          macro. Must be common to all build rules. See
+          https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
     """
-    if len(srcs) > 1:
-        fail("Only one srcs value supported", "srcs")
-    if grpc_only and proto_only:
-        fail("A mutualy exclusive configuration is specified: grpc_only = True and proto_only = True")
-
-    extra_deps = []
-    proto_targets = []
-
-    if not grpc_only:
-        proto_target = "_" + name + "_only"
-        cc_proto_target = name if proto_only else "_" + name + "_cc_proto"
-
-        proto_deps = ["_" + dep + "_only" for dep in deps if dep.find(":") == -1]
-        proto_deps += [dep.split(":")[0] + ":" + "_" + dep.split(":")[1] + "_only" for dep in deps if dep.find(":") != -1]
-        if well_known_protos:
-            proto_deps += well_known_proto_libs()
-        proto_library(
-            name = proto_target,
-            srcs = srcs,
-            deps = proto_deps,
-            **kwargs
-        )
-
-        native.cc_proto_library(
-            name = cc_proto_target,
-            deps = [":" + proto_target],
-            **kwargs
-        )
-        extra_deps.append(":" + cc_proto_target)
-        proto_targets.append(proto_target)
-    else:
-        if not srcs:
-            fail("srcs cannot be empty", "srcs")
-        proto_targets += srcs
-
-    if not proto_only:
-        codegen_grpc_target = "_" + name + "_grpc_codegen"
-        generate_cc(
-            name = codegen_grpc_target,
-            srcs = proto_targets,
-            plugin = "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin",
-            well_known_protos = well_known_protos,
-            generate_mocks = generate_mocks,
-            **kwargs
-        )
-
-        native.cc_library(
-            name = name,
-            srcs = [":" + codegen_grpc_target],
-            hdrs = [":" + codegen_grpc_target],
-            deps = deps +
-                   extra_deps +
-                   ["@com_github_grpc_grpc//:grpc++_codegen_proto"],
-            **kwargs
-        )
+    if len(srcs) != 1:
+        fail("The srcs attribute must be a singleton list but was " + str(srcs),
+             "srcs")
+
+    codegen_grpc_target = "_" + name + "_grpc_codegen"
+    generate_cc(
+        name = codegen_grpc_target,
+        srcs = srcs,
+        plugin = "//third_party/grpc:cpp_plugin",
+        generate_mocks = generate_mocks,
+        protoc = "//third_party/protobuf:protoc",
+        **kwargs
+    )
+
+    cc_library_kwargs = dict(**extra_cc_library_kwargs)
+    cc_library_kwargs.update(**kwargs)
+    native.cc_library(
+        name = name,
+        srcs = [":" + codegen_grpc_target],
+        hdrs = [":" + codegen_grpc_target],
+        deps = deps + ["//third_party/grpc:grpc++_codegen_proto"],
+        **cc_library_kwargs
+    )
diff --git a/third_party/grpc/bazel/generate_cc.bzl b/third_party/grpc/bazel/generate_cc.bzl
index 484959ebb7..38a5b460f9 100644
--- a/third_party/grpc/bazel/generate_cc.bzl
+++ b/third_party/grpc/bazel/generate_cc.bzl
@@ -5,7 +5,7 @@ directly.
 """
 
 load(
-    "//bazel:protobuf.bzl",
+    ":protobuf.bzl",
     "get_include_directory",
     "get_plugin_args",
     "get_proto_root",
@@ -118,34 +118,18 @@ def generate_cc_impl(ctx):
     arguments += ["--proto_path={0}{1}".format(dir_out, proto_root)]
     arguments += [_get_srcs_file_path(proto) for proto in protos]
 
-    # create a list of well known proto files if the argument is non-None
-    well_known_proto_files = []
-    if ctx.attr.well_known_protos:
-        f = ctx.attr.well_known_protos.files.to_list()[0].dirname
-        if f != "external/com_google_protobuf/src/google/protobuf":
-            print(
-                "Error: Only @com_google_protobuf//:well_known_protos is supported",
-            )
-        else:
-            # f points to "external/com_google_protobuf/src/google/protobuf"
-            # add -I argument to protoc so it knows where to look for the proto files.
-            arguments += ["-I{0}".format(f + "/../..")]
-            well_known_proto_files = [
-                f
-                for f in ctx.attr.well_known_protos.files.to_list()
-            ]
-
     ctx.actions.run(
-        inputs = protos + includes + well_known_proto_files,
+        inputs = protos + includes,
         tools = tools,
         outputs = out_files,
-        executable = ctx.executable._protoc,
+        executable = ctx.executable.protoc,
         arguments = arguments,
+        use_default_shell_env = True,
     )
 
     return struct(files = depset(out_files))
 
-_generate_cc = rule(
+generate_cc = rule(
     attrs = {
         "srcs": attr.label_list(
             mandatory = True,
@@ -161,13 +145,12 @@ _generate_cc = rule(
             mandatory = False,
             allow_empty = True,
         ),
-        "well_known_protos": attr.label(mandatory = False),
         "generate_mocks": attr.bool(
             default = False,
             mandatory = False,
         ),
-        "_protoc": attr.label(
-            default = Label("//external:protocol_compiler"),
+        "protoc": attr.label(
+            mandatory = True,
             executable = True,
             cfg = "host",
         ),
@@ -176,12 +159,3 @@ _generate_cc = rule(
     output_to_genfiles = True,
     implementation = generate_cc_impl,
 )
-
-def generate_cc(well_known_protos, **kwargs):
-    if well_known_protos:
-        _generate_cc(
-            well_known_protos = "@com_google_protobuf//:well_known_protos",
-            **kwargs
-        )
-    else:
-        _generate_cc(**kwargs)
diff --git a/third_party/grpc/bazel/protobuf.bzl b/third_party/grpc/bazel/protobuf.bzl
index 7af27a8b30..0d6a4135f0 100644
--- a/third_party/grpc/bazel/protobuf.bzl
+++ b/third_party/grpc/bazel/protobuf.bzl
@@ -3,22 +3,6 @@
 _PROTO_EXTENSION = ".proto"
 _VIRTUAL_IMPORTS = "/_virtual_imports/"
 
-def well_known_proto_libs():
-    return [
-        "@com_google_protobuf//:any_proto",
-        "@com_google_protobuf//:api_proto",
-        "@com_google_protobuf//:compiler_plugin_proto",
-        "@com_google_protobuf//:descriptor_proto",
-        "@com_google_protobuf//:duration_proto",
-        "@com_google_protobuf//:empty_proto",
-        "@com_google_protobuf//:field_mask_proto",
-        "@com_google_protobuf//:source_context_proto",
-        "@com_google_protobuf//:struct_proto",
-        "@com_google_protobuf//:timestamp_proto",
-        "@com_google_protobuf//:type_proto",
-        "@com_google_protobuf//:wrappers_proto",
-    ]
-
 def get_proto_root(workspace_root):
     """Gets the root protobuf directory.
 
-- 
2.25.0.rc1.283.g88dfdc4193-goog

