diff --git a/BUILD b/BUILD index f2db69c46ae..2b79d689320 100644 --- a/BUILD +++ b/BUILD @@ -42,6 +42,11 @@ config_setting( values = {"define": "grpc_no_ares=true"}, ) +config_setting( + name = "grpc_no_xds", + values = {"define": "grpc_no_xds=true"}, +) + config_setting( name = "grpc_allow_exceptions", values = {"define": "GRPC_ALLOW_EXCEPTIONS=1"}, @@ -315,18 +320,27 @@ grpc_cc_library( "src/core/lib/surface/init.cc", "src/core/plugin_registry/grpc_plugin_registry.cc", ], + defines = select({ + "grpc_no_xds": ["GRPC_NO_XDS"], + "//conditions:default": [], + }), language = "c++", public_hdrs = GRPC_PUBLIC_HDRS + GRPC_SECURE_PUBLIC_HDRS, + select_deps = { + "grpc_no_xds": [], + "//conditions:default": [ + "grpc_lb_policy_cds", + "grpc_lb_policy_eds", + "grpc_lb_policy_lrs", + "grpc_lb_policy_xds_routing", + "grpc_resolver_xds", + ], + }, standalone = True, deps = [ "grpc_authorization_engine", "grpc_common", - "grpc_lb_policy_cds", - "grpc_lb_policy_eds", "grpc_lb_policy_grpclb_secure", - "grpc_lb_policy_lrs", - "grpc_lb_policy_xds_routing", - "grpc_resolver_xds", "grpc_secure", "grpc_transport_chttp2_client_secure", "grpc_transport_chttp2_server_secure", diff --git a/bazel/grpc_build_system.bzl b/bazel/grpc_build_system.bzl index ea13f3330c2..34527880a5a 100644 --- a/bazel/grpc_build_system.bzl +++ b/bazel/grpc_build_system.bzl @@ -67,7 +67,9 @@ def grpc_cc_library( public_hdrs = [], hdrs = [], external_deps = [], + defines = [], deps = [], + select_deps = None, standalone = False, language = "C++", testonly = False, @@ -85,10 +87,14 @@ def grpc_cc_library( if use_cfstream: linkopts = linkopts + if_mac(["-framework CoreFoundation"]) + if select_deps: + deps += select(select_deps) + native.cc_library( name = name, srcs = srcs, - defines = select({ + defines = defines + + select({ "//:grpc_no_ares": ["GRPC_ARES=0"], "//conditions:default": [], }) + diff --git a/src/core/plugin_registry/grpc_plugin_registry.cc b/src/core/plugin_registry/grpc_plugin_registry.cc index ef8b10df647..90da88c34ff 100644 --- a/src/core/plugin_registry/grpc_plugin_registry.cc +++ b/src/core/plugin_registry/grpc_plugin_registry.cc @@ -34,18 +34,10 @@ void grpc_resolver_fake_init(void); void grpc_resolver_fake_shutdown(void); void grpc_lb_policy_grpclb_init(void); void grpc_lb_policy_grpclb_shutdown(void); -void grpc_lb_policy_cds_init(void); -void grpc_lb_policy_cds_shutdown(void); -void grpc_lb_policy_eds_init(void); -void grpc_lb_policy_eds_shutdown(void); -void grpc_lb_policy_lrs_init(void); -void grpc_lb_policy_lrs_shutdown(void); void grpc_lb_policy_priority_init(void); void grpc_lb_policy_priority_shutdown(void); void grpc_lb_policy_weighted_target_init(void); void grpc_lb_policy_weighted_target_shutdown(void); -void grpc_lb_policy_xds_routing_init(void); -void grpc_lb_policy_xds_routing_shutdown(void); void grpc_lb_policy_pick_first_init(void); void grpc_lb_policy_pick_first_shutdown(void); void grpc_lb_policy_round_robin_init(void); @@ -56,8 +48,6 @@ void grpc_resolver_dns_native_init(void); void grpc_resolver_dns_native_shutdown(void); void grpc_resolver_sockaddr_init(void); void grpc_resolver_sockaddr_shutdown(void); -void grpc_resolver_xds_init(void); -void grpc_resolver_xds_shutdown(void); void grpc_client_idle_filter_init(void); void grpc_client_idle_filter_shutdown(void); void grpc_max_age_filter_init(void); @@ -71,6 +61,19 @@ void grpc_client_authority_filter_shutdown(void); void grpc_workaround_cronet_compression_filter_init(void); void grpc_workaround_cronet_compression_filter_shutdown(void); +#ifndef GRPC_NO_XDS +void grpc_lb_policy_cds_init(void); +void grpc_lb_policy_cds_shutdown(void); +void grpc_lb_policy_eds_init(void); +void grpc_lb_policy_eds_shutdown(void); +void grpc_lb_policy_lrs_init(void); +void grpc_lb_policy_lrs_shutdown(void); +void grpc_lb_policy_xds_routing_init(void); +void grpc_lb_policy_xds_routing_shutdown(void); +void grpc_resolver_xds_init(void); +void grpc_resolver_xds_shutdown(void); +#endif + void grpc_register_built_in_plugins(void) { grpc_register_plugin(grpc_http_filters_init, grpc_http_filters_shutdown); @@ -86,18 +89,10 @@ void grpc_register_built_in_plugins(void) { grpc_resolver_fake_shutdown); grpc_register_plugin(grpc_lb_policy_grpclb_init, grpc_lb_policy_grpclb_shutdown); - grpc_register_plugin(grpc_lb_policy_cds_init, - grpc_lb_policy_cds_shutdown); - grpc_register_plugin(grpc_lb_policy_eds_init, - grpc_lb_policy_eds_shutdown); - grpc_register_plugin(grpc_lb_policy_lrs_init, - grpc_lb_policy_lrs_shutdown); grpc_register_plugin(grpc_lb_policy_priority_init, grpc_lb_policy_priority_shutdown); grpc_register_plugin(grpc_lb_policy_weighted_target_init, grpc_lb_policy_weighted_target_shutdown); - grpc_register_plugin(grpc_lb_policy_xds_routing_init, - grpc_lb_policy_xds_routing_shutdown); grpc_register_plugin(grpc_lb_policy_pick_first_init, grpc_lb_policy_pick_first_shutdown); grpc_register_plugin(grpc_lb_policy_round_robin_init, @@ -108,8 +103,6 @@ void grpc_register_built_in_plugins(void) { grpc_resolver_dns_native_shutdown); grpc_register_plugin(grpc_resolver_sockaddr_init, grpc_resolver_sockaddr_shutdown); - grpc_register_plugin(grpc_resolver_xds_init, - grpc_resolver_xds_shutdown); grpc_register_plugin(grpc_client_idle_filter_init, grpc_client_idle_filter_shutdown); grpc_register_plugin(grpc_max_age_filter_init, @@ -122,4 +115,16 @@ void grpc_register_built_in_plugins(void) { grpc_client_authority_filter_shutdown); grpc_register_plugin(grpc_workaround_cronet_compression_filter_init, grpc_workaround_cronet_compression_filter_shutdown); +#ifndef GRPC_NO_XDS + grpc_register_plugin(grpc_lb_policy_cds_init, + grpc_lb_policy_cds_shutdown); + grpc_register_plugin(grpc_lb_policy_eds_init, + grpc_lb_policy_eds_shutdown); + grpc_register_plugin(grpc_lb_policy_lrs_init, + grpc_lb_policy_lrs_shutdown); + grpc_register_plugin(grpc_lb_policy_xds_routing_init, + grpc_lb_policy_xds_routing_shutdown); + grpc_register_plugin(grpc_resolver_xds_init, + grpc_resolver_xds_shutdown); +#endif }