diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl index 0600bb9e304c4f3a92cba88d0a9830d258563e68..afc5543795acaaa920da0957d66558c1fbd86c7a 100644 --- a/bazel/cc_grpc_library.bzl +++ b/bazel/cc_grpc_library.bzl @@ -12,9 +12,8 @@ def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mo srcs: a single proto_library, which wraps the .proto files with services. deps: a list of C++ proto_library (or cc_proto_library) which provides the compiled code of any message that the services depend on. - well_known_protos: The target from protobuf library that exports well - known protos. Currently it will only work if the value is - "@com_google_protobuf//:well_known_protos" + well_known_protos: Should this library additionally depend on well known + protos use_external: When True the grpc deps are prefixed with //external. This allows grpc to be used as a dependency in other bazel projects. generate_mock: When true GMOCk code for client stub is generated. diff --git a/bazel/generate_cc.bzl b/bazel/generate_cc.bzl index d05509fc153280f2283c3d0437922b009e25188c..7fffb582188216c0e1ea5f245e3e0cd3b2b1fed1 100644 --- a/bazel/generate_cc.bzl +++ b/bazel/generate_cc.bzl @@ -57,7 +57,7 @@ def generate_cc_impl(ctx): return struct(files=set(out_files)) -generate_cc = rule( +_generate_cc = rule( attrs = { "srcs": attr.label_list( mandatory = True, @@ -90,3 +90,9 @@ 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/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl index 0f66edbcd059a5115c103bf6528ab176e353e5ec..b19c85c962cde72f454a7150e3d1430969b84cda 100644 --- a/bazel/grpc_build_system.bzl +++ b/bazel/grpc_build_system.bzl @@ -67,7 +67,7 @@ def grpc_proto_plugin(name, srcs = [], deps = []): load("//:bazel/cc_grpc_library.bzl", "cc_grpc_library") -def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = None, +def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = False, has_services = True, use_external = False, generate_mock = False): cc_grpc_library( name = name, diff --git a/examples/BUILD b/examples/BUILD index bd2d3c31500f76fb3f76361eadd1f3f2361efd44..33131346acdf2f8f884372bf7452bed903f47431 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -27,6 +27,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +licenses(["notice"]) # 3-clause BSD + package(default_visibility = ["//visibility:public"]) load("//bazel:grpc_build_system.bzl", "grpc_proto_library") diff --git a/src/proto/grpc/status/BUILD b/src/proto/grpc/status/BUILD index 71363bd1b639971ca50915e0d3d44351cb3fbd5f..a93bfac419fe03dff9432553ee361999101ac705 100644 --- a/src/proto/grpc/status/BUILD +++ b/src/proto/grpc/status/BUILD @@ -37,5 +37,5 @@ grpc_proto_library( name = "status_proto", srcs = ["status.proto"], has_services = False, - well_known_protos = "@com_google_protobuf//:well_known_protos", + well_known_protos = True, ) diff --git a/test/cpp/interop/BUILD b/test/cpp/interop/BUILD index 1a3e8d916fa243f1e79509d5b85ee6121d180687..04c3489adc4ec5c67fe09de70b26f74d9ce771c6 100644 --- a/test/cpp/interop/BUILD +++ b/test/cpp/interop/BUILD @@ -29,8 +29,11 @@ licenses(["notice"]) # 3-clause BSD -cc_library( +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_cc_binary") + +grpc_cc_library( name = "server_helper_lib", + language = "c++", srcs = [ "server_helper.cc", ], @@ -39,12 +42,15 @@ cc_library( ], deps = [ "//test/cpp/util:test_util", - "//external:gflags", + ], + external_deps = [ + "gflags", ], ) -cc_binary( +grpc_cc_binary( name = "interop_server", + language = "c++", srcs = [ "interop_server.cc", "interop_server_bootstrap.cc", @@ -59,8 +65,9 @@ cc_binary( ], ) -cc_library( +grpc_cc_library( name = "client_helper_lib", + language = "c++", srcs = [ "client_helper.cc", "interop_client.cc", @@ -79,8 +86,9 @@ cc_library( ], ) -cc_binary( +grpc_cc_binary( name = "interop_client", + language = "c++", srcs = [ "client.cc", ], diff --git a/test/cpp/util/BUILD b/test/cpp/util/BUILD index 453e9b6c0fd95867eba2613e703b5b0d6e2c7d01..9e4701b179a93bff27ddcbd69be48c58264f4da5 100644 --- a/test/cpp/util/BUILD +++ b/test/cpp/util/BUILD @@ -29,7 +29,7 @@ licenses(["notice"]) # 3-clause BSD -load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_binary") +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_binary", "grpc_cc_test") package(default_visibility = ["//visibility:public"]) @@ -141,19 +141,21 @@ grpc_cc_library( ], ) -cc_test( +grpc_cc_test( name = "error_details_test", srcs = [ "error_details_test.cc", ], deps = [ "//:grpc++_error_details", - "//external:gtest", "//src/proto/grpc/testing:echo_messages_proto", ], + external_deps = [ + "gtest", + ], ) -cc_binary( +grpc_cc_binary( name = "grpc_cli", srcs = [ "cli_call.cc", @@ -175,7 +177,9 @@ cc_binary( ], deps = [ "//:grpc++", - "//external:gflags", "//src/proto/grpc/reflection/v1alpha:reflection_proto", ], + external_deps = [ + "gflags", + ], ) diff --git a/tools/grpcz/BUILD b/tools/grpcz/BUILD index cc887a53751983458028378dded0a9db4ef8759c..fbd01cbf9a9b28365e69b727d7245d61406d03a4 100644 --- a/tools/grpcz/BUILD +++ b/tools/grpcz/BUILD @@ -38,7 +38,7 @@ grpc_proto_library( srcs = [ "monitoring.proto", ], - well_known_protos = "@com_google_protobuf//:well_known_protos", + well_known_protos = True, deps = [ ":census_proto", ], @@ -49,7 +49,7 @@ grpc_proto_library( srcs = [ "census.proto", ], - well_known_protos = "@com_google_protobuf//:well_known_protos", + well_known_protos = True, ) cc_binary(