aboutsummaryrefslogtreecommitdiffhomepage
path: root/bazel
diff options
context:
space:
mode:
Diffstat (limited to 'bazel')
-rw-r--r--bazel/cc_grpc_library.bzl6
-rw-r--r--bazel/generate_cc.bzl6
-rw-r--r--bazel/grpc_build_system.bzl44
3 files changed, 36 insertions, 20 deletions
diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl
index 94781ed7ae..5216a7a44b 100644
--- a/bazel/cc_grpc_library.bzl
+++ b/bazel/cc_grpc_library.bzl
@@ -2,7 +2,7 @@
load("//:bazel/generate_cc.bzl", "generate_cc")
-def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mock, use_external = False, **kwargs):
+def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mocks = False, use_external = False, **kwargs):
"""Generates C++ grpc classes from a .proto file.
Assumes the generated classes will be used in cc_api_version = 2.
@@ -16,7 +16,7 @@ def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mo
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.
+ generate_mocks: When True, Google Mock code for client stub is generated.
**kwargs: rest of arguments, e.g., compatible_with and visibility.
"""
if len(srcs) > 1:
@@ -54,7 +54,7 @@ def cc_grpc_library(name, srcs, deps, proto_only, well_known_protos, generate_mo
srcs = [proto_target],
plugin = plugin,
well_known_protos = well_known_protos,
- generate_mock = generate_mock,
+ generate_mocks = generate_mocks,
**kwargs
)
diff --git a/bazel/generate_cc.bzl b/bazel/generate_cc.bzl
index 96610d873e..ae747aa42c 100644
--- a/bazel/generate_cc.bzl
+++ b/bazel/generate_cc.bzl
@@ -23,7 +23,7 @@ def generate_cc_impl(ctx):
if ctx.executable.plugin:
outs += [proto.path[label_len:-len(".proto")] + ".grpc.pb.h" for proto in protos]
outs += [proto.path[label_len:-len(".proto")] + ".grpc.pb.cc" for proto in protos]
- if ctx.attr.generate_mock:
+ if ctx.attr.generate_mocks:
outs += [proto.path[label_len:-len(".proto")] + "_mock.grpc.pb.h" for proto in protos]
else:
outs += [proto.path[label_len:-len(".proto")] + ".pb.h" for proto in protos]
@@ -35,7 +35,7 @@ def generate_cc_impl(ctx):
if ctx.executable.plugin:
arguments += ["--plugin=protoc-gen-PLUGIN=" + ctx.executable.plugin.path]
flags = list(ctx.attr.flags)
- if ctx.attr.generate_mock:
+ if ctx.attr.generate_mocks:
flags.append("generate_mock_code=true")
arguments += ["--PLUGIN_out=" + ",".join(flags) + ":" + dir_out]
additional_input = [ctx.executable.plugin]
@@ -98,7 +98,7 @@ _generate_cc = rule(
"well_known_protos" : attr.label(
mandatory = False,
),
- "generate_mock" : attr.bool(
+ "generate_mocks" : attr.bool(
default = False,
mandatory = False,
),
diff --git a/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl
index 662068ad2a..095b1596c8 100644
--- a/bazel/grpc_build_system.bzl
+++ b/bazel/grpc_build_system.bzl
@@ -37,7 +37,9 @@ def _get_external_deps(external_deps):
ret = []
for dep in external_deps:
if dep == "nanopb":
- ret += ["//third_party/nanopb"]
+ ret += ["grpc_nanopb"]
+ elif dep == "address_sorting":
+ ret += ["//third_party/address_sorting"]
elif dep == "cares":
ret += select({"//:grpc_no_ares": [],
"//conditions:default": ["//external:cares"],})
@@ -57,12 +59,6 @@ def _maybe_update_cc_library_hdrs(hdrs):
ret.append(h)
return ret
-def _maybe_update_cc_library_defines(name):
- ret = []
- if name == "alts_proto":
- ret += ["PB_FIELD_16BIT=1"]
- return ret
-
def grpc_cc_library(name, srcs = [], public_hdrs = [], hdrs = [],
external_deps = [], deps = [], standalone = False,
language = "C++", testonly = False, visibility = None,
@@ -70,11 +66,10 @@ def grpc_cc_library(name, srcs = [], public_hdrs = [], hdrs = [],
copts = []
if language.upper() == "C":
copts = if_not_windows(["-std=c99"])
- defines = _maybe_update_cc_library_defines(name)
native.cc_library(
name = name,
srcs = srcs,
- defines = defines + select({"//:grpc_no_ares": ["GRPC_ARES=0"],
+ defines = select({"//:grpc_no_ares": ["GRPC_ARES=0"],
"//conditions:default": [],}) +
select({"//:remote_execution": ["GRPC_PORT_ISOLATED_RUNTIME=1"],
"//conditions:default": [],}) +
@@ -104,7 +99,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 = False,
- has_services = True, use_external = False, generate_mock = False):
+ has_services = True, use_external = False, generate_mocks = False):
cc_grpc_library(
name = name,
srcs = srcs,
@@ -112,10 +107,10 @@ def grpc_proto_library(name, srcs = [], deps = [], well_known_protos = False,
well_known_protos = well_known_protos,
proto_only = not has_services,
use_external = use_external,
- generate_mock = generate_mock,
+ generate_mocks = generate_mocks,
)
-def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++"):
+def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data = [], uses_polling = True, language = "C++", size = "medium", timeout = "moderate"):
copts = []
if language.upper() == "C":
copts = if_not_windows(["-std=c99"])
@@ -127,6 +122,8 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
'deps': deps + _get_external_deps(external_deps),
'copts': copts,
'linkopts': if_not_windows(["-pthread"]),
+ 'size': size,
+ 'timeout': timeout,
}
if uses_polling:
native.cc_test(testonly=True, tags=['manual'], **args)
@@ -137,9 +134,11 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
srcs = [
'//test/core/util:run_with_poller_sh',
],
+ size = size,
+ timeout = timeout,
args = [
poller,
- '$(location %s)' % name
+ '$(location %s)' % name,
] + args['args'],
)
else:
@@ -162,7 +161,23 @@ def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], da
)
def grpc_generate_one_off_targets():
- pass
+ native.cc_library(
+ name = "grpc_nanopb",
+ hdrs = [
+ "//third_party/nanopb:pb.h",
+ "//third_party/nanopb:pb_common.h",
+ "//third_party/nanopb:pb_decode.h",
+ "//third_party/nanopb:pb_encode.h",
+ ],
+ srcs = [
+ "//third_party/nanopb:pb_common.c",
+ "//third_party/nanopb:pb_decode.c",
+ "//third_party/nanopb:pb_encode.c",
+ ],
+ defines = [
+ "PB_FIELD_16BIT=1",
+ ],
+ )
def grpc_sh_test(name, srcs, args = [], data = []):
native.sh_test(
@@ -181,6 +196,7 @@ def grpc_py_binary(name, srcs, data = [], deps = [], external_deps = [], testonl
native.py_binary(
name = name,
srcs = srcs,
+ testonly = testonly,
data = data,
deps = deps + _get_external_deps(external_deps)
)