Skip to content

Commit d92baa9

Browse files
authored
Expose grpc++_binder through grpc++ (grpc#27891)
A config option is provided so user can pass --define=grpc_no_binder=true to bazel, or passing `-DGRPC_NO_BINDER` to compiler to disable the dependency.
1 parent f2b9600 commit d92baa9

26 files changed

+265
-115
lines changed

BUILD

+39-8
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,17 @@ config_setting(
4949
values = {"define": "grpc_no_xds=true"},
5050
)
5151

52+
# When gRPC is build as shared library, binder transport code might still
53+
# get included even when user's code does not depend on it. In that case
54+
# --define=grpc_no_binder=true can be used to disable binder transport
55+
# related code to reduce binary size.
56+
# For users using build system other than bazel, they can define
57+
# GRPC_NO_BINDER to achieve the same effect.
58+
config_setting(
59+
name = "grpc_no_binder_define",
60+
values = {"define": "grpc_no_binder=true"},
61+
)
62+
5263
config_setting(
5364
name = "android",
5465
values = {"crosstool_top": "//external:android/crosstool"},
@@ -72,6 +83,15 @@ selects.config_setting_group(
7283
],
7384
)
7485

86+
selects.config_setting_group(
87+
name = "grpc_no_binder",
88+
match_any = [
89+
":grpc_no_binder_define",
90+
# We do not need binder on ios.
91+
":ios",
92+
],
93+
)
94+
7595
selects.config_setting_group(
7696
name = "grpc_no_rls",
7797
match_any = [
@@ -452,13 +472,21 @@ grpc_cc_library(
452472
],
453473
language = "c++",
454474
public_hdrs = GRPCXX_PUBLIC_HDRS,
455-
select_deps = [{
456-
"grpc_no_xds": [],
457-
"//conditions:default": [
458-
"grpc++_xds_client",
459-
"grpc++_xds_server",
460-
],
461-
}],
475+
select_deps = [
476+
{
477+
"grpc_no_xds": [],
478+
"//conditions:default": [
479+
"grpc++_xds_client",
480+
"grpc++_xds_server",
481+
],
482+
},
483+
{
484+
"grpc_no_binder": [],
485+
"//conditions:default": [
486+
"grpc++_binder",
487+
],
488+
},
489+
],
462490
standalone = True,
463491
visibility = [
464492
"@grpc:public",
@@ -556,6 +584,10 @@ grpc_cc_library(
556584
"src/core/ext/transport/binder/wire_format/wire_reader_impl.h",
557585
"src/core/ext/transport/binder/wire_format/wire_writer.h",
558586
],
587+
defines = select({
588+
"grpc_no_binder": ["GRPC_NO_BINDER"],
589+
"//conditions:default": [],
590+
}),
559591
external_deps = [
560592
"absl/base:core_headers",
561593
"absl/container:flat_hash_map",
@@ -572,7 +604,6 @@ grpc_cc_library(
572604
"include/grpcpp/create_channel_binder.h",
573605
"include/grpcpp/security/binder_credentials.h",
574606
],
575-
visibility = ["@grpc:public"],
576607
deps = [
577608
"gpr",
578609
"gpr_base",

CMakeLists.txt

+20-34
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build_autogenerated.yaml

+38-70
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/android/binder/java/io/grpc/binder/cpp/exampleclient/BUILD

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ cc_library(
2525
"-Wl,--no-undefined",
2626
],
2727
deps = [
28-
"//:grpc++_binder",
28+
"//:grpc++",
2929
"//examples/protos:helloworld_cc_grpc",
3030
],
3131
alwayslink = True,

examples/android/binder/java/io/grpc/binder/cpp/exampleserver/BUILD

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ cc_library(
2626
],
2727
deps = [
2828
"//:grpc++",
29-
"//:grpc++_binder",
3029
"//examples/protos:helloworld_cc_grpc",
3130
],
3231
alwayslink = True,

0 commit comments

Comments
 (0)