1# gRPC Bazel BUILD file.
2#
3# Copyright 2016 gRPC authors.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17load(
18    "//bazel:grpc_build_system.bzl",
19    "grpc_cc_library",
20    "grpc_generate_one_off_targets",
21    "grpc_upb_proto_library",
22    "grpc_upb_proto_reflection_library",
23    "python_config_settings",
24)
25load("@bazel_skylib//lib:selects.bzl", "selects")
26load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
27
28licenses(["reciprocal"])
29
30package(
31    default_visibility = ["//visibility:public"],
32    features = [
33        "layering_check",
34        "-parse_headers",
35    ],
36)
37
38exports_files([
39    "LICENSE",
40    "etc/roots.pem",
41])
42
43exports_files(
44    glob(["include/**"]),
45    visibility = ["//:__subpackages__"],
46)
47
48config_setting(
49    name = "grpc_no_ares",
50    values = {"define": "grpc_no_ares=true"},
51)
52
53config_setting(
54    name = "grpc_no_xds_define",
55    values = {"define": "grpc_no_xds=true"},
56)
57
58config_setting(
59    name = "grpc_experiments_are_final_define",
60    values = {"define": "grpc_experiments_are_final=true"},
61)
62
63bool_flag(
64    name = "disable_grpc_rls",
65    build_setting_default = False,
66)
67
68config_setting(
69    name = "grpc_no_rls_flag",
70    flag_values = {":disable_grpc_rls": "true"},
71)
72
73# When gRPC is build as shared library, binder transport code might still
74# get included even when user's code does not depend on it. In that case
75# --define=grpc_no_binder=true can be used to disable binder transport
76# related code to reduce binary size.
77# For users using build system other than bazel, they can define
78# GRPC_NO_BINDER to achieve the same effect.
79config_setting(
80    name = "grpc_no_binder_define",
81    values = {"define": "grpc_no_binder=true"},
82)
83
84config_setting(
85    name = "android",
86    values = {"crosstool_top": "//external:android/crosstool"},
87)
88
89config_setting(
90    name = "macos",
91    values = {"apple_platform_type": "macos"},
92)
93
94config_setting(
95    name = "ios",
96    values = {"apple_platform_type": "ios"},
97)
98
99config_setting(
100    name = "tvos",
101    values = {"apple_platform_type": "tvos"},
102)
103
104config_setting(
105    name = "watchos",
106    values = {"apple_platform_type": "watchos"},
107)
108
109config_setting(
110    name = "systemd",
111    values = {"define": "use_systemd=true"},
112)
113
114selects.config_setting_group(
115    name = "grpc_no_xds",
116    match_any = [
117        ":grpc_no_xds_define",
118        # In addition to disabling XDS support when --define=grpc_no_xds=true is
119        # specified, we also disable it on mobile platforms where it is not
120        # likely to be needed and where reducing the binary size is more
121        # important.
122        ":android",
123        ":ios",
124    ],
125)
126
127selects.config_setting_group(
128    name = "grpc_no_binder",
129    match_any = [
130        ":grpc_no_binder_define",
131        # We do not need binder on ios.
132        ":ios",
133    ],
134)
135
136selects.config_setting_group(
137    name = "grpc_no_rls",
138    match_any = [
139        ":grpc_no_rls_flag",
140        # Disable RLS support on mobile platforms where it is not likely to be
141        # needed and where reducing the binary size is more important.
142        ":android",
143        ":ios",
144    ],
145)
146
147selects.config_setting_group(
148    name = "grpc_experiments_are_final",
149    match_any = [
150        ":grpc_experiments_are_final_define",
151        # In addition to disabling experiments when
152        # --define=grpc_experiments_are_final=true is specified, we also disable
153        # them on mobile platforms where runtime configuration of experiments is unlikely to be needed and where
154        # reducing the binary size is more important.
155        ":android",
156        ":ios",
157    ],
158)
159
160# Fuzzers can be built as fuzzers or as tests
161config_setting(
162    name = "grpc_build_fuzzers",
163    values = {"define": "grpc_build_fuzzers=true"},
164)
165
166config_setting(
167    name = "grpc_allow_exceptions",
168    values = {"define": "GRPC_ALLOW_EXCEPTIONS=1"},
169)
170
171config_setting(
172    name = "grpc_disallow_exceptions",
173    values = {"define": "GRPC_ALLOW_EXCEPTIONS=0"},
174)
175
176config_setting(
177    name = "remote_execution",
178    values = {"define": "GRPC_PORT_ISOLATED_RUNTIME=1"},
179)
180
181config_setting(
182    name = "windows",
183    values = {"cpu": "x64_windows"},
184)
185
186config_setting(
187    name = "windows_msvc",
188    values = {"cpu": "x64_windows_msvc"},
189)
190
191config_setting(
192    name = "mac",
193    values = {"cpu": "darwin"},
194)
195
196config_setting(
197    name = "mac_x86_64",
198    values = {"cpu": "darwin_x86_64"},
199)
200
201config_setting(
202    name = "mac_arm64",
203    values = {"cpu": "darwin_arm64"},
204)
205
206config_setting(
207    name = "use_strict_warning",
208    values = {"define": "use_strict_warning=true"},
209)
210
211python_config_settings()
212
213# This should be updated along with build_handwritten.yaml
214g_stands_for = "galvanized"  # @unused
215
216core_version = "33.0.0"  # @unused
217
218version = "1.56.2"  # @unused
219
220GPR_PUBLIC_HDRS = [
221    "include/grpc/support/alloc.h",
222    "include/grpc/support/atm_gcc_atomic.h",
223    "include/grpc/support/atm_gcc_sync.h",
224    "include/grpc/support/atm_windows.h",
225    "include/grpc/support/cpu.h",
226    "include/grpc/support/json.h",
227    "include/grpc/support/log.h",
228    "include/grpc/support/log_windows.h",
229    "include/grpc/support/port_platform.h",
230    "include/grpc/support/string_util.h",
231    "include/grpc/support/sync.h",
232    "include/grpc/support/sync_abseil.h",
233    "include/grpc/support/sync_custom.h",
234    "include/grpc/support/sync_generic.h",
235    "include/grpc/support/sync_posix.h",
236    "include/grpc/support/sync_windows.h",
237    "include/grpc/support/thd_id.h",
238    "include/grpc/support/time.h",
239    "include/grpc/impl/codegen/atm.h",
240    "include/grpc/impl/codegen/atm_gcc_atomic.h",
241    "include/grpc/impl/codegen/atm_gcc_sync.h",
242    "include/grpc/impl/codegen/atm_windows.h",
243    "include/grpc/impl/codegen/fork.h",
244    "include/grpc/impl/codegen/gpr_types.h",
245    "include/grpc/impl/codegen/log.h",
246    "include/grpc/impl/codegen/port_platform.h",
247    "include/grpc/impl/codegen/sync.h",
248    "include/grpc/impl/codegen/sync_abseil.h",
249    "include/grpc/impl/codegen/sync_custom.h",
250    "include/grpc/impl/codegen/sync_generic.h",
251    "include/grpc/impl/codegen/sync_posix.h",
252    "include/grpc/impl/codegen/sync_windows.h",
253]
254
255GRPC_PUBLIC_HDRS = [
256    "include/grpc/grpc_audit_logging.h",
257    "include/grpc/byte_buffer.h",
258    "include/grpc/byte_buffer_reader.h",
259    "include/grpc/compression.h",
260    "include/grpc/fork.h",
261    "include/grpc/grpc.h",
262    "include/grpc/grpc_posix.h",
263    "include/grpc/grpc_security.h",
264    "include/grpc/grpc_security_constants.h",
265    "include/grpc/slice.h",
266    "include/grpc/slice_buffer.h",
267    "include/grpc/status.h",
268    "include/grpc/load_reporting.h",
269    "include/grpc/support/workaround_list.h",
270    "include/grpc/impl/codegen/byte_buffer.h",
271    "include/grpc/impl/codegen/byte_buffer_reader.h",
272    "include/grpc/impl/codegen/compression_types.h",
273    "include/grpc/impl/codegen/connectivity_state.h",
274    "include/grpc/impl/codegen/grpc_types.h",
275    "include/grpc/impl/codegen/propagation_bits.h",
276    "include/grpc/impl/codegen/status.h",
277    "include/grpc/impl/codegen/slice.h",
278    "include/grpc/impl/compression_types.h",
279    "include/grpc/impl/connectivity_state.h",
280    "include/grpc/impl/grpc_types.h",
281    "include/grpc/impl/propagation_bits.h",
282    "include/grpc/impl/slice_type.h",
283]
284
285GRPC_PUBLIC_EVENT_ENGINE_HDRS = [
286    "include/grpc/event_engine/endpoint_config.h",
287    "include/grpc/event_engine/event_engine.h",
288    "include/grpc/event_engine/port.h",
289    "include/grpc/event_engine/memory_allocator.h",
290    "include/grpc/event_engine/memory_request.h",
291    "include/grpc/event_engine/internal/memory_allocator_impl.h",
292    "include/grpc/event_engine/slice.h",
293    "include/grpc/event_engine/slice_buffer.h",
294    "include/grpc/event_engine/internal/slice_cast.h",
295]
296
297GRPCXX_SRCS = [
298    "src/cpp/client/channel_cc.cc",
299    "src/cpp/client/client_callback.cc",
300    "src/cpp/client/client_context.cc",
301    "src/cpp/client/client_interceptor.cc",
302    "src/cpp/client/client_stats_interceptor.cc",
303    "src/cpp/client/create_channel.cc",
304    "src/cpp/client/create_channel_internal.cc",
305    "src/cpp/client/create_channel_posix.cc",
306    "src/cpp/common/alarm.cc",
307    "src/cpp/common/channel_arguments.cc",
308    "src/cpp/common/channel_filter.cc",
309    "src/cpp/common/completion_queue_cc.cc",
310    "src/cpp/common/resource_quota_cc.cc",
311    "src/cpp/common/rpc_method.cc",
312    "src/cpp/common/version_cc.cc",
313    "src/cpp/common/validate_service_config.cc",
314    "src/cpp/server/async_generic_service.cc",
315    "src/cpp/server/channel_argument_option.cc",
316    "src/cpp/server/create_default_thread_pool.cc",
317    "src/cpp/server/external_connection_acceptor_impl.cc",
318    "src/cpp/server/health/default_health_check_service.cc",
319    "src/cpp/server/health/health_check_service.cc",
320    "src/cpp/server/health/health_check_service_server_builder_option.cc",
321    "src/cpp/server/server_builder.cc",
322    "src/cpp/server/server_callback.cc",
323    "src/cpp/server/server_cc.cc",
324    "src/cpp/server/server_context.cc",
325    "src/cpp/server/server_posix.cc",
326    "src/cpp/thread_manager/thread_manager.cc",
327    "src/cpp/util/byte_buffer_cc.cc",
328    "src/cpp/util/string_ref.cc",
329    "src/cpp/util/time_cc.cc",
330]
331
332GRPCXX_HDRS = [
333    "src/cpp/client/create_channel_internal.h",
334    "src/cpp/client/client_stats_interceptor.h",
335    "src/cpp/common/channel_filter.h",
336    "src/cpp/server/dynamic_thread_pool.h",
337    "src/cpp/server/external_connection_acceptor_impl.h",
338    "src/cpp/server/health/default_health_check_service.h",
339    "src/cpp/server/thread_pool_interface.h",
340    "src/cpp/thread_manager/thread_manager.h",
341]
342
343GRPCXX_PUBLIC_HDRS = [
344    "include/grpc++/alarm.h",
345    "include/grpc++/channel.h",
346    "include/grpc++/client_context.h",
347    "include/grpc++/completion_queue.h",
348    "include/grpc++/create_channel.h",
349    "include/grpc++/create_channel_posix.h",
350    "include/grpc++/ext/health_check_service_server_builder_option.h",
351    "include/grpc++/generic/async_generic_service.h",
352    "include/grpc++/generic/generic_stub.h",
353    "include/grpc++/grpc++.h",
354    "include/grpc++/health_check_service_interface.h",
355    "include/grpc++/impl/call.h",
356    "include/grpc++/impl/channel_argument_option.h",
357    "include/grpc++/impl/client_unary_call.h",
358    "include/grpc++/impl/grpc_library.h",
359    "include/grpc++/impl/method_handler_impl.h",
360    "include/grpc++/impl/rpc_method.h",
361    "include/grpc++/impl/rpc_service_method.h",
362    "include/grpc++/impl/serialization_traits.h",
363    "include/grpc++/impl/server_builder_option.h",
364    "include/grpc++/impl/server_builder_plugin.h",
365    "include/grpc++/impl/server_initializer.h",
366    "include/grpc++/impl/service_type.h",
367    "include/grpc++/security/auth_context.h",
368    "include/grpc++/resource_quota.h",
369    "include/grpc++/security/auth_metadata_processor.h",
370    "include/grpc++/security/credentials.h",
371    "include/grpc++/security/server_credentials.h",
372    "include/grpc++/server.h",
373    "include/grpc++/server_builder.h",
374    "include/grpc++/server_context.h",
375    "include/grpc++/server_posix.h",
376    "include/grpc++/support/async_stream.h",
377    "include/grpc++/support/async_unary_call.h",
378    "include/grpc++/support/byte_buffer.h",
379    "include/grpc++/support/channel_arguments.h",
380    "include/grpc++/support/config.h",
381    "include/grpc++/support/slice.h",
382    "include/grpc++/support/status.h",
383    "include/grpc++/support/status_code_enum.h",
384    "include/grpc++/support/string_ref.h",
385    "include/grpc++/support/stub_options.h",
386    "include/grpc++/support/sync_stream.h",
387    "include/grpc++/support/time.h",
388    "include/grpcpp/alarm.h",
389    "include/grpcpp/channel.h",
390    "include/grpcpp/client_context.h",
391    "include/grpcpp/completion_queue.h",
392    "include/grpcpp/create_channel.h",
393    "include/grpcpp/create_channel_posix.h",
394    "include/grpcpp/ext/health_check_service_server_builder_option.h",
395    "include/grpcpp/generic/async_generic_service.h",
396    "include/grpcpp/generic/generic_stub.h",
397    "include/grpcpp/grpcpp.h",
398    "include/grpcpp/health_check_service_interface.h",
399    "include/grpcpp/impl/call_hook.h",
400    "include/grpcpp/impl/call_op_set_interface.h",
401    "include/grpcpp/impl/call_op_set.h",
402    "include/grpcpp/impl/call.h",
403    "include/grpcpp/impl/channel_argument_option.h",
404    "include/grpcpp/impl/channel_interface.h",
405    "include/grpcpp/impl/client_unary_call.h",
406    "include/grpcpp/impl/completion_queue_tag.h",
407    "include/grpcpp/impl/create_auth_context.h",
408    "include/grpcpp/impl/delegating_channel.h",
409    "include/grpcpp/impl/grpc_library.h",
410    "include/grpcpp/impl/intercepted_channel.h",
411    "include/grpcpp/impl/interceptor_common.h",
412    "include/grpcpp/impl/metadata_map.h",
413    "include/grpcpp/impl/method_handler_impl.h",
414    "include/grpcpp/impl/rpc_method.h",
415    "include/grpcpp/impl/rpc_service_method.h",
416    "include/grpcpp/impl/serialization_traits.h",
417    "include/grpcpp/impl/server_builder_option.h",
418    "include/grpcpp/impl/server_builder_plugin.h",
419    "include/grpcpp/impl/server_callback_handlers.h",
420    "include/grpcpp/impl/server_initializer.h",
421    "include/grpcpp/impl/service_type.h",
422    "include/grpcpp/impl/status.h",
423    "include/grpcpp/impl/sync.h",
424    "include/grpcpp/resource_quota.h",
425    "include/grpcpp/security/audit_logging.h",
426    "include/grpcpp/security/auth_context.h",
427    "include/grpcpp/security/auth_metadata_processor.h",
428    "include/grpcpp/security/credentials.h",
429    "include/grpcpp/security/server_credentials.h",
430    "include/grpcpp/security/tls_certificate_provider.h",
431    "include/grpcpp/security/authorization_policy_provider.h",
432    "include/grpcpp/security/tls_certificate_verifier.h",
433    "include/grpcpp/security/tls_credentials_options.h",
434    "include/grpcpp/server.h",
435    "include/grpcpp/server_builder.h",
436    "include/grpcpp/server_context.h",
437    "include/grpcpp/server_interface.h",
438    "include/grpcpp/server_posix.h",
439    "include/grpcpp/version_info.h",
440    "include/grpcpp/support/async_stream.h",
441    "include/grpcpp/support/async_unary_call.h",
442    "include/grpcpp/support/byte_buffer.h",
443    "include/grpcpp/support/callback_common.h",
444    "include/grpcpp/support/channel_arguments.h",
445    "include/grpcpp/support/client_callback.h",
446    "include/grpcpp/support/client_interceptor.h",
447    "include/grpcpp/support/config.h",
448    "include/grpcpp/support/interceptor.h",
449    "include/grpcpp/support/message_allocator.h",
450    "include/grpcpp/support/method_handler.h",
451    "include/grpcpp/support/proto_buffer_reader.h",
452    "include/grpcpp/support/proto_buffer_writer.h",
453    "include/grpcpp/support/server_callback.h",
454    "include/grpcpp/support/server_interceptor.h",
455    "include/grpcpp/support/slice.h",
456    "include/grpcpp/support/status.h",
457    "include/grpcpp/support/status_code_enum.h",
458    "include/grpcpp/support/string_ref.h",
459    "include/grpcpp/support/stub_options.h",
460    "include/grpcpp/support/sync_stream.h",
461    "include/grpcpp/support/time.h",
462    "include/grpcpp/support/validate_service_config.h",
463    "include/grpc++/impl/codegen/async_stream.h",
464    "include/grpc++/impl/codegen/async_unary_call.h",
465    "include/grpc++/impl/codegen/byte_buffer.h",
466    "include/grpc++/impl/codegen/call_hook.h",
467    "include/grpc++/impl/codegen/call.h",
468    "include/grpc++/impl/codegen/channel_interface.h",
469    "include/grpc++/impl/codegen/client_context.h",
470    "include/grpc++/impl/codegen/client_unary_call.h",
471    "include/grpc++/impl/codegen/completion_queue_tag.h",
472    "include/grpc++/impl/codegen/completion_queue.h",
473    "include/grpc++/impl/codegen/config.h",
474    "include/grpc++/impl/codegen/create_auth_context.h",
475    "include/grpc++/impl/codegen/metadata_map.h",
476    "include/grpc++/impl/codegen/method_handler_impl.h",
477    "include/grpc++/impl/codegen/rpc_method.h",
478    "include/grpc++/impl/codegen/rpc_service_method.h",
479    "include/grpc++/impl/codegen/security/auth_context.h",
480    "include/grpc++/impl/codegen/serialization_traits.h",
481    "include/grpc++/impl/codegen/server_context.h",
482    "include/grpc++/impl/codegen/server_interface.h",
483    "include/grpc++/impl/codegen/service_type.h",
484    "include/grpc++/impl/codegen/slice.h",
485    "include/grpc++/impl/codegen/status_code_enum.h",
486    "include/grpc++/impl/codegen/status.h",
487    "include/grpc++/impl/codegen/string_ref.h",
488    "include/grpc++/impl/codegen/stub_options.h",
489    "include/grpc++/impl/codegen/sync_stream.h",
490    "include/grpc++/impl/codegen/time.h",
491    "include/grpcpp/impl/codegen/async_generic_service.h",
492    "include/grpcpp/impl/codegen/async_stream.h",
493    "include/grpcpp/impl/codegen/async_unary_call.h",
494    "include/grpcpp/impl/codegen/byte_buffer.h",
495    "include/grpcpp/impl/codegen/call_hook.h",
496    "include/grpcpp/impl/codegen/call_op_set_interface.h",
497    "include/grpcpp/impl/codegen/call_op_set.h",
498    "include/grpcpp/impl/codegen/call.h",
499    "include/grpcpp/impl/codegen/callback_common.h",
500    "include/grpcpp/impl/codegen/channel_interface.h",
501    "include/grpcpp/impl/codegen/client_callback.h",
502    "include/grpcpp/impl/codegen/client_context.h",
503    "include/grpcpp/impl/codegen/client_interceptor.h",
504    "include/grpcpp/impl/codegen/client_unary_call.h",
505    "include/grpcpp/impl/codegen/completion_queue_tag.h",
506    "include/grpcpp/impl/codegen/completion_queue.h",
507    "include/grpcpp/impl/codegen/config.h",
508    "include/grpcpp/impl/codegen/create_auth_context.h",
509    "include/grpcpp/impl/codegen/delegating_channel.h",
510    "include/grpcpp/impl/codegen/intercepted_channel.h",
511    "include/grpcpp/impl/codegen/interceptor_common.h",
512    "include/grpcpp/impl/codegen/interceptor.h",
513    "include/grpcpp/impl/codegen/message_allocator.h",
514    "include/grpcpp/impl/codegen/metadata_map.h",
515    "include/grpcpp/impl/codegen/method_handler_impl.h",
516    "include/grpcpp/impl/codegen/method_handler.h",
517    "include/grpcpp/impl/codegen/rpc_method.h",
518    "include/grpcpp/impl/codegen/rpc_service_method.h",
519    "include/grpcpp/impl/codegen/security/auth_context.h",
520    "include/grpcpp/impl/codegen/serialization_traits.h",
521    "include/grpcpp/impl/codegen/server_callback_handlers.h",
522    "include/grpcpp/impl/codegen/server_callback.h",
523    "include/grpcpp/impl/codegen/server_context.h",
524    "include/grpcpp/impl/codegen/server_interceptor.h",
525    "include/grpcpp/impl/codegen/server_interface.h",
526    "include/grpcpp/impl/codegen/service_type.h",
527    "include/grpcpp/impl/codegen/slice.h",
528    "include/grpcpp/impl/codegen/status_code_enum.h",
529    "include/grpcpp/impl/codegen/status.h",
530    "include/grpcpp/impl/codegen/string_ref.h",
531    "include/grpcpp/impl/codegen/stub_options.h",
532    "include/grpcpp/impl/codegen/sync_stream.h",
533    "include/grpcpp/impl/codegen/time.h",
534    "include/grpcpp/impl/codegen/sync.h",
535]
536
537grpc_cc_library(
538    name = "grpc_unsecure",
539    srcs = [
540        "//src/core:lib/surface/init.cc",
541        "//src/core:plugin_registry/grpc_plugin_registry.cc",
542        "//src/core:plugin_registry/grpc_plugin_registry_noextra.cc",
543    ],
544    defines = ["GRPC_NO_XDS"],
545    external_deps = [
546        "absl/base:core_headers",
547    ],
548    language = "c++",
549    public_hdrs = GRPC_PUBLIC_HDRS,
550    tags = [
551        "nofixdeps",
552    ],
553    visibility = ["@grpc:public"],
554    deps = [
555        "channel_stack_builder",
556        "config",
557        "exec_ctx",
558        "gpr",
559        "grpc_base",
560        "grpc_client_channel",
561        "grpc_common",
562        "grpc_http_filters",
563        "grpc_security_base",
564        "grpc_trace",
565        "http_connect_handshaker",
566        "iomgr_timer",
567        "//src/core:channel_args",
568        "//src/core:channel_init",
569        "//src/core:channel_stack_type",
570        "//src/core:default_event_engine",
571        "//src/core:experiments",
572        "//src/core:forkable",
573        "//src/core:grpc_authorization_base",
574        "//src/core:init_internally",
575        "//src/core:posix_event_engine_timer_manager",
576        "//src/core:slice",
577        "//src/core:tcp_connect_handshaker",
578    ],
579)
580
581GRPC_XDS_TARGETS = [
582    "//src/core:grpc_lb_policy_cds",
583    "//src/core:grpc_lb_policy_xds_cluster_impl",
584    "//src/core:grpc_lb_policy_xds_cluster_manager",
585    "//src/core:grpc_lb_policy_xds_cluster_resolver",
586    "//src/core:grpc_lb_policy_xds_override_host",
587    "//src/core:grpc_lb_policy_xds_wrr_locality",
588    "//src/core:grpc_lb_policy_ring_hash",
589    "//src/core:grpc_resolver_xds",
590    "//src/core:grpc_resolver_c2p",
591    "//src/core:grpc_xds_server_config_fetcher",
592    "//src/core:grpc_stateful_session_filter",
593
594    # Not xDS-specific but currently only used by xDS.
595    "//src/core:channel_creds_registry_init",
596]
597
598grpc_cc_library(
599    name = "grpc",
600    srcs = [
601        "//src/core:lib/surface/init.cc",
602        "//src/core:plugin_registry/grpc_plugin_registry.cc",
603        "//src/core:plugin_registry/grpc_plugin_registry_extra.cc",
604    ],
605    defines = select({
606        ":grpc_no_xds": ["GRPC_NO_XDS"],
607        "//conditions:default": [],
608    }),
609    external_deps = [
610        "absl/base:core_headers",
611    ],
612    language = "c++",
613    public_hdrs = GRPC_PUBLIC_HDRS,
614    select_deps = [
615        {
616            ":grpc_no_xds": [],
617            "//conditions:default": GRPC_XDS_TARGETS,
618        },
619    ],
620    tags = [
621        "nofixdeps",
622    ],
623    visibility = [
624        "@grpc:public",
625    ],
626    deps = [
627        "channel_stack_builder",
628        "config",
629        "exec_ctx",
630        "gpr",
631        "grpc_alts_credentials",
632        "grpc_base",
633        "grpc_client_channel",
634        "grpc_common",
635        "grpc_credentials_util",
636        "grpc_http_filters",
637        "grpc_jwt_credentials",
638        "grpc_public_hdrs",
639        "grpc_security_base",
640        "grpc_trace",
641        "http_connect_handshaker",
642        "httpcli",
643        "iomgr_timer",
644        "promise",
645        "ref_counted_ptr",
646        "sockaddr_utils",
647        "tsi_base",
648        "uri_parser",
649        "//src/core:channel_args",
650        "//src/core:channel_init",
651        "//src/core:channel_stack_type",
652        "//src/core:default_event_engine",
653        "//src/core:experiments",
654        "//src/core:forkable",
655        "//src/core:grpc_authorization_base",
656        "//src/core:grpc_external_account_credentials",
657        "//src/core:grpc_fake_credentials",
658        "//src/core:grpc_google_default_credentials",
659        "//src/core:grpc_iam_credentials",
660        "//src/core:grpc_insecure_credentials",
661        "//src/core:grpc_local_credentials",
662        "//src/core:grpc_oauth2_credentials",
663        "//src/core:grpc_ssl_credentials",
664        "//src/core:grpc_tls_credentials",
665        "//src/core:grpc_transport_chttp2_alpn",
666        "//src/core:httpcli_ssl_credentials",
667        "//src/core:init_internally",
668        "//src/core:json",
669        "//src/core:posix_event_engine_timer_manager",
670        "//src/core:ref_counted",
671        "//src/core:slice",
672        "//src/core:slice_refcount",
673        "//src/core:tcp_connect_handshaker",
674        "//src/core:useful",
675    ],
676)
677
678grpc_cc_library(
679    name = "gpr",
680    srcs = [
681        "//src/core:lib/gpr/alloc.cc",
682        "//src/core:lib/gpr/android/log.cc",
683        "//src/core:lib/gpr/iphone/cpu.cc",
684        "//src/core:lib/gpr/linux/cpu.cc",
685        "//src/core:lib/gpr/linux/log.cc",
686        "//src/core:lib/gpr/log.cc",
687        "//src/core:lib/gpr/msys/tmpfile.cc",
688        "//src/core:lib/gpr/posix/cpu.cc",
689        "//src/core:lib/gpr/posix/log.cc",
690        "//src/core:lib/gpr/posix/string.cc",
691        "//src/core:lib/gpr/posix/sync.cc",
692        "//src/core:lib/gpr/posix/time.cc",
693        "//src/core:lib/gpr/posix/tmpfile.cc",
694        "//src/core:lib/gpr/string.cc",
695        "//src/core:lib/gpr/sync.cc",
696        "//src/core:lib/gpr/sync_abseil.cc",
697        "//src/core:lib/gpr/time.cc",
698        "//src/core:lib/gpr/time_precise.cc",
699        "//src/core:lib/gpr/windows/cpu.cc",
700        "//src/core:lib/gpr/windows/log.cc",
701        "//src/core:lib/gpr/windows/string.cc",
702        "//src/core:lib/gpr/windows/string_util.cc",
703        "//src/core:lib/gpr/windows/sync.cc",
704        "//src/core:lib/gpr/windows/time.cc",
705        "//src/core:lib/gpr/windows/tmpfile.cc",
706        "//src/core:lib/gpr/wrap_memcpy.cc",
707        "//src/core:lib/gprpp/crash.cc",
708        "//src/core:lib/gprpp/fork.cc",
709        "//src/core:lib/gprpp/host_port.cc",
710        "//src/core:lib/gprpp/mpscq.cc",
711        "//src/core:lib/gprpp/posix/stat.cc",
712        "//src/core:lib/gprpp/posix/thd.cc",
713        "//src/core:lib/gprpp/time_util.cc",
714        "//src/core:lib/gprpp/windows/stat.cc",
715        "//src/core:lib/gprpp/windows/thd.cc",
716    ],
717    hdrs = [
718        "//src/core:lib/gpr/alloc.h",
719        "//src/core:lib/gpr/string.h",
720        "//src/core:lib/gpr/time_precise.h",
721        "//src/core:lib/gpr/tmpfile.h",
722        "//src/core:lib/gprpp/crash.h",
723        "//src/core:lib/gprpp/fork.h",
724        "//src/core:lib/gprpp/host_port.h",
725        "//src/core:lib/gprpp/memory.h",
726        "//src/core:lib/gprpp/mpscq.h",
727        "//src/core:lib/gprpp/stat.h",
728        "//src/core:lib/gprpp/sync.h",
729        "//src/core:lib/gprpp/thd.h",
730        "//src/core:lib/gprpp/time_util.h",
731    ],
732    external_deps = [
733        "absl/base",
734        "absl/base:core_headers",
735        "absl/functional:any_invocable",
736        "absl/memory",
737        "absl/random",
738        "absl/status",
739        "absl/strings",
740        "absl/strings:cord",
741        "absl/strings:str_format",
742        "absl/synchronization",
743        "absl/time:time",
744        "absl/types:optional",
745    ],
746    language = "c++",
747    public_hdrs = GPR_PUBLIC_HDRS,
748    tags = [
749        "nofixdeps",
750    ],
751    visibility = ["@grpc:public"],
752    deps = [
753        "config_vars",
754        "debug_location",
755        "//src/core:construct_destruct",
756        "//src/core:env",
757        "//src/core:event_engine_thread_local",
758        "//src/core:examine_stack",
759        "//src/core:gpr_atm",
760        "//src/core:no_destruct",
761        "//src/core:strerror",
762        "//src/core:tchar",
763        "//src/core:useful",
764    ],
765)
766
767grpc_cc_library(
768    name = "gpr_public_hdrs",
769    hdrs = GPR_PUBLIC_HDRS,
770    external_deps = [
771        "absl/strings",
772        "absl/types:variant",
773    ],
774    tags = [
775        "avoid_dep",
776        "nofixdeps",
777    ],
778)
779
780grpc_cc_library(
781    name = "cpp_impl_of",
782    hdrs = ["//src/core:lib/gprpp/cpp_impl_of.h"],
783    language = "c++",
784)
785
786grpc_cc_library(
787    name = "grpc_common",
788    defines = select({
789        "grpc_no_rls": ["GRPC_NO_RLS"],
790        "//conditions:default": [],
791    }),
792    language = "c++",
793    select_deps = [
794        {
795            "grpc_no_rls": [],
796            "//conditions:default": ["//src/core:grpc_lb_policy_rls"],
797        },
798    ],
799    tags = ["nofixdeps"],
800    deps = [
801        "grpc_base",
802        # standard plugins
803        "census",
804        "//src/core:grpc_backend_metric_filter",
805        "//src/core:grpc_deadline_filter",
806        "//src/core:grpc_client_authority_filter",
807        "//src/core:grpc_lb_policy_grpclb",
808        "//src/core:grpc_lb_policy_outlier_detection",
809        "//src/core:grpc_lb_policy_pick_first",
810        "//src/core:grpc_lb_policy_priority",
811        "//src/core:grpc_lb_policy_round_robin",
812        "//src/core:grpc_lb_policy_weighted_round_robin",
813        "//src/core:grpc_lb_policy_weighted_target",
814        "//src/core:grpc_channel_idle_filter",
815        "//src/core:grpc_message_size_filter",
816        "//src/core:grpc_resolver_binder",
817        "grpc_resolver_dns_ares",
818        "grpc_resolver_fake",
819        "//src/core:grpc_resolver_dns_native",
820        "//src/core:grpc_resolver_sockaddr",
821        "//src/core:grpc_transport_chttp2_client_connector",
822        "//src/core:grpc_transport_chttp2_server",
823        "//src/core:grpc_transport_inproc",
824        "//src/core:grpc_fault_injection_filter",
825        "//src/core:grpc_resolver_dns_plugin",
826    ],
827)
828
829grpc_cc_library(
830    name = "grpc_public_hdrs",
831    hdrs = GRPC_PUBLIC_HDRS,
832    external_deps = [
833        "absl/status:statusor",
834        "absl/strings",
835    ],
836    tags = [
837        "avoid_dep",
838        "nofixdeps",
839    ],
840    deps = ["gpr_public_hdrs"],
841)
842
843grpc_cc_library(
844    name = "grpc++_public_hdrs",
845    hdrs = GRPCXX_PUBLIC_HDRS,
846    external_deps = [
847        "absl/strings:cord",
848        "absl/synchronization",
849        "protobuf_headers",
850        "protobuf",
851    ],
852    tags = [
853        "avoid_dep",
854        "nofixdeps",
855    ],
856    visibility = ["@grpc:public"],
857    deps = [
858        "grpc_public_hdrs",
859        "//src/core:gpr_atm",
860    ],
861)
862
863grpc_cc_library(
864    name = "grpc++",
865    hdrs = [
866        "src/cpp/client/secure_credentials.h",
867        "src/cpp/common/secure_auth_context.h",
868        "src/cpp/server/secure_server_credentials.h",
869    ],
870    external_deps = [
871        "absl/strings:cord",
872    ],
873    language = "c++",
874    public_hdrs = GRPCXX_PUBLIC_HDRS,
875    select_deps = [
876        {
877            ":grpc_no_xds": [],
878            "//conditions:default": [
879                "grpc++_xds_client",
880                "grpc++_xds_server",
881            ],
882        },
883        {
884            "grpc_no_binder": [],
885            "//conditions:default": [
886                "grpc++_binder",
887            ],
888        },
889    ],
890    tags = ["nofixdeps"],
891    visibility = [
892        "@grpc:public",
893    ],
894    deps = [
895        "grpc++_base",
896        "//src/core:gpr_atm",
897        "//src/core:slice",
898    ],
899)
900
901grpc_cc_library(
902    name = "grpc_cronet_hdrs",
903    hdrs = [
904        "include/grpc/grpc_cronet.h",
905    ],
906    deps = [
907        "gpr_public_hdrs",
908        "grpc_base",
909    ],
910)
911
912grpc_cc_library(
913    name = "grpc++_cronet_credentials",
914    srcs = [
915        "src/cpp/client/cronet_credentials.cc",
916    ],
917    hdrs = [
918        "include/grpcpp/security/cronet_credentials.h",
919    ],
920    language = "c++",
921    deps = [
922        "grpc++_base",
923        "grpc_cronet_hdrs",
924        "grpc_public_hdrs",
925    ],
926)
927
928# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
929grpc_cc_library(
930    name = "grpc_authorization_provider",
931    srcs = [
932        "//src/core:lib/security/authorization/grpc_authorization_policy_provider.cc",
933        "//src/core:lib/security/authorization/rbac_translator.cc",
934    ],
935    hdrs = [
936        "//src/core:lib/security/authorization/grpc_authorization_policy_provider.h",
937        "//src/core:lib/security/authorization/rbac_translator.h",
938    ],
939    external_deps = [
940        "absl/base:core_headers",
941        "absl/status",
942        "absl/status:statusor",
943        "absl/strings",
944        "absl/strings:str_format",
945        "absl/types:optional",
946    ],
947    language = "c++",
948    deps = [
949        "gpr",
950        "grpc_base",
951        "grpc_public_hdrs",
952        "grpc_trace",
953        "ref_counted_ptr",
954        "//src/core:error",
955        "//src/core:grpc_audit_logging",
956        "//src/core:grpc_authorization_base",
957        "//src/core:grpc_matchers",
958        "//src/core:grpc_rbac_engine",
959        "//src/core:json",
960        "//src/core:json_reader",
961        "//src/core:slice",
962        "//src/core:slice_refcount",
963        "//src/core:status_helper",
964        "//src/core:useful",
965    ],
966)
967
968# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
969grpc_cc_library(
970    name = "grpc++_authorization_provider",
971    srcs = [
972        "src/cpp/server/authorization_policy_provider.cc",
973    ],
974    hdrs = [
975        "include/grpcpp/security/authorization_policy_provider.h",
976    ],
977    language = "c++",
978    tags = ["nofixdeps"],
979    deps = [
980        "gpr",
981        "grpc++",
982        "grpc++_public_hdrs",
983        "grpc_authorization_provider",
984        "grpc_public_hdrs",
985    ],
986)
987
988# This target pulls in a dependency on RE2 and should not be linked into grpc by default for binary-size reasons.
989grpc_cc_library(
990    name = "grpc_cel_engine",
991    srcs = [
992        "//src/core:lib/security/authorization/cel_authorization_engine.cc",
993    ],
994    hdrs = [
995        "//src/core:lib/security/authorization/cel_authorization_engine.h",
996    ],
997    external_deps = [
998        "absl/container:flat_hash_set",
999        "absl/strings",
1000        "absl/types:optional",
1001        "absl/types:span",
1002        "upb_collections_lib",
1003        "upb_lib",
1004    ],
1005    language = "c++",
1006    deps = [
1007        "envoy_config_rbac_upb",
1008        "google_type_expr_upb",
1009        "gpr",
1010        "grpc_mock_cel",
1011        "//src/core:grpc_authorization_base",
1012    ],
1013)
1014
1015grpc_cc_library(
1016    name = "grpc++_binder",
1017    srcs = [
1018        "//src/core:ext/transport/binder/client/binder_connector.cc",
1019        "//src/core:ext/transport/binder/client/channel_create.cc",
1020        "//src/core:ext/transport/binder/client/channel_create_impl.cc",
1021        "//src/core:ext/transport/binder/client/connection_id_generator.cc",
1022        "//src/core:ext/transport/binder/client/endpoint_binder_pool.cc",
1023        "//src/core:ext/transport/binder/client/jni_utils.cc",
1024        "//src/core:ext/transport/binder/client/security_policy_setting.cc",
1025        "//src/core:ext/transport/binder/security_policy/binder_security_policy.cc",
1026        "//src/core:ext/transport/binder/server/binder_server.cc",
1027        "//src/core:ext/transport/binder/server/binder_server_credentials.cc",
1028        "//src/core:ext/transport/binder/transport/binder_transport.cc",
1029        "//src/core:ext/transport/binder/utils/ndk_binder.cc",
1030        "//src/core:ext/transport/binder/utils/transport_stream_receiver_impl.cc",
1031        "//src/core:ext/transport/binder/wire_format/binder_android.cc",
1032        "//src/core:ext/transport/binder/wire_format/binder_constants.cc",
1033        "//src/core:ext/transport/binder/wire_format/transaction.cc",
1034        "//src/core:ext/transport/binder/wire_format/wire_reader_impl.cc",
1035        "//src/core:ext/transport/binder/wire_format/wire_writer.cc",
1036    ],
1037    hdrs = [
1038        "//src/core:ext/transport/binder/client/binder_connector.h",
1039        "//src/core:ext/transport/binder/client/channel_create_impl.h",
1040        "//src/core:ext/transport/binder/client/connection_id_generator.h",
1041        "//src/core:ext/transport/binder/client/endpoint_binder_pool.h",
1042        "//src/core:ext/transport/binder/client/jni_utils.h",
1043        "//src/core:ext/transport/binder/client/security_policy_setting.h",
1044        "//src/core:ext/transport/binder/server/binder_server.h",
1045        "//src/core:ext/transport/binder/transport/binder_stream.h",
1046        "//src/core:ext/transport/binder/transport/binder_transport.h",
1047        "//src/core:ext/transport/binder/utils/binder_auto_utils.h",
1048        "//src/core:ext/transport/binder/utils/ndk_binder.h",
1049        "//src/core:ext/transport/binder/utils/transport_stream_receiver.h",
1050        "//src/core:ext/transport/binder/utils/transport_stream_receiver_impl.h",
1051        "//src/core:ext/transport/binder/wire_format/binder.h",
1052        "//src/core:ext/transport/binder/wire_format/binder_android.h",
1053        "//src/core:ext/transport/binder/wire_format/binder_constants.h",
1054        "//src/core:ext/transport/binder/wire_format/transaction.h",
1055        "//src/core:ext/transport/binder/wire_format/wire_reader.h",
1056        "//src/core:ext/transport/binder/wire_format/wire_reader_impl.h",
1057        "//src/core:ext/transport/binder/wire_format/wire_writer.h",
1058    ],
1059    defines = select({
1060        "grpc_no_binder": ["GRPC_NO_BINDER"],
1061        "//conditions:default": [],
1062    }),
1063    external_deps = [
1064        "absl/base:core_headers",
1065        "absl/cleanup",
1066        "absl/container:flat_hash_map",
1067        "absl/functional:any_invocable",
1068        "absl/hash",
1069        "absl/memory",
1070        "absl/meta:type_traits",
1071        "absl/status",
1072        "absl/status:statusor",
1073        "absl/strings",
1074        "absl/synchronization",
1075        "absl/time",
1076        "absl/types:variant",
1077    ],
1078    language = "c++",
1079    public_hdrs = [
1080        "include/grpcpp/security/binder_security_policy.h",
1081        "include/grpcpp/create_channel_binder.h",
1082        "include/grpcpp/security/binder_credentials.h",
1083    ],
1084    tags = ["nofixdeps"],
1085    deps = [
1086        "config",
1087        "debug_location",
1088        "exec_ctx",
1089        "gpr",
1090        "gpr_platform",
1091        "grpc",
1092        "grpc++_base",
1093        "grpc_base",
1094        "grpc_client_channel",
1095        "grpc_public_hdrs",
1096        "orphanable",
1097        "ref_counted_ptr",
1098        "//src/core:arena",
1099        "//src/core:channel_args",
1100        "//src/core:channel_args_preconditioning",
1101        "//src/core:channel_stack_type",
1102        "//src/core:default_event_engine",
1103        "//src/core:iomgr_fwd",
1104        "//src/core:iomgr_port",
1105        "//src/core:slice",
1106        "//src/core:slice_refcount",
1107        "//src/core:status_helper",
1108        "//src/core:transport_fwd",
1109    ],
1110)
1111
1112grpc_cc_library(
1113    name = "grpc++_xds_client",
1114    srcs = [
1115        "src/cpp/client/xds_credentials.cc",
1116    ],
1117    hdrs = [
1118        "src/cpp/client/secure_credentials.h",
1119    ],
1120    external_deps = ["absl/strings"],
1121    language = "c++",
1122    deps = [
1123        "exec_ctx",
1124        "gpr",
1125        "grpc",
1126        "grpc++_base",
1127        "grpc_base",
1128        "grpc_public_hdrs",
1129        "grpc_security_base",
1130    ],
1131)
1132
1133grpc_cc_library(
1134    name = "grpc++_xds_server",
1135    srcs = [
1136        "src/cpp/server/xds_server_credentials.cc",
1137    ],
1138    hdrs = [
1139        "src/cpp/server/secure_server_credentials.h",
1140    ],
1141    language = "c++",
1142    public_hdrs = [
1143        "include/grpcpp/xds_server_builder.h",
1144    ],
1145    visibility = ["@grpc:xds"],
1146    deps = [
1147        "gpr",
1148        "grpc",
1149        "grpc++_base",
1150    ],
1151)
1152
1153grpc_cc_library(
1154    name = "grpc++_unsecure",
1155    srcs = [
1156        "src/cpp/client/insecure_credentials.cc",
1157        "src/cpp/common/insecure_create_auth_context.cc",
1158        "src/cpp/server/insecure_server_credentials.cc",
1159    ],
1160    language = "c++",
1161    tags = [
1162        "avoid_dep",
1163        "nofixdeps",
1164    ],
1165    visibility = ["@grpc:public"],
1166    deps = [
1167        "gpr",
1168        "grpc++_base_unsecure",
1169        "grpc++_codegen_proto",
1170        "grpc_public_hdrs",
1171        "grpc_unsecure",
1172        "//src/core:grpc_insecure_credentials",
1173    ],
1174)
1175
1176grpc_cc_library(
1177    name = "grpc++_error_details",
1178    srcs = [
1179        "src/cpp/util/error_details.cc",
1180    ],
1181    hdrs = [
1182        "include/grpc++/support/error_details.h",
1183        "include/grpcpp/support/error_details.h",
1184    ],
1185    language = "c++",
1186    standalone = True,
1187    visibility = ["@grpc:public"],
1188    deps = ["grpc++"],
1189)
1190
1191grpc_cc_library(
1192    name = "grpc++_alts",
1193    srcs = [
1194        "src/cpp/common/alts_context.cc",
1195        "src/cpp/common/alts_util.cc",
1196    ],
1197    hdrs = [
1198        "include/grpcpp/security/alts_context.h",
1199        "include/grpcpp/security/alts_util.h",
1200    ],
1201    external_deps = [
1202        "upb_collections_lib",
1203        "upb_lib",
1204    ],
1205    language = "c++",
1206    standalone = True,
1207    visibility = ["@grpc:public"],
1208    deps = [
1209        "alts_upb",
1210        "gpr",
1211        "grpc++",
1212        "grpc_base",
1213        "tsi_alts_credentials",
1214    ],
1215)
1216
1217grpc_cc_library(
1218    name = "census",
1219    srcs = [
1220        "//src/core:ext/filters/census/grpc_context.cc",
1221    ],
1222    language = "c++",
1223    public_hdrs = [
1224        "include/grpc/census.h",
1225    ],
1226    visibility = ["@grpc:public"],
1227    deps = [
1228        "gpr",
1229        "grpc_base",
1230        "grpc_public_hdrs",
1231        "grpc_trace",
1232        "legacy_context",
1233    ],
1234)
1235
1236# A library that vends only port_platform, so that libraries that don't need
1237# anything else from gpr can still be portable!
1238grpc_cc_library(
1239    name = "gpr_platform",
1240    language = "c++",
1241    public_hdrs = [
1242        "include/grpc/impl/codegen/port_platform.h",
1243        "include/grpc/support/port_platform.h",
1244    ],
1245)
1246
1247grpc_cc_library(
1248    name = "event_engine_base_hdrs",
1249    hdrs = GRPC_PUBLIC_EVENT_ENGINE_HDRS + GRPC_PUBLIC_HDRS,
1250    external_deps = [
1251        "absl/status",
1252        "absl/status:statusor",
1253        "absl/time",
1254        "absl/types:optional",
1255        "absl/functional:any_invocable",
1256    ],
1257    tags = [
1258        "nofixdeps",
1259    ],
1260    deps = [
1261        "gpr",
1262    ],
1263)
1264
1265grpc_cc_library(
1266    name = "grpc_base",
1267    srcs = [
1268        "//src/core:lib/channel/call_tracer.cc",
1269        "//src/core:lib/channel/channel_stack.cc",
1270        "//src/core:lib/channel/channel_stack_builder_impl.cc",
1271        "//src/core:lib/channel/channel_trace.cc",
1272        "//src/core:lib/channel/channelz.cc",
1273        "//src/core:lib/channel/channelz_registry.cc",
1274        "//src/core:lib/channel/connected_channel.cc",
1275        "//src/core:lib/channel/promise_based_filter.cc",
1276        "//src/core:lib/channel/server_call_tracer_filter.cc",
1277        "//src/core:lib/channel/status_util.cc",
1278        "//src/core:lib/compression/compression.cc",
1279        "//src/core:lib/compression/compression_internal.cc",
1280        "//src/core:lib/compression/message_compress.cc",
1281        "//src/core:lib/iomgr/call_combiner.cc",
1282        "//src/core:lib/iomgr/cfstream_handle.cc",
1283        "//src/core:lib/iomgr/dualstack_socket_posix.cc",
1284        "//src/core:lib/iomgr/endpoint.cc",
1285        "//src/core:lib/iomgr/endpoint_cfstream.cc",
1286        "//src/core:lib/iomgr/endpoint_pair_posix.cc",
1287        "//src/core:lib/iomgr/endpoint_pair_windows.cc",
1288        "//src/core:lib/iomgr/error_cfstream.cc",
1289        "//src/core:lib/iomgr/ev_apple.cc",
1290        "//src/core:lib/iomgr/ev_epoll1_linux.cc",
1291        "//src/core:lib/iomgr/ev_poll_posix.cc",
1292        "//src/core:lib/iomgr/ev_posix.cc",
1293        "//src/core:lib/iomgr/ev_windows.cc",
1294        "//src/core:lib/iomgr/fork_posix.cc",
1295        "//src/core:lib/iomgr/fork_windows.cc",
1296        "//src/core:lib/iomgr/gethostname_fallback.cc",
1297        "//src/core:lib/iomgr/gethostname_host_name_max.cc",
1298        "//src/core:lib/iomgr/gethostname_sysconf.cc",
1299        "//src/core:lib/iomgr/iocp_windows.cc",
1300        "//src/core:lib/iomgr/iomgr.cc",
1301        "//src/core:lib/iomgr/iomgr_posix.cc",
1302        "//src/core:lib/iomgr/iomgr_posix_cfstream.cc",
1303        "//src/core:lib/iomgr/iomgr_windows.cc",
1304        "//src/core:lib/iomgr/load_file.cc",
1305        "//src/core:lib/iomgr/lockfree_event.cc",
1306        "//src/core:lib/iomgr/polling_entity.cc",
1307        "//src/core:lib/iomgr/pollset.cc",
1308        "//src/core:lib/iomgr/pollset_set_windows.cc",
1309        "//src/core:lib/iomgr/pollset_windows.cc",
1310        "//src/core:lib/iomgr/resolve_address.cc",
1311        "//src/core:lib/iomgr/resolve_address_posix.cc",
1312        "//src/core:lib/iomgr/resolve_address_windows.cc",
1313        "//src/core:lib/iomgr/socket_factory_posix.cc",
1314        "//src/core:lib/iomgr/socket_utils_common_posix.cc",
1315        "//src/core:lib/iomgr/socket_utils_linux.cc",
1316        "//src/core:lib/iomgr/socket_utils_posix.cc",
1317        "//src/core:lib/iomgr/socket_windows.cc",
1318        "//src/core:lib/iomgr/systemd_utils.cc",
1319        "//src/core:lib/iomgr/tcp_client.cc",
1320        "//src/core:lib/iomgr/tcp_client_cfstream.cc",
1321        "//src/core:lib/iomgr/tcp_client_posix.cc",
1322        "//src/core:lib/iomgr/tcp_client_windows.cc",
1323        "//src/core:lib/iomgr/tcp_posix.cc",
1324        "//src/core:lib/iomgr/tcp_server.cc",
1325        "//src/core:lib/iomgr/tcp_server_posix.cc",
1326        "//src/core:lib/iomgr/tcp_server_utils_posix_common.cc",
1327        "//src/core:lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
1328        "//src/core:lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
1329        "//src/core:lib/iomgr/tcp_server_windows.cc",
1330        "//src/core:lib/iomgr/tcp_windows.cc",
1331        "//src/core:lib/iomgr/unix_sockets_posix.cc",
1332        "//src/core:lib/iomgr/unix_sockets_posix_noop.cc",
1333        "//src/core:lib/iomgr/wakeup_fd_eventfd.cc",
1334        "//src/core:lib/iomgr/wakeup_fd_nospecial.cc",
1335        "//src/core:lib/iomgr/wakeup_fd_pipe.cc",
1336        "//src/core:lib/iomgr/wakeup_fd_posix.cc",
1337        "//src/core:lib/resource_quota/api.cc",
1338        "//src/core:lib/slice/b64.cc",
1339        "//src/core:lib/surface/api_trace.cc",
1340        "//src/core:lib/surface/builtins.cc",
1341        "//src/core:lib/surface/byte_buffer.cc",
1342        "//src/core:lib/surface/byte_buffer_reader.cc",
1343        "//src/core:lib/surface/call.cc",
1344        "//src/core:lib/surface/call_details.cc",
1345        "//src/core:lib/surface/call_log_batch.cc",
1346        "//src/core:lib/surface/call_trace.cc",
1347        "//src/core:lib/surface/channel.cc",
1348        "//src/core:lib/surface/channel_ping.cc",
1349        "//src/core:lib/surface/completion_queue.cc",
1350        "//src/core:lib/surface/completion_queue_factory.cc",
1351        "//src/core:lib/surface/event_string.cc",
1352        "//src/core:lib/surface/lame_client.cc",
1353        "//src/core:lib/surface/metadata_array.cc",
1354        "//src/core:lib/surface/server.cc",
1355        "//src/core:lib/surface/validate_metadata.cc",
1356        "//src/core:lib/surface/version.cc",
1357        "//src/core:lib/transport/batch_builder.cc",
1358        "//src/core:lib/transport/connectivity_state.cc",
1359        "//src/core:lib/transport/error_utils.cc",
1360        "//src/core:lib/transport/metadata_batch.cc",
1361        "//src/core:lib/transport/parsed_metadata.cc",
1362        "//src/core:lib/transport/status_conversion.cc",
1363        "//src/core:lib/transport/timeout_encoding.cc",
1364        "//src/core:lib/transport/transport.cc",
1365        "//src/core:lib/transport/transport_op_string.cc",
1366    ] +
1367    # TODO(vigneshbabu): remove these
1368    # These headers used to be vended by this target, but they have to be
1369    # removed after landing EventEngine.
1370    [
1371        "//src/core:lib/iomgr/event_engine_shims/closure.cc",
1372        "//src/core:lib/iomgr/event_engine_shims/endpoint.cc",
1373        "//src/core:lib/iomgr/event_engine_shims/tcp_client.cc",
1374    ],
1375    hdrs = [
1376        "//src/core:lib/channel/call_finalization.h",
1377        "//src/core:lib/channel/call_tracer.h",
1378        "//src/core:lib/channel/channel_stack.h",
1379        "//src/core:lib/channel/channel_stack_builder_impl.h",
1380        "//src/core:lib/channel/channel_trace.h",
1381        "//src/core:lib/channel/channelz.h",
1382        "//src/core:lib/channel/channelz_registry.h",
1383        "//src/core:lib/channel/connected_channel.h",
1384        "//src/core:lib/channel/promise_based_filter.h",
1385        "//src/core:lib/channel/status_util.h",
1386        "//src/core:lib/compression/compression_internal.h",
1387        "//src/core:lib/compression/message_compress.h",
1388        "//src/core:lib/iomgr/block_annotate.h",
1389        "//src/core:lib/iomgr/call_combiner.h",
1390        "//src/core:lib/iomgr/cfstream_handle.h",
1391        "//src/core:lib/iomgr/dynamic_annotations.h",
1392        "//src/core:lib/iomgr/endpoint.h",
1393        "//src/core:lib/iomgr/endpoint_cfstream.h",
1394        "//src/core:lib/iomgr/endpoint_pair.h",
1395        "//src/core:lib/iomgr/error_cfstream.h",
1396        "//src/core:lib/iomgr/ev_apple.h",
1397        "//src/core:lib/iomgr/ev_epoll1_linux.h",
1398        "//src/core:lib/iomgr/ev_poll_posix.h",
1399        "//src/core:lib/iomgr/ev_posix.h",
1400        "//src/core:lib/iomgr/gethostname.h",
1401        "//src/core:lib/iomgr/iocp_windows.h",
1402        "//src/core:lib/iomgr/iomgr.h",
1403        "//src/core:lib/iomgr/load_file.h",
1404        "//src/core:lib/iomgr/lockfree_event.h",
1405        "//src/core:lib/iomgr/nameser.h",
1406        "//src/core:lib/iomgr/polling_entity.h",
1407        "//src/core:lib/iomgr/pollset.h",
1408        "//src/core:lib/iomgr/pollset_set_windows.h",
1409        "//src/core:lib/iomgr/pollset_windows.h",
1410        "//src/core:lib/iomgr/python_util.h",
1411        "//src/core:lib/iomgr/resolve_address.h",
1412        "//src/core:lib/iomgr/resolve_address_impl.h",
1413        "//src/core:lib/iomgr/resolve_address_posix.h",
1414        "//src/core:lib/iomgr/resolve_address_windows.h",
1415        "//src/core:lib/iomgr/sockaddr.h",
1416        "//src/core:lib/iomgr/sockaddr_posix.h",
1417        "//src/core:lib/iomgr/sockaddr_windows.h",
1418        "//src/core:lib/iomgr/socket_factory_posix.h",
1419        "//src/core:lib/iomgr/socket_utils_posix.h",
1420        "//src/core:lib/iomgr/socket_windows.h",
1421        "//src/core:lib/iomgr/systemd_utils.h",
1422        "//src/core:lib/iomgr/tcp_client.h",
1423        "//src/core:lib/iomgr/tcp_client_posix.h",
1424        "//src/core:lib/iomgr/tcp_posix.h",
1425        "//src/core:lib/iomgr/tcp_server.h",
1426        "//src/core:lib/iomgr/tcp_server_utils_posix.h",
1427        "//src/core:lib/iomgr/tcp_windows.h",
1428        "//src/core:lib/iomgr/unix_sockets_posix.h",
1429        "//src/core:lib/iomgr/wakeup_fd_pipe.h",
1430        "//src/core:lib/iomgr/wakeup_fd_posix.h",
1431        "//src/core:lib/resource_quota/api.h",
1432        "//src/core:lib/slice/b64.h",
1433        "//src/core:lib/surface/api_trace.h",
1434        "//src/core:lib/surface/builtins.h",
1435        "//src/core:lib/surface/call.h",
1436        "//src/core:lib/surface/call_test_only.h",
1437        "//src/core:lib/surface/call_trace.h",
1438        "//src/core:lib/surface/channel.h",
1439        "//src/core:lib/surface/completion_queue.h",
1440        "//src/core:lib/surface/completion_queue_factory.h",
1441        "//src/core:lib/surface/event_string.h",
1442        "//src/core:lib/surface/init.h",
1443        "//src/core:lib/surface/lame_client.h",
1444        "//src/core:lib/surface/server.h",
1445        "//src/core:lib/surface/validate_metadata.h",
1446        "//src/core:lib/transport/batch_builder.h",
1447        "//src/core:lib/transport/connectivity_state.h",
1448        "//src/core:lib/transport/custom_metadata.h",
1449        "//src/core:lib/transport/error_utils.h",
1450        "//src/core:lib/transport/metadata_batch.h",
1451        "//src/core:lib/transport/parsed_metadata.h",
1452        "//src/core:lib/transport/simple_slice_based_metadata.h",
1453        "//src/core:lib/transport/status_conversion.h",
1454        "//src/core:lib/transport/timeout_encoding.h",
1455        "//src/core:lib/transport/transport.h",
1456        "//src/core:lib/transport/transport_impl.h",
1457    ] +
1458    # TODO(vigneshbabu): remove these
1459    # These headers used to be vended by this target, but they have to be
1460    # removed after landing EventEngine.
1461    [
1462        "//src/core:lib/iomgr/event_engine_shims/closure.h",
1463        "//src/core:lib/iomgr/event_engine_shims/endpoint.h",
1464        "//src/core:lib/iomgr/event_engine_shims/tcp_client.h",
1465    ],
1466    defines = select({
1467        "systemd": ["HAVE_LIBSYSTEMD"],
1468        "//conditions:default": [],
1469    }),
1470    external_deps = [
1471        "absl/base:core_headers",
1472        "absl/cleanup",
1473        "absl/container:flat_hash_map",
1474        "absl/container:inlined_vector",
1475        "absl/functional:any_invocable",
1476        "absl/functional:function_ref",
1477        "absl/meta:type_traits",
1478        "absl/status",
1479        "absl/status:statusor",
1480        "absl/strings",
1481        "absl/strings:str_format",
1482        "absl/time",
1483        "absl/types:optional",
1484        "absl/types:variant",
1485        "absl/utility",
1486        "madler_zlib",
1487    ],
1488    language = "c++",
1489    linkopts = select({
1490        "systemd": ["-lsystemd"],
1491        "//conditions:default": [],
1492    }),
1493    public_hdrs = GRPC_PUBLIC_HDRS + GRPC_PUBLIC_EVENT_ENGINE_HDRS,
1494    visibility = ["@grpc:alt_grpc_base_legacy"],
1495    deps = [
1496        "channel_stack_builder",
1497        "config",
1498        "config_vars",
1499        "cpp_impl_of",
1500        "debug_location",
1501        "exec_ctx",
1502        "gpr",
1503        "grpc_public_hdrs",
1504        "grpc_trace",
1505        "iomgr_buffer_list",
1506        "iomgr_internal_errqueue",
1507        "iomgr_timer",
1508        "legacy_context",
1509        "orphanable",
1510        "parse_address",
1511        "promise",
1512        "ref_counted_ptr",
1513        "sockaddr_utils",
1514        "stats",
1515        "uri_parser",
1516        "work_serializer",
1517        "//src/core:1999",
1518        "//src/core:activity",
1519        "//src/core:arena",
1520        "//src/core:arena_promise",
1521        "//src/core:atomic_utils",
1522        "//src/core:basic_join",
1523        "//src/core:basic_seq",
1524        "//src/core:bitset",
1525        "//src/core:cancel_callback",
1526        "//src/core:channel_args",
1527        "//src/core:channel_args_endpoint_config",
1528        "//src/core:channel_args_preconditioning",
1529        "//src/core:channel_fwd",
1530        "//src/core:channel_init",
1531        "//src/core:channel_stack_type",
1532        "//src/core:chunked_vector",
1533        "//src/core:closure",
1534        "//src/core:construct_destruct",
1535        "//src/core:context",
1536        "//src/core:default_event_engine",
1537        "//src/core:dual_ref_counted",
1538        "//src/core:error",
1539        "//src/core:event_engine_common",
1540        "//src/core:event_engine_memory_allocator_factory",
1541        "//src/core:event_engine_shim",
1542        "//src/core:event_engine_tcp_socket_utils",
1543        "//src/core:event_engine_trace",
1544        "//src/core:event_log",
1545        "//src/core:experiments",
1546        "//src/core:for_each",
1547        "//src/core:gpr_atm",
1548        "//src/core:gpr_manual_constructor",
1549        "//src/core:gpr_spinlock",
1550        "//src/core:grpc_sockaddr",
1551        "//src/core:http2_errors",
1552        "//src/core:if",
1553        "//src/core:init_internally",
1554        "//src/core:iomgr_fwd",
1555        "//src/core:iomgr_port",
1556        "//src/core:json",
1557        "//src/core:json_writer",
1558        "//src/core:latch",
1559        "//src/core:loop",
1560        "//src/core:map",
1561        "//src/core:match",
1562        "//src/core:memory_quota",
1563        "//src/core:metadata_compression_traits",
1564        "//src/core:no_destruct",
1565        "//src/core:notification",
1566        "//src/core:packed_table",
1567        "//src/core:per_cpu",
1568        "//src/core:pipe",
1569        "//src/core:poll",
1570        "//src/core:pollset_set",
1571        "//src/core:posix_event_engine_base_hdrs",
1572        "//src/core:promise_status",
1573        "//src/core:race",
1574        "//src/core:ref_counted",
1575        "//src/core:resolved_address",
1576        "//src/core:resource_quota",
1577        "//src/core:resource_quota_trace",
1578        "//src/core:seq",
1579        "//src/core:slice",
1580        "//src/core:slice_buffer",
1581        "//src/core:slice_cast",
1582        "//src/core:slice_refcount",
1583        "//src/core:socket_mutator",
1584        "//src/core:stats_data",
1585        "//src/core:status_helper",
1586        "//src/core:strerror",
1587        "//src/core:thread_quota",
1588        "//src/core:time",
1589        "//src/core:transport_fwd",
1590        "//src/core:try_join",
1591        "//src/core:try_seq",
1592        "//src/core:useful",
1593        "//src/core:windows_event_engine",
1594        "//src/core:windows_event_engine_listener",
1595    ],
1596)
1597
1598grpc_cc_library(
1599    name = "legacy_context",
1600    hdrs = [
1601        "//src/core:lib/channel/context.h",
1602    ],
1603    language = "c++",
1604    visibility = ["@grpc:alt_grpc_base_legacy"],
1605    deps = [
1606        "gpr_platform",
1607        "//src/core:context",
1608    ],
1609)
1610
1611grpc_cc_library(
1612    name = "lb_load_data_store",
1613    srcs = [
1614        "src/cpp/server/load_reporter/load_data_store.cc",
1615    ],
1616    hdrs = [
1617        "src/cpp/server/load_reporter/constants.h",
1618        "src/cpp/server/load_reporter/load_data_store.h",
1619    ],
1620    language = "c++",
1621    deps = [
1622        "gpr",
1623        "gpr_platform",
1624        "grpc++",
1625        "//src/core:grpc_sockaddr",
1626    ],
1627)
1628
1629grpc_cc_library(
1630    name = "lb_server_load_reporting_service_server_builder_plugin",
1631    srcs = [
1632        "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.cc",
1633    ],
1634    hdrs = [
1635        "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.h",
1636    ],
1637    language = "c++",
1638    deps = [
1639        "gpr_platform",
1640        "grpc++",
1641        "lb_load_reporter_service",
1642    ],
1643)
1644
1645grpc_cc_library(
1646    name = "grpcpp_server_load_reporting",
1647    srcs = [
1648        "src/cpp/server/load_reporter/load_reporting_service_server_builder_option.cc",
1649        "src/cpp/server/load_reporter/util.cc",
1650    ],
1651    language = "c++",
1652    public_hdrs = [
1653        "include/grpcpp/ext/server_load_reporting.h",
1654    ],
1655    tags = ["nofixdeps"],
1656    deps = [
1657        "gpr",
1658        "gpr_platform",
1659        "grpc",
1660        "grpc++",
1661        "grpc++_public_hdrs",
1662        "grpc_public_hdrs",
1663        "lb_server_load_reporting_service_server_builder_plugin",
1664        "//src/core:lb_server_load_reporting_filter",
1665    ],
1666)
1667
1668grpc_cc_library(
1669    name = "lb_load_reporter_service",
1670    srcs = [
1671        "src/cpp/server/load_reporter/load_reporter_async_service_impl.cc",
1672    ],
1673    hdrs = [
1674        "src/cpp/server/load_reporter/load_reporter_async_service_impl.h",
1675    ],
1676    external_deps = [
1677        "absl/memory",
1678        "protobuf_headers",
1679    ],
1680    language = "c++",
1681    tags = ["nofixdeps"],
1682    deps = [
1683        "gpr",
1684        "grpc++",
1685        "lb_load_reporter",
1686    ],
1687)
1688
1689grpc_cc_library(
1690    name = "lb_get_cpu_stats",
1691    srcs = [
1692        "src/cpp/server/load_reporter/get_cpu_stats_linux.cc",
1693        "src/cpp/server/load_reporter/get_cpu_stats_macos.cc",
1694        "src/cpp/server/load_reporter/get_cpu_stats_unsupported.cc",
1695        "src/cpp/server/load_reporter/get_cpu_stats_windows.cc",
1696    ],
1697    hdrs = [
1698        "src/cpp/server/load_reporter/get_cpu_stats.h",
1699    ],
1700    language = "c++",
1701    deps = [
1702        "gpr",
1703        "gpr_platform",
1704    ],
1705)
1706
1707grpc_cc_library(
1708    name = "lb_load_reporter",
1709    srcs = [
1710        "src/cpp/server/load_reporter/load_reporter.cc",
1711    ],
1712    hdrs = [
1713        "src/cpp/server/load_reporter/constants.h",
1714        "src/cpp/server/load_reporter/load_reporter.h",
1715    ],
1716    external_deps = [
1717        "opencensus-stats",
1718        "opencensus-tags",
1719        "protobuf_headers",
1720    ],
1721    language = "c++",
1722    tags = ["nofixdeps"],
1723    deps = [
1724        "gpr",
1725        "lb_get_cpu_stats",
1726        "lb_load_data_store",
1727        "//src/proto/grpc/lb/v1:load_reporter_proto",
1728    ],
1729)
1730
1731grpc_cc_library(
1732    name = "grpc_security_base",
1733    srcs = [
1734        "//src/core:lib/security/context/security_context.cc",
1735        "//src/core:lib/security/credentials/call_creds_util.cc",
1736        "//src/core:lib/security/credentials/composite/composite_credentials.cc",
1737        "//src/core:lib/security/credentials/credentials.cc",
1738        "//src/core:lib/security/credentials/plugin/plugin_credentials.cc",
1739        "//src/core:lib/security/security_connector/security_connector.cc",
1740        "//src/core:lib/security/transport/client_auth_filter.cc",
1741        "//src/core:lib/security/transport/secure_endpoint.cc",
1742        "//src/core:lib/security/transport/security_handshaker.cc",
1743        "//src/core:lib/security/transport/server_auth_filter.cc",
1744        "//src/core:lib/security/transport/tsi_error.cc",
1745    ],
1746    hdrs = [
1747        "//src/core:lib/security/context/security_context.h",
1748        "//src/core:lib/security/credentials/call_creds_util.h",
1749        "//src/core:lib/security/credentials/composite/composite_credentials.h",
1750        "//src/core:lib/security/credentials/credentials.h",
1751        "//src/core:lib/security/credentials/plugin/plugin_credentials.h",
1752        "//src/core:lib/security/security_connector/security_connector.h",
1753        "//src/core:lib/security/transport/auth_filters.h",
1754        "//src/core:lib/security/transport/secure_endpoint.h",
1755        "//src/core:lib/security/transport/security_handshaker.h",
1756        "//src/core:lib/security/transport/tsi_error.h",
1757    ],
1758    external_deps = [
1759        "absl/base:core_headers",
1760        "absl/container:inlined_vector",
1761        "absl/status",
1762        "absl/status:statusor",
1763        "absl/strings",
1764        "absl/types:optional",
1765    ],
1766    language = "c++",
1767    public_hdrs = GRPC_PUBLIC_HDRS,
1768    visibility = ["@grpc:public"],
1769    deps = [
1770        "config",
1771        "debug_location",
1772        "exec_ctx",
1773        "gpr",
1774        "grpc_base",
1775        "grpc_public_hdrs",
1776        "grpc_trace",
1777        "handshaker",
1778        "legacy_context",
1779        "promise",
1780        "ref_counted_ptr",
1781        "stats",
1782        "tsi_base",
1783        "//src/core:activity",
1784        "//src/core:arena",
1785        "//src/core:arena_promise",
1786        "//src/core:basic_seq",
1787        "//src/core:channel_args",
1788        "//src/core:channel_fwd",
1789        "//src/core:closure",
1790        "//src/core:context",
1791        "//src/core:error",
1792        "//src/core:event_engine_memory_allocator",
1793        "//src/core:gpr_atm",
1794        "//src/core:handshaker_factory",
1795        "//src/core:handshaker_registry",
1796        "//src/core:iomgr_fwd",
1797        "//src/core:memory_quota",
1798        "//src/core:poll",
1799        "//src/core:ref_counted",
1800        "//src/core:resource_quota",
1801        "//src/core:resource_quota_trace",
1802        "//src/core:seq",
1803        "//src/core:slice",
1804        "//src/core:slice_refcount",
1805        "//src/core:stats_data",
1806        "//src/core:status_helper",
1807        "//src/core:try_seq",
1808        "//src/core:unique_type_name",
1809        "//src/core:useful",
1810    ],
1811)
1812
1813grpc_cc_library(
1814    name = "tsi_base",
1815    srcs = [
1816        "//src/core:tsi/transport_security.cc",
1817        "//src/core:tsi/transport_security_grpc.cc",
1818    ],
1819    hdrs = [
1820        "//src/core:tsi/transport_security.h",
1821        "//src/core:tsi/transport_security_grpc.h",
1822        "//src/core:tsi/transport_security_interface.h",
1823    ],
1824    language = "c++",
1825    tags = ["nofixdeps"],
1826    visibility = ["@grpc:tsi_interface"],
1827    deps = [
1828        "gpr",
1829        "grpc_trace",
1830    ],
1831)
1832
1833grpc_cc_library(
1834    name = "alts_util",
1835    srcs = [
1836        "//src/core:lib/security/credentials/alts/check_gcp_environment.cc",
1837        "//src/core:lib/security/credentials/alts/check_gcp_environment_linux.cc",
1838        "//src/core:lib/security/credentials/alts/check_gcp_environment_no_op.cc",
1839        "//src/core:lib/security/credentials/alts/check_gcp_environment_windows.cc",
1840        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
1841        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_options.cc",
1842        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
1843        "//src/core:tsi/alts/handshaker/transport_security_common_api.cc",
1844    ],
1845    hdrs = [
1846        "include/grpc/grpc_security.h",
1847        "//src/core:lib/security/credentials/alts/check_gcp_environment.h",
1848        "//src/core:lib/security/credentials/alts/grpc_alts_credentials_options.h",
1849        "//src/core:tsi/alts/handshaker/transport_security_common_api.h",
1850    ],
1851    external_deps = ["upb_lib"],
1852    language = "c++",
1853    visibility = ["@grpc:tsi"],
1854    deps = [
1855        "alts_upb",
1856        "gpr",
1857        "grpc_public_hdrs",
1858    ],
1859)
1860
1861grpc_cc_library(
1862    name = "tsi",
1863    external_deps = [
1864        "libssl",
1865        "libcrypto",
1866        "absl/strings",
1867        "upb_lib",
1868    ],
1869    language = "c++",
1870    tags = ["nofixdeps"],
1871    visibility = ["@grpc:tsi"],
1872    deps = [
1873        "gpr",
1874        "tsi_alts_frame_protector",
1875        "tsi_base",
1876        "tsi_fake_credentials",
1877        "//src/core:tsi_local_credentials",
1878        "//src/core:useful",
1879    ],
1880)
1881
1882grpc_cc_library(
1883    name = "grpc++_base",
1884    srcs = GRPCXX_SRCS + [
1885        "src/cpp/client/insecure_credentials.cc",
1886        "src/cpp/client/secure_credentials.cc",
1887        "src/cpp/common/auth_property_iterator.cc",
1888        "src/cpp/common/secure_auth_context.cc",
1889        "src/cpp/common/secure_channel_arguments.cc",
1890        "src/cpp/common/secure_create_auth_context.cc",
1891        "src/cpp/common/tls_certificate_provider.cc",
1892        "src/cpp/common/tls_certificate_verifier.cc",
1893        "src/cpp/common/tls_credentials_options.cc",
1894        "src/cpp/server/insecure_server_credentials.cc",
1895        "src/cpp/server/secure_server_credentials.cc",
1896    ],
1897    hdrs = GRPCXX_HDRS + [
1898        "src/cpp/client/secure_credentials.h",
1899        "src/cpp/common/secure_auth_context.h",
1900        "src/cpp/server/secure_server_credentials.h",
1901    ],
1902    external_deps = [
1903        "absl/base:core_headers",
1904        "absl/status",
1905        "absl/status:statusor",
1906        "absl/strings",
1907        "absl/strings:str_format",
1908        "absl/synchronization",
1909        "absl/memory",
1910        "absl/types:optional",
1911        "upb_lib",
1912        "protobuf_headers",
1913        "absl/container:inlined_vector",
1914    ],
1915    language = "c++",
1916    public_hdrs = GRPCXX_PUBLIC_HDRS,
1917    tags = ["nofixdeps"],
1918    visibility = ["@grpc:alt_grpc++_base_legacy"],
1919    deps = [
1920        "channel_stack_builder",
1921        "config",
1922        "exec_ctx",
1923        "gpr",
1924        "grpc",
1925        "grpc++_codegen_proto",
1926        "grpc_base",
1927        "grpc_credentials_util",
1928        "grpc_health_upb",
1929        "grpc_public_hdrs",
1930        "grpc_security_base",
1931        "grpc_service_config_impl",
1932        "grpc_trace",
1933        "grpcpp_backend_metric_recorder",
1934        "grpcpp_call_metric_recorder",
1935        "grpcpp_status",
1936        "iomgr_timer",
1937        "legacy_context",
1938        "ref_counted_ptr",
1939        "//src/core:arena",
1940        "//src/core:channel_args",
1941        "//src/core:channel_fwd",
1942        "//src/core:channel_init",
1943        "//src/core:channel_stack_type",
1944        "//src/core:closure",
1945        "//src/core:default_event_engine",
1946        "//src/core:env",
1947        "//src/core:error",
1948        "//src/core:gpr_atm",
1949        "//src/core:gpr_manual_constructor",
1950        "//src/core:grpc_audit_logging",
1951        "//src/core:grpc_backend_metric_provider",
1952        "//src/core:grpc_service_config",
1953        "//src/core:grpc_transport_inproc",
1954        "//src/core:json",
1955        "//src/core:json_reader",
1956        "//src/core:ref_counted",
1957        "//src/core:resource_quota",
1958        "//src/core:slice",
1959        "//src/core:slice_buffer",
1960        "//src/core:slice_refcount",
1961        "//src/core:socket_mutator",
1962        "//src/core:status_helper",
1963        "//src/core:thread_quota",
1964        "//src/core:time",
1965        "//src/core:useful",
1966    ],
1967)
1968
1969# TODO(chengyuc): Give it another try to merge this to `grpc++_base` after
1970# codegen files are removed.
1971grpc_cc_library(
1972    name = "grpc++_base_unsecure",
1973    srcs = GRPCXX_SRCS,
1974    hdrs = GRPCXX_HDRS,
1975    external_deps = [
1976        "absl/base:core_headers",
1977        "absl/status",
1978        "absl/status:statusor",
1979        "absl/strings",
1980        "absl/synchronization",
1981        "absl/types:optional",
1982        "absl/memory",
1983        "upb_lib",
1984        "absl/strings:str_format",
1985        "protobuf_headers",
1986    ],
1987    language = "c++",
1988    public_hdrs = GRPCXX_PUBLIC_HDRS,
1989    tags = [
1990        "avoid_dep",
1991        "nofixdeps",
1992    ],
1993    visibility = ["@grpc:alt_grpc++_base_unsecure_legacy"],
1994    deps = [
1995        "channel_stack_builder",
1996        "config",
1997        "exec_ctx",
1998        "gpr",
1999        "grpc_base",
2000        "grpc_health_upb",
2001        "grpc_public_hdrs",
2002        "grpc_service_config_impl",
2003        "grpc_trace",
2004        "grpc_unsecure",
2005        "grpcpp_backend_metric_recorder",
2006        "grpcpp_call_metric_recorder",
2007        "grpcpp_status",
2008        "iomgr_timer",
2009        "legacy_context",
2010        "ref_counted_ptr",
2011        "//src/core:arena",
2012        "//src/core:channel_args",
2013        "//src/core:channel_init",
2014        "//src/core:closure",
2015        "//src/core:error",
2016        "//src/core:gpr_atm",
2017        "//src/core:gpr_manual_constructor",
2018        "//src/core:grpc_backend_metric_provider",
2019        "//src/core:grpc_insecure_credentials",
2020        "//src/core:grpc_service_config",
2021        "//src/core:grpc_transport_inproc",
2022        "//src/core:ref_counted",
2023        "//src/core:resource_quota",
2024        "//src/core:slice",
2025        "//src/core:socket_mutator",
2026        "//src/core:time",
2027        "//src/core:useful",
2028    ],
2029)
2030
2031grpc_cc_library(
2032    name = "grpc++_codegen_proto",
2033    external_deps = [
2034        "absl/strings:cord",
2035        "protobuf_headers",
2036        "protobuf",
2037    ],
2038    language = "c++",
2039    public_hdrs = [
2040        "include/grpc++/impl/codegen/proto_utils.h",
2041        "include/grpcpp/impl/codegen/proto_buffer_reader.h",
2042        "include/grpcpp/impl/codegen/proto_buffer_writer.h",
2043        "include/grpcpp/impl/codegen/proto_utils.h",
2044        "include/grpcpp/impl/proto_utils.h",
2045    ],
2046    tags = ["nofixdeps"],
2047    visibility = ["@grpc:public"],
2048    deps = [
2049        "grpc++_config_proto",
2050        "grpc++_public_hdrs",
2051        "grpcpp_status",
2052    ],
2053)
2054
2055grpc_cc_library(
2056    name = "grpc++_config_proto",
2057    external_deps = [
2058        "protobuf_headers",
2059        "protobuf",
2060    ],
2061    language = "c++",
2062    public_hdrs = [
2063        "include/grpc++/impl/codegen/config_protobuf.h",
2064        "include/grpcpp/impl/codegen/config_protobuf.h",
2065    ],
2066    tags = ["nofixdeps"],
2067    visibility = ["@grpc:public"],
2068)
2069
2070grpc_cc_library(
2071    name = "grpc++_reflection",
2072    srcs = [
2073        "src/cpp/ext/proto_server_reflection.cc",
2074        "src/cpp/ext/proto_server_reflection_plugin.cc",
2075    ],
2076    hdrs = [
2077        "src/cpp/ext/proto_server_reflection.h",
2078    ],
2079    external_deps = [
2080        "protobuf_headers",
2081    ],
2082    language = "c++",
2083    public_hdrs = [
2084        "include/grpc++/ext/proto_server_reflection_plugin.h",
2085        "include/grpcpp/ext/proto_server_reflection_plugin.h",
2086    ],
2087    tags = ["nofixdeps"],
2088    visibility = ["@grpc:public"],
2089    deps = [
2090        "grpc++",
2091        "grpc++_config_proto",
2092        "//src/proto/grpc/reflection/v1alpha:reflection_proto",
2093    ],
2094    alwayslink = 1,
2095)
2096
2097grpc_cc_library(
2098    name = "grpcpp_call_metric_recorder",
2099    external_deps = [
2100        "absl/strings",
2101        "absl/types:optional",
2102    ],
2103    language = "c++",
2104    public_hdrs = [
2105        "include/grpcpp/ext/call_metric_recorder.h",
2106    ],
2107    visibility = ["@grpc:public"],
2108    deps = ["grpc++_public_hdrs"],
2109)
2110
2111grpc_cc_library(
2112    name = "grpcpp_backend_metric_recorder",
2113    srcs = [
2114        "src/cpp/server/backend_metric_recorder.cc",
2115    ],
2116    hdrs = [
2117        "src/cpp/server/backend_metric_recorder.h",
2118    ],
2119    external_deps = [
2120        "absl/base:core_headers",
2121        "absl/strings",
2122    ],
2123    language = "c++",
2124    public_hdrs = [
2125        "include/grpcpp/ext/server_metric_recorder.h",
2126    ],
2127    visibility = ["@grpc:public"],
2128    deps = [
2129        "gpr",
2130        "grpc++_public_hdrs",
2131        "grpc_trace",
2132        "grpcpp_call_metric_recorder",
2133        "//src/core:grpc_backend_metric_data",
2134        "//src/core:grpc_backend_metric_provider",
2135    ],
2136)
2137
2138grpc_cc_library(
2139    name = "grpcpp_orca_service",
2140    srcs = [
2141        "src/cpp/server/orca/orca_service.cc",
2142    ],
2143    external_deps = [
2144        "absl/base:core_headers",
2145        "absl/strings",
2146        "absl/time",
2147        "absl/types:optional",
2148        "upb_lib",
2149    ],
2150    language = "c++",
2151    public_hdrs = [
2152        "include/grpcpp/ext/orca_service.h",
2153    ],
2154    visibility = ["@grpc:public"],
2155    deps = [
2156        "debug_location",
2157        "exec_ctx",
2158        "gpr",
2159        "grpc++",
2160        "grpc_base",
2161        "grpcpp_backend_metric_recorder",
2162        "protobuf_duration_upb",
2163        "ref_counted_ptr",
2164        "xds_orca_service_upb",
2165        "xds_orca_upb",
2166        "//src/core:default_event_engine",
2167        "//src/core:grpc_backend_metric_data",
2168        "//src/core:ref_counted",
2169        "//src/core:time",
2170    ],
2171    alwayslink = 1,
2172)
2173
2174grpc_cc_library(
2175    name = "grpcpp_channelz",
2176    srcs = [
2177        "src/cpp/server/channelz/channelz_service.cc",
2178        "src/cpp/server/channelz/channelz_service_plugin.cc",
2179    ],
2180    hdrs = [
2181        "src/cpp/server/channelz/channelz_service.h",
2182    ],
2183    external_deps = [
2184        "protobuf_headers",
2185    ],
2186    language = "c++",
2187    public_hdrs = [
2188        "include/grpcpp/ext/channelz_service_plugin.h",
2189    ],
2190    tags = ["nofixdeps"],
2191    visibility = ["@grpc:channelz"],
2192    deps = [
2193        "gpr",
2194        "grpc",
2195        "grpc++",
2196        "grpc++_config_proto",
2197        "//src/proto/grpc/channelz:channelz_proto",
2198    ],
2199    alwayslink = 1,
2200)
2201
2202grpc_cc_library(
2203    name = "grpcpp_csds",
2204    srcs = [
2205        "src/cpp/server/csds/csds.cc",
2206    ],
2207    hdrs = [
2208        "src/cpp/server/csds/csds.h",
2209    ],
2210    external_deps = [
2211        "absl/status",
2212        "absl/status:statusor",
2213    ],
2214    language = "c++",
2215    tags = ["nofixdeps"],
2216    deps = [
2217        "gpr",
2218        "grpc",
2219        "grpc++_base",
2220        "//src/proto/grpc/testing/xds/v3:csds_proto",
2221    ],
2222    alwayslink = 1,
2223)
2224
2225grpc_cc_library(
2226    name = "grpcpp_admin",
2227    srcs = [
2228        "src/cpp/server/admin/admin_services.cc",
2229    ],
2230    hdrs = [],
2231    defines = select({
2232        ":grpc_no_xds": ["GRPC_NO_XDS"],
2233        "//conditions:default": [],
2234    }),
2235    external_deps = [
2236        "absl/memory",
2237    ],
2238    language = "c++",
2239    public_hdrs = [
2240        "include/grpcpp/ext/admin_services.h",
2241    ],
2242    select_deps = [{
2243        ":grpc_no_xds": [],
2244        "//conditions:default": ["//:grpcpp_csds"],
2245    }],
2246    deps = [
2247        "gpr",
2248        "grpc++",
2249        "grpcpp_channelz",
2250    ],
2251    alwayslink = 1,
2252)
2253
2254grpc_cc_library(
2255    name = "grpc++_test",
2256    testonly = True,
2257    srcs = [
2258        "src/cpp/client/channel_test_peer.cc",
2259    ],
2260    external_deps = ["gtest"],
2261    public_hdrs = [
2262        "include/grpc++/test/mock_stream.h",
2263        "include/grpc++/test/server_context_test_spouse.h",
2264        "include/grpcpp/test/channel_test_peer.h",
2265        "include/grpcpp/test/client_context_test_peer.h",
2266        "include/grpcpp/test/default_reactor_test_peer.h",
2267        "include/grpcpp/test/mock_stream.h",
2268        "include/grpcpp/test/server_context_test_spouse.h",
2269    ],
2270    visibility = ["@grpc:grpc++_test"],
2271    deps = [
2272        "grpc++",
2273        "grpc_base",
2274    ],
2275)
2276
2277grpc_cc_library(
2278    name = "grpc_opencensus_plugin",
2279    srcs = [
2280        "src/cpp/ext/filters/census/client_filter.cc",
2281        "src/cpp/ext/filters/census/context.cc",
2282        "src/cpp/ext/filters/census/grpc_plugin.cc",
2283        "src/cpp/ext/filters/census/measures.cc",
2284        "src/cpp/ext/filters/census/rpc_encoding.cc",
2285        "src/cpp/ext/filters/census/server_call_tracer.cc",
2286        "src/cpp/ext/filters/census/views.cc",
2287    ],
2288    hdrs = [
2289        "include/grpcpp/opencensus.h",
2290        "src/cpp/ext/filters/census/client_filter.h",
2291        "src/cpp/ext/filters/census/context.h",
2292        "src/cpp/ext/filters/census/grpc_plugin.h",
2293        "src/cpp/ext/filters/census/measures.h",
2294        "src/cpp/ext/filters/census/open_census_call_tracer.h",
2295        "src/cpp/ext/filters/census/rpc_encoding.h",
2296        "src/cpp/ext/filters/census/server_call_tracer.h",
2297    ],
2298    external_deps = [
2299        "absl/base",
2300        "absl/base:core_headers",
2301        "absl/meta:type_traits",
2302        "absl/status",
2303        "absl/status:statusor",
2304        "absl/strings",
2305        "absl/strings:str_format",
2306        "absl/time",
2307        "absl/types:optional",
2308        "opencensus-stats",
2309        "opencensus-tags",
2310        "opencensus-tags-context_util",
2311        "opencensus-trace",
2312        "opencensus-trace-context_util",
2313        "opencensus-trace-propagation",
2314        "opencensus-trace-span_context",
2315    ],
2316    language = "c++",
2317    visibility = ["@grpc:grpc_opencensus_plugin"],
2318    deps = [
2319        "channel_stack_builder",
2320        "config",
2321        "gpr",
2322        "grpc++_base",
2323        "grpc_base",
2324        "grpc_public_hdrs",
2325        "legacy_context",
2326        "//src/core:arena",
2327        "//src/core:arena_promise",
2328        "//src/core:channel_args",
2329        "//src/core:channel_fwd",
2330        "//src/core:channel_stack_type",
2331        "//src/core:context",
2332        "//src/core:error",
2333        "//src/core:experiments",
2334        "//src/core:slice",
2335        "//src/core:slice_buffer",
2336        "//src/core:slice_refcount",
2337    ],
2338)
2339
2340# This is an EXPERIMENTAL target subject to change.
2341grpc_cc_library(
2342    name = "grpcpp_gcp_observability",
2343    hdrs = [
2344        "include/grpcpp/ext/gcp_observability.h",
2345    ],
2346    language = "c++",
2347    tags = ["nofixdeps"],
2348    visibility = ["@grpc:grpcpp_gcp_observability"],
2349    deps = [
2350        "//src/cpp/ext/gcp:observability",
2351    ],
2352)
2353
2354grpc_cc_library(
2355    name = "work_serializer",
2356    srcs = [
2357        "//src/core:lib/gprpp/work_serializer.cc",
2358    ],
2359    hdrs = [
2360        "//src/core:lib/gprpp/work_serializer.h",
2361    ],
2362    external_deps = ["absl/base:core_headers"],
2363    language = "c++",
2364    visibility = ["@grpc:client_channel"],
2365    deps = [
2366        "debug_location",
2367        "gpr",
2368        "grpc_trace",
2369        "orphanable",
2370    ],
2371)
2372
2373grpc_cc_library(
2374    name = "grpc_trace",
2375    srcs = ["//src/core:lib/debug/trace.cc"],
2376    hdrs = ["//src/core:lib/debug/trace.h"],
2377    external_deps = ["absl/strings"],
2378    language = "c++",
2379    visibility = ["@grpc:trace"],
2380    deps = [
2381        "config_vars",
2382        "gpr",
2383        "grpc_public_hdrs",
2384    ],
2385)
2386
2387grpc_cc_library(
2388    name = "load_config",
2389    srcs = [
2390        "//src/core:lib/config/load_config.cc",
2391    ],
2392    hdrs = [
2393        "//src/core:lib/config/load_config.h",
2394    ],
2395    external_deps = [
2396        "absl/flags:flag",
2397        "absl/flags:marshalling",
2398        "absl/strings",
2399        "absl/types:optional",
2400    ],
2401    deps = [
2402        "gpr_platform",
2403        "//src/core:env",
2404        "//src/core:gpr_log_internal",
2405    ],
2406)
2407
2408grpc_cc_library(
2409    name = "config_vars",
2410    srcs = [
2411        "//src/core:lib/config/config_vars.cc",
2412        "//src/core:lib/config/config_vars_non_generated.cc",
2413    ],
2414    hdrs = [
2415        "//src/core:lib/config/config_vars.h",
2416    ],
2417    external_deps = [
2418        "absl/flags:flag",
2419        "absl/strings",
2420        "absl/types:optional",
2421    ],
2422    deps = [
2423        "gpr_platform",
2424        "load_config",
2425    ],
2426)
2427
2428grpc_cc_library(
2429    name = "config",
2430    srcs = [
2431        "//src/core:lib/config/core_configuration.cc",
2432    ],
2433    language = "c++",
2434    public_hdrs = [
2435        "//src/core:lib/config/core_configuration.h",
2436    ],
2437    visibility = ["@grpc:client_channel"],
2438    deps = [
2439        "gpr",
2440        "grpc_resolver",
2441        "//src/core:certificate_provider_registry",
2442        "//src/core:channel_args_preconditioning",
2443        "//src/core:channel_creds_registry",
2444        "//src/core:channel_init",
2445        "//src/core:handshaker_registry",
2446        "//src/core:lb_policy_registry",
2447        "//src/core:proxy_mapper_registry",
2448        "//src/core:service_config_parser",
2449    ],
2450)
2451
2452grpc_cc_library(
2453    name = "debug_location",
2454    language = "c++",
2455    public_hdrs = ["//src/core:lib/gprpp/debug_location.h"],
2456    visibility = ["@grpc:debug_location"],
2457)
2458
2459grpc_cc_library(
2460    name = "orphanable",
2461    language = "c++",
2462    public_hdrs = ["//src/core:lib/gprpp/orphanable.h"],
2463    visibility = [
2464        "@grpc:client_channel",
2465        "@grpc:xds_client_core",
2466    ],
2467    deps = [
2468        "debug_location",
2469        "gpr_platform",
2470        "ref_counted_ptr",
2471        "//src/core:ref_counted",
2472    ],
2473)
2474
2475grpc_cc_library(
2476    name = "promise",
2477    external_deps = [
2478        "absl/functional:any_invocable",
2479        "absl/status",
2480        "absl/types:optional",
2481    ],
2482    language = "c++",
2483    public_hdrs = [
2484        "//src/core:lib/promise/promise.h",
2485    ],
2486    visibility = ["@grpc:alt_grpc_base_legacy"],
2487    deps = [
2488        "gpr_platform",
2489        "//src/core:poll",
2490        "//src/core:promise_like",
2491    ],
2492)
2493
2494grpc_cc_library(
2495    name = "ref_counted_ptr",
2496    language = "c++",
2497    public_hdrs = ["//src/core:lib/gprpp/ref_counted_ptr.h"],
2498    visibility = ["@grpc:ref_counted_ptr"],
2499    deps = [
2500        "debug_location",
2501        "gpr_platform",
2502    ],
2503)
2504
2505grpc_cc_library(
2506    name = "handshaker",
2507    srcs = [
2508        "//src/core:lib/transport/handshaker.cc",
2509    ],
2510    external_deps = [
2511        "absl/base:core_headers",
2512        "absl/container:inlined_vector",
2513        "absl/status",
2514        "absl/strings:str_format",
2515    ],
2516    language = "c++",
2517    public_hdrs = [
2518        "//src/core:lib/transport/handshaker.h",
2519    ],
2520    visibility = ["@grpc:alt_grpc_base_legacy"],
2521    deps = [
2522        "debug_location",
2523        "event_engine_base_hdrs",
2524        "exec_ctx",
2525        "gpr",
2526        "grpc_base",
2527        "grpc_public_hdrs",
2528        "grpc_trace",
2529        "ref_counted_ptr",
2530        "//src/core:channel_args",
2531        "//src/core:closure",
2532        "//src/core:error",
2533        "//src/core:ref_counted",
2534        "//src/core:slice",
2535        "//src/core:slice_buffer",
2536        "//src/core:status_helper",
2537        "//src/core:time",
2538    ],
2539)
2540
2541grpc_cc_library(
2542    name = "http_connect_handshaker",
2543    srcs = [
2544        "//src/core:lib/transport/http_connect_handshaker.cc",
2545    ],
2546    external_deps = [
2547        "absl/base:core_headers",
2548        "absl/status",
2549        "absl/strings",
2550        "absl/types:optional",
2551    ],
2552    language = "c++",
2553    public_hdrs = [
2554        "//src/core:lib/transport/http_connect_handshaker.h",
2555    ],
2556    visibility = ["@grpc:alt_grpc_base_legacy"],
2557    deps = [
2558        "config",
2559        "debug_location",
2560        "exec_ctx",
2561        "gpr",
2562        "grpc_base",
2563        "handshaker",
2564        "httpcli",
2565        "ref_counted_ptr",
2566        "//src/core:channel_args",
2567        "//src/core:closure",
2568        "//src/core:error",
2569        "//src/core:handshaker_factory",
2570        "//src/core:handshaker_registry",
2571        "//src/core:iomgr_fwd",
2572        "//src/core:slice",
2573        "//src/core:slice_buffer",
2574    ],
2575)
2576
2577grpc_cc_library(
2578    name = "exec_ctx",
2579    srcs = [
2580        "//src/core:lib/iomgr/combiner.cc",
2581        "//src/core:lib/iomgr/exec_ctx.cc",
2582        "//src/core:lib/iomgr/executor.cc",
2583        "//src/core:lib/iomgr/iomgr_internal.cc",
2584    ],
2585    hdrs = [
2586        "//src/core:lib/iomgr/combiner.h",
2587        "//src/core:lib/iomgr/exec_ctx.h",
2588        "//src/core:lib/iomgr/executor.h",
2589        "//src/core:lib/iomgr/iomgr_internal.h",
2590    ],
2591    external_deps = ["absl/strings:str_format"],
2592    visibility = [
2593        "@grpc:alt_grpc_base_legacy",
2594        "@grpc:exec_ctx",
2595    ],
2596    deps = [
2597        "debug_location",
2598        "gpr",
2599        "grpc_public_hdrs",
2600        "grpc_trace",
2601        "//src/core:closure",
2602        "//src/core:error",
2603        "//src/core:gpr_atm",
2604        "//src/core:gpr_spinlock",
2605        "//src/core:time",
2606        "//src/core:useful",
2607    ],
2608)
2609
2610grpc_cc_library(
2611    name = "sockaddr_utils",
2612    srcs = [
2613        "//src/core:lib/address_utils/sockaddr_utils.cc",
2614    ],
2615    hdrs = [
2616        "//src/core:lib/address_utils/sockaddr_utils.h",
2617    ],
2618    external_deps = [
2619        "absl/status",
2620        "absl/status:statusor",
2621        "absl/strings",
2622        "absl/strings:str_format",
2623    ],
2624    visibility = ["@grpc:alt_grpc_base_legacy"],
2625    deps = [
2626        "gpr",
2627        "uri_parser",
2628        "//src/core:grpc_sockaddr",
2629        "//src/core:iomgr_port",
2630        "//src/core:resolved_address",
2631    ],
2632)
2633
2634grpc_cc_library(
2635    name = "iomgr_timer",
2636    srcs = [
2637        "//src/core:lib/iomgr/timer.cc",
2638        "//src/core:lib/iomgr/timer_generic.cc",
2639        "//src/core:lib/iomgr/timer_heap.cc",
2640        "//src/core:lib/iomgr/timer_manager.cc",
2641    ],
2642    hdrs = [
2643        "//src/core:lib/iomgr/timer.h",
2644        "//src/core:lib/iomgr/timer_generic.h",
2645        "//src/core:lib/iomgr/timer_heap.h",
2646        "//src/core:lib/iomgr/timer_manager.h",
2647    ] + [
2648        # TODO(hork): deduplicate
2649        "//src/core:lib/iomgr/iomgr.h",
2650    ],
2651    external_deps = [
2652        "absl/strings",
2653        "absl/strings:str_format",
2654    ],
2655    tags = ["nofixdeps"],
2656    visibility = ["@grpc:iomgr_timer"],
2657    deps = [
2658        "event_engine_base_hdrs",
2659        "exec_ctx",
2660        "gpr",
2661        "gpr_platform",
2662        "grpc_trace",
2663        "//src/core:closure",
2664        "//src/core:gpr_manual_constructor",
2665        "//src/core:gpr_spinlock",
2666        "//src/core:iomgr_port",
2667        "//src/core:time",
2668        "//src/core:time_averaged_stats",
2669        "//src/core:useful",
2670    ],
2671)
2672
2673grpc_cc_library(
2674    name = "iomgr_internal_errqueue",
2675    srcs = [
2676        "//src/core:lib/iomgr/internal_errqueue.cc",
2677    ],
2678    hdrs = [
2679        "//src/core:lib/iomgr/internal_errqueue.h",
2680    ],
2681    tags = ["nofixdeps"],
2682    visibility = ["@grpc:iomgr_internal_errqueue"],
2683    deps = [
2684        "gpr",
2685        "//src/core:iomgr_port",
2686        "//src/core:strerror",
2687    ],
2688)
2689
2690grpc_cc_library(
2691    name = "iomgr_buffer_list",
2692    srcs = [
2693        "//src/core:lib/iomgr/buffer_list.cc",
2694    ],
2695    hdrs = [
2696        "//src/core:lib/iomgr/buffer_list.h",
2697    ],
2698    external_deps = [
2699        "absl/strings",
2700        "absl/strings:str_format",
2701    ],
2702    tags = ["nofixdeps"],
2703    visibility = ["@grpc:iomgr_buffer_list"],
2704    deps = [
2705        "gpr",
2706        "iomgr_internal_errqueue",
2707        "//src/core:error",
2708        "//src/core:iomgr_port",
2709    ],
2710)
2711
2712grpc_cc_library(
2713    name = "uri_parser",
2714    srcs = [
2715        "//src/core:lib/uri/uri_parser.cc",
2716    ],
2717    hdrs = [
2718        "//src/core:lib/uri/uri_parser.h",
2719    ],
2720    external_deps = [
2721        "absl/status",
2722        "absl/status:statusor",
2723        "absl/strings",
2724        "absl/strings:str_format",
2725    ],
2726    visibility = ["@grpc:alt_grpc_base_legacy"],
2727    deps = ["gpr"],
2728)
2729
2730grpc_cc_library(
2731    name = "parse_address",
2732    srcs = [
2733        "//src/core:lib/address_utils/parse_address.cc",
2734        "//src/core:lib/iomgr/grpc_if_nametoindex_posix.cc",
2735        "//src/core:lib/iomgr/grpc_if_nametoindex_unsupported.cc",
2736    ],
2737    hdrs = [
2738        "//src/core:lib/address_utils/parse_address.h",
2739        "//src/core:lib/iomgr/grpc_if_nametoindex.h",
2740    ],
2741    external_deps = [
2742        "absl/status",
2743        "absl/status:statusor",
2744        "absl/strings",
2745    ],
2746    visibility = ["@grpc:alt_grpc_base_legacy"],
2747    deps = [
2748        "gpr",
2749        "uri_parser",
2750        "//src/core:error",
2751        "//src/core:grpc_sockaddr",
2752        "//src/core:iomgr_port",
2753        "//src/core:resolved_address",
2754        "//src/core:status_helper",
2755    ],
2756)
2757
2758grpc_cc_library(
2759    name = "backoff",
2760    srcs = [
2761        "//src/core:lib/backoff/backoff.cc",
2762    ],
2763    hdrs = [
2764        "//src/core:lib/backoff/backoff.h",
2765    ],
2766    external_deps = ["absl/random"],
2767    language = "c++",
2768    visibility = ["@grpc:alt_grpc_base_legacy"],
2769    deps = [
2770        "gpr_platform",
2771        "//src/core:time",
2772    ],
2773)
2774
2775grpc_cc_library(
2776    name = "stats",
2777    srcs = [
2778        "//src/core:lib/debug/stats.cc",
2779    ],
2780    hdrs = [
2781        "//src/core:lib/debug/stats.h",
2782    ],
2783    external_deps = [
2784        "absl/strings",
2785        "absl/types:span",
2786    ],
2787    visibility = [
2788        "@grpc:alt_grpc_base_legacy",
2789    ],
2790    deps = [
2791        "gpr",
2792        "//src/core:histogram_view",
2793        "//src/core:no_destruct",
2794        "//src/core:stats_data",
2795    ],
2796)
2797
2798grpc_cc_library(
2799    name = "channel_stack_builder",
2800    srcs = [
2801        "//src/core:lib/channel/channel_stack_builder.cc",
2802    ],
2803    hdrs = [
2804        "//src/core:lib/channel/channel_stack_builder.h",
2805    ],
2806    external_deps = [
2807        "absl/status:statusor",
2808        "absl/strings",
2809    ],
2810    language = "c++",
2811    visibility = ["@grpc:alt_grpc_base_legacy"],
2812    deps = [
2813        "gpr",
2814        "ref_counted_ptr",
2815        "//src/core:channel_args",
2816        "//src/core:channel_fwd",
2817        "//src/core:channel_stack_type",
2818        "//src/core:transport_fwd",
2819    ],
2820)
2821
2822grpc_cc_library(
2823    name = "grpc_service_config_impl",
2824    srcs = [
2825        "//src/core:lib/service_config/service_config_impl.cc",
2826    ],
2827    hdrs = [
2828        "//src/core:lib/service_config/service_config_impl.h",
2829    ],
2830    external_deps = [
2831        "absl/status",
2832        "absl/status:statusor",
2833        "absl/strings",
2834        "absl/types:optional",
2835    ],
2836    language = "c++",
2837    visibility = ["@grpc:client_channel"],
2838    deps = [
2839        "config",
2840        "gpr",
2841        "ref_counted_ptr",
2842        "//src/core:channel_args",
2843        "//src/core:grpc_service_config",
2844        "//src/core:json",
2845        "//src/core:json_args",
2846        "//src/core:json_object_loader",
2847        "//src/core:json_reader",
2848        "//src/core:json_writer",
2849        "//src/core:service_config_parser",
2850        "//src/core:slice",
2851        "//src/core:slice_refcount",
2852        "//src/core:validation_errors",
2853    ],
2854)
2855
2856grpc_cc_library(
2857    name = "server_address",
2858    srcs = [
2859        "//src/core:lib/resolver/server_address.cc",
2860    ],
2861    hdrs = [
2862        "//src/core:lib/resolver/server_address.h",
2863    ],
2864    external_deps = [
2865        "absl/status",
2866        "absl/status:statusor",
2867        "absl/strings",
2868        "absl/strings:str_format",
2869    ],
2870    language = "c++",
2871    visibility = ["@grpc:client_channel"],
2872    deps = [
2873        "gpr_platform",
2874        "sockaddr_utils",
2875        "//src/core:channel_args",
2876        "//src/core:resolved_address",
2877        "//src/core:useful",
2878    ],
2879)
2880
2881grpc_cc_library(
2882    name = "grpc_resolver",
2883    srcs = [
2884        "//src/core:lib/resolver/resolver.cc",
2885        "//src/core:lib/resolver/resolver_registry.cc",
2886    ],
2887    hdrs = [
2888        "//src/core:lib/resolver/resolver.h",
2889        "//src/core:lib/resolver/resolver_factory.h",
2890        "//src/core:lib/resolver/resolver_registry.h",
2891    ],
2892    external_deps = [
2893        "absl/status",
2894        "absl/status:statusor",
2895        "absl/strings",
2896        "absl/strings:str_format",
2897    ],
2898    language = "c++",
2899    visibility = ["@grpc:client_channel"],
2900    deps = [
2901        "gpr",
2902        "grpc_trace",
2903        "orphanable",
2904        "ref_counted_ptr",
2905        "server_address",
2906        "uri_parser",
2907        "//src/core:channel_args",
2908        "//src/core:grpc_service_config",
2909        "//src/core:iomgr_fwd",
2910    ],
2911)
2912
2913grpc_cc_library(
2914    name = "grpc_client_channel",
2915    srcs = [
2916        "//src/core:ext/filters/client_channel/backend_metric.cc",
2917        "//src/core:ext/filters/client_channel/backup_poller.cc",
2918        "//src/core:ext/filters/client_channel/channel_connectivity.cc",
2919        "//src/core:ext/filters/client_channel/client_channel.cc",
2920        "//src/core:ext/filters/client_channel/client_channel_channelz.cc",
2921        "//src/core:ext/filters/client_channel/client_channel_factory.cc",
2922        "//src/core:ext/filters/client_channel/client_channel_plugin.cc",
2923        "//src/core:ext/filters/client_channel/client_channel_service_config.cc",
2924        "//src/core:ext/filters/client_channel/config_selector.cc",
2925        "//src/core:ext/filters/client_channel/dynamic_filters.cc",
2926        "//src/core:ext/filters/client_channel/global_subchannel_pool.cc",
2927        "//src/core:ext/filters/client_channel/http_proxy.cc",
2928        "//src/core:ext/filters/client_channel/lb_policy/child_policy_handler.cc",
2929        "//src/core:ext/filters/client_channel/lb_policy/oob_backend_metric.cc",
2930        "//src/core:ext/filters/client_channel/local_subchannel_pool.cc",
2931        "//src/core:ext/filters/client_channel/retry_filter.cc",
2932        "//src/core:ext/filters/client_channel/retry_service_config.cc",
2933        "//src/core:ext/filters/client_channel/retry_throttle.cc",
2934        "//src/core:ext/filters/client_channel/service_config_channel_arg_filter.cc",
2935        "//src/core:ext/filters/client_channel/subchannel.cc",
2936        "//src/core:ext/filters/client_channel/subchannel_pool_interface.cc",
2937        "//src/core:ext/filters/client_channel/subchannel_stream_client.cc",
2938    ],
2939    hdrs = [
2940        "//src/core:ext/filters/client_channel/backend_metric.h",
2941        "//src/core:ext/filters/client_channel/backup_poller.h",
2942        "//src/core:ext/filters/client_channel/client_channel.h",
2943        "//src/core:ext/filters/client_channel/client_channel_channelz.h",
2944        "//src/core:ext/filters/client_channel/client_channel_factory.h",
2945        "//src/core:ext/filters/client_channel/client_channel_internal.h",
2946        "//src/core:ext/filters/client_channel/client_channel_service_config.h",
2947        "//src/core:ext/filters/client_channel/config_selector.h",
2948        "//src/core:ext/filters/client_channel/connector.h",
2949        "//src/core:ext/filters/client_channel/dynamic_filters.h",
2950        "//src/core:ext/filters/client_channel/global_subchannel_pool.h",
2951        "//src/core:ext/filters/client_channel/http_proxy.h",
2952        "//src/core:ext/filters/client_channel/lb_policy/child_policy_handler.h",
2953        "//src/core:ext/filters/client_channel/lb_policy/oob_backend_metric.h",
2954        "//src/core:ext/filters/client_channel/lb_policy/oob_backend_metric_internal.h",
2955        "//src/core:ext/filters/client_channel/local_subchannel_pool.h",
2956        "//src/core:ext/filters/client_channel/retry_filter.h",
2957        "//src/core:ext/filters/client_channel/retry_service_config.h",
2958        "//src/core:ext/filters/client_channel/retry_throttle.h",
2959        "//src/core:ext/filters/client_channel/subchannel.h",
2960        "//src/core:ext/filters/client_channel/subchannel_interface_internal.h",
2961        "//src/core:ext/filters/client_channel/subchannel_pool_interface.h",
2962        "//src/core:ext/filters/client_channel/subchannel_stream_client.h",
2963    ],
2964    external_deps = [
2965        "absl/base:core_headers",
2966        "absl/cleanup",
2967        "absl/container:flat_hash_set",
2968        "absl/container:inlined_vector",
2969        "absl/functional:any_invocable",
2970        "absl/status",
2971        "absl/status:statusor",
2972        "absl/strings",
2973        "absl/strings:cord",
2974        "absl/types:optional",
2975        "absl/types:variant",
2976        "upb_collections_lib",
2977        "upb_lib",
2978    ],
2979    language = "c++",
2980    visibility = ["@grpc:client_channel"],
2981    deps = [
2982        "backoff",
2983        "channel_stack_builder",
2984        "config",
2985        "config_vars",
2986        "debug_location",
2987        "exec_ctx",
2988        "gpr",
2989        "grpc_base",
2990        "grpc_public_hdrs",
2991        "grpc_resolver",
2992        "grpc_service_config_impl",
2993        "grpc_trace",
2994        "http_connect_handshaker",
2995        "iomgr_timer",
2996        "legacy_context",
2997        "orphanable",
2998        "parse_address",
2999        "protobuf_duration_upb",
3000        "ref_counted_ptr",
3001        "server_address",
3002        "sockaddr_utils",
3003        "stats",
3004        "uri_parser",
3005        "work_serializer",
3006        "xds_orca_service_upb",
3007        "xds_orca_upb",
3008        "//src/core:arena",
3009        "//src/core:channel_args",
3010        "//src/core:channel_fwd",
3011        "//src/core:channel_init",
3012        "//src/core:channel_stack_type",
3013        "//src/core:closure",
3014        "//src/core:construct_destruct",
3015        "//src/core:dual_ref_counted",
3016        "//src/core:env",
3017        "//src/core:error",
3018        "//src/core:gpr_atm",
3019        "//src/core:grpc_backend_metric_data",
3020        "//src/core:grpc_deadline_filter",
3021        "//src/core:grpc_service_config",
3022        "//src/core:init_internally",
3023        "//src/core:iomgr_fwd",
3024        "//src/core:json",
3025        "//src/core:json_args",
3026        "//src/core:json_channel_args",
3027        "//src/core:json_object_loader",
3028        "//src/core:lb_policy",
3029        "//src/core:lb_policy_registry",
3030        "//src/core:memory_quota",
3031        "//src/core:pollset_set",
3032        "//src/core:proxy_mapper",
3033        "//src/core:proxy_mapper_registry",
3034        "//src/core:ref_counted",
3035        "//src/core:resolved_address",
3036        "//src/core:resource_quota",
3037        "//src/core:service_config_parser",
3038        "//src/core:slice",
3039        "//src/core:slice_buffer",
3040        "//src/core:slice_refcount",
3041        "//src/core:stats_data",
3042        "//src/core:status_helper",
3043        "//src/core:subchannel_interface",
3044        "//src/core:time",
3045        "//src/core:transport_fwd",
3046        "//src/core:unique_type_name",
3047        "//src/core:useful",
3048        "//src/core:validation_errors",
3049    ],
3050)
3051
3052grpc_cc_library(
3053    name = "grpc_resolver_dns_ares",
3054    srcs = [
3055        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
3056        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
3057        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
3058        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
3059        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
3060        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
3061    ],
3062    hdrs = [
3063        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h",
3064        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
3065        "//src/core:ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
3066    ],
3067    external_deps = [
3068        "absl/base:core_headers",
3069        "absl/container:flat_hash_set",
3070        "absl/status",
3071        "absl/status:statusor",
3072        "absl/strings",
3073        "absl/strings:str_format",
3074        "absl/types:optional",
3075        "address_sorting",
3076        "cares",
3077    ],
3078    language = "c++",
3079    deps = [
3080        "backoff",
3081        "config",
3082        "config_vars",
3083        "debug_location",
3084        "exec_ctx",
3085        "gpr",
3086        "grpc_base",
3087        "grpc_grpclb_balancer_addresses",
3088        "grpc_resolver",
3089        "grpc_service_config_impl",
3090        "grpc_trace",
3091        "iomgr_timer",
3092        "orphanable",
3093        "parse_address",
3094        "ref_counted_ptr",
3095        "server_address",
3096        "sockaddr_utils",
3097        "uri_parser",
3098        "//src/core:channel_args",
3099        "//src/core:closure",
3100        "//src/core:error",
3101        "//src/core:event_engine_common",
3102        "//src/core:grpc_service_config",
3103        "//src/core:grpc_sockaddr",
3104        "//src/core:iomgr_fwd",
3105        "//src/core:iomgr_port",
3106        "//src/core:polling_resolver",
3107        "//src/core:pollset_set",
3108        "//src/core:resolved_address",
3109        "//src/core:service_config_helper",
3110        "//src/core:slice",
3111        "//src/core:status_helper",
3112        "//src/core:time",
3113    ],
3114)
3115
3116grpc_cc_library(
3117    name = "httpcli",
3118    srcs = [
3119        "//src/core:lib/http/format_request.cc",
3120        "//src/core:lib/http/httpcli.cc",
3121        "//src/core:lib/http/parser.cc",
3122    ],
3123    hdrs = [
3124        "//src/core:lib/http/format_request.h",
3125        "//src/core:lib/http/httpcli.h",
3126        "//src/core:lib/http/parser.h",
3127    ],
3128    external_deps = [
3129        "absl/base:core_headers",
3130        "absl/functional:bind_front",
3131        "absl/status",
3132        "absl/status:statusor",
3133        "absl/strings",
3134        "absl/strings:str_format",
3135        "absl/types:optional",
3136    ],
3137    language = "c++",
3138    visibility = ["@grpc:httpcli"],
3139    deps = [
3140        "config",
3141        "debug_location",
3142        "exec_ctx",
3143        "gpr",
3144        "grpc_base",
3145        "grpc_public_hdrs",
3146        "grpc_security_base",
3147        "grpc_trace",
3148        "handshaker",
3149        "orphanable",
3150        "ref_counted_ptr",
3151        "sockaddr_utils",
3152        "uri_parser",
3153        "//src/core:channel_args",
3154        "//src/core:channel_args_preconditioning",
3155        "//src/core:closure",
3156        "//src/core:error",
3157        "//src/core:handshaker_registry",
3158        "//src/core:iomgr_fwd",
3159        "//src/core:pollset_set",
3160        "//src/core:resolved_address",
3161        "//src/core:resource_quota",
3162        "//src/core:slice",
3163        "//src/core:slice_refcount",
3164        "//src/core:status_helper",
3165        "//src/core:tcp_connect_handshaker",
3166        "//src/core:time",
3167    ],
3168)
3169
3170grpc_cc_library(
3171    name = "grpc_alts_credentials",
3172    srcs = [
3173        "//src/core:lib/security/credentials/alts/alts_credentials.cc",
3174        "//src/core:lib/security/security_connector/alts/alts_security_connector.cc",
3175    ],
3176    hdrs = [
3177        "//src/core:lib/security/credentials/alts/alts_credentials.h",
3178        "//src/core:lib/security/security_connector/alts/alts_security_connector.h",
3179    ],
3180    external_deps = [
3181        "absl/status",
3182        "absl/strings",
3183        "absl/types:optional",
3184    ],
3185    language = "c++",
3186    visibility = ["@grpc:public"],
3187    deps = [
3188        "alts_util",
3189        "debug_location",
3190        "exec_ctx",
3191        "gpr",
3192        "grpc_base",
3193        "grpc_public_hdrs",
3194        "grpc_security_base",
3195        "handshaker",
3196        "promise",
3197        "ref_counted_ptr",
3198        "tsi_alts_credentials",
3199        "tsi_base",
3200        "//src/core:arena_promise",
3201        "//src/core:channel_args",
3202        "//src/core:closure",
3203        "//src/core:error",
3204        "//src/core:iomgr_fwd",
3205        "//src/core:slice",
3206        "//src/core:slice_refcount",
3207        "//src/core:unique_type_name",
3208        "//src/core:useful",
3209    ],
3210)
3211
3212grpc_cc_library(
3213    name = "tsi_fake_credentials",
3214    srcs = [
3215        "//src/core:tsi/fake_transport_security.cc",
3216    ],
3217    hdrs = [
3218        "//src/core:tsi/fake_transport_security.h",
3219    ],
3220    language = "c++",
3221    visibility = [
3222        "@grpc:public",
3223    ],
3224    deps = [
3225        "gpr",
3226        "tsi_base",
3227        "//src/core:slice",
3228        "//src/core:useful",
3229    ],
3230)
3231
3232grpc_cc_library(
3233    name = "grpc_jwt_credentials",
3234    srcs = [
3235        "//src/core:lib/security/credentials/jwt/json_token.cc",
3236        "//src/core:lib/security/credentials/jwt/jwt_credentials.cc",
3237        "//src/core:lib/security/credentials/jwt/jwt_verifier.cc",
3238    ],
3239    hdrs = [
3240        "//src/core:lib/security/credentials/jwt/json_token.h",
3241        "//src/core:lib/security/credentials/jwt/jwt_credentials.h",
3242        "//src/core:lib/security/credentials/jwt/jwt_verifier.h",
3243    ],
3244    external_deps = [
3245        "absl/status",
3246        "absl/status:statusor",
3247        "absl/strings",
3248        "absl/strings:str_format",
3249        "absl/time",
3250        "absl/types:optional",
3251        "libcrypto",
3252        "libssl",
3253    ],
3254    language = "c++",
3255    visibility = ["@grpc:public"],
3256    deps = [
3257        "exec_ctx",
3258        "gpr",
3259        "grpc_base",
3260        "grpc_credentials_util",
3261        "grpc_security_base",
3262        "grpc_trace",
3263        "httpcli",
3264        "orphanable",
3265        "promise",
3266        "ref_counted_ptr",
3267        "uri_parser",
3268        "//src/core:arena_promise",
3269        "//src/core:closure",
3270        "//src/core:error",
3271        "//src/core:gpr_manual_constructor",
3272        "//src/core:httpcli_ssl_credentials",
3273        "//src/core:iomgr_fwd",
3274        "//src/core:json",
3275        "//src/core:json_reader",
3276        "//src/core:json_writer",
3277        "//src/core:slice",
3278        "//src/core:slice_refcount",
3279        "//src/core:time",
3280        "//src/core:tsi_ssl_types",
3281        "//src/core:unique_type_name",
3282        "//src/core:useful",
3283    ],
3284)
3285
3286grpc_cc_library(
3287    name = "grpc_credentials_util",
3288    srcs = [
3289        "//src/core:lib/security/credentials/tls/tls_utils.cc",
3290        "//src/core:lib/security/security_connector/load_system_roots_fallback.cc",
3291        "//src/core:lib/security/security_connector/load_system_roots_supported.cc",
3292        "//src/core:lib/security/util/json_util.cc",
3293    ],
3294    hdrs = [
3295        "//src/core:lib/security/credentials/tls/tls_utils.h",
3296        "//src/core:lib/security/security_connector/load_system_roots.h",
3297        "//src/core:lib/security/security_connector/load_system_roots_supported.h",
3298        "//src/core:lib/security/util/json_util.h",
3299    ],
3300    external_deps = ["absl/strings"],
3301    language = "c++",
3302    visibility = ["@grpc:public"],
3303    deps = [
3304        "config_vars",
3305        "gpr",
3306        "grpc_base",
3307        "grpc_security_base",
3308        "//src/core:error",
3309        "//src/core:json",
3310        "//src/core:useful",
3311    ],
3312)
3313
3314grpc_cc_library(
3315    name = "tsi_alts_credentials",
3316    srcs = [
3317        "//src/core:tsi/alts/handshaker/alts_handshaker_client.cc",
3318        "//src/core:tsi/alts/handshaker/alts_shared_resource.cc",
3319        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker.cc",
3320        "//src/core:tsi/alts/handshaker/alts_tsi_utils.cc",
3321    ],
3322    hdrs = [
3323        "//src/core:tsi/alts/handshaker/alts_handshaker_client.h",
3324        "//src/core:tsi/alts/handshaker/alts_shared_resource.h",
3325        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker.h",
3326        "//src/core:tsi/alts/handshaker/alts_tsi_handshaker_private.h",
3327        "//src/core:tsi/alts/handshaker/alts_tsi_utils.h",
3328    ],
3329    external_deps = [
3330        "absl/strings",
3331        "upb_lib",
3332    ],
3333    language = "c++",
3334    visibility = ["@grpc:public"],
3335    deps = [
3336        "alts_upb",
3337        "alts_util",
3338        "gpr",
3339        "grpc_base",
3340        "grpc_security_base",
3341        "tsi_alts_frame_protector",
3342        "tsi_base",
3343        "//src/core:channel_args",
3344        "//src/core:closure",
3345        "//src/core:env",
3346        "//src/core:pollset_set",
3347        "//src/core:slice",
3348    ],
3349)
3350
3351grpc_cc_library(
3352    name = "tsi_alts_frame_protector",
3353    srcs = [
3354        "//src/core:tsi/alts/crypt/aes_gcm.cc",
3355        "//src/core:tsi/alts/crypt/gsec.cc",
3356        "//src/core:tsi/alts/frame_protector/alts_counter.cc",
3357        "//src/core:tsi/alts/frame_protector/alts_crypter.cc",
3358        "//src/core:tsi/alts/frame_protector/alts_frame_protector.cc",
3359        "//src/core:tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
3360        "//src/core:tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
3361        "//src/core:tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
3362        "//src/core:tsi/alts/frame_protector/frame_handler.cc",
3363        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
3364        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
3365        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
3366        "//src/core:tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
3367        "//src/core:tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
3368    ],
3369    hdrs = [
3370        "//src/core:tsi/alts/crypt/gsec.h",
3371        "//src/core:tsi/alts/frame_protector/alts_counter.h",
3372        "//src/core:tsi/alts/frame_protector/alts_crypter.h",
3373        "//src/core:tsi/alts/frame_protector/alts_frame_protector.h",
3374        "//src/core:tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
3375        "//src/core:tsi/alts/frame_protector/frame_handler.h",
3376        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
3377        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
3378        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
3379        "//src/core:tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
3380        "//src/core:tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
3381        "//src/core:tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
3382    ],
3383    external_deps = [
3384        "libcrypto",
3385        "libssl",
3386    ],
3387    language = "c++",
3388    visibility = ["@grpc:public"],
3389    deps = [
3390        "event_engine_base_hdrs",
3391        "exec_ctx",
3392        "gpr",
3393        "gpr_platform",
3394        "tsi_base",
3395        "//src/core:slice",
3396        "//src/core:slice_buffer",
3397        "//src/core:useful",
3398    ],
3399)
3400
3401grpc_cc_library(
3402    name = "tsi_ssl_session_cache",
3403    srcs = [
3404        "//src/core:tsi/ssl/session_cache/ssl_session_boringssl.cc",
3405        "//src/core:tsi/ssl/session_cache/ssl_session_cache.cc",
3406        "//src/core:tsi/ssl/session_cache/ssl_session_openssl.cc",
3407    ],
3408    hdrs = [
3409        "//src/core:tsi/ssl/session_cache/ssl_session.h",
3410        "//src/core:tsi/ssl/session_cache/ssl_session_cache.h",
3411    ],
3412    external_deps = [
3413        "absl/memory",
3414        "libssl",
3415    ],
3416    language = "c++",
3417    visibility = ["@grpc:public"],
3418    deps = [
3419        "cpp_impl_of",
3420        "gpr",
3421        "grpc_public_hdrs",
3422        "//src/core:ref_counted",
3423        "//src/core:slice",
3424    ],
3425)
3426
3427grpc_cc_library(
3428    name = "tsi_ssl_credentials",
3429    srcs = [
3430        "//src/core:lib/security/security_connector/ssl_utils.cc",
3431        "//src/core:tsi/ssl/key_logging/ssl_key_logging.cc",
3432        "//src/core:tsi/ssl_transport_security.cc",
3433        "//src/core:tsi/ssl_transport_security_utils.cc",
3434    ],
3435    hdrs = [
3436        "//src/core:lib/security/security_connector/ssl_utils.h",
3437        "//src/core:tsi/ssl/key_logging/ssl_key_logging.h",
3438        "//src/core:tsi/ssl_transport_security.h",
3439        "//src/core:tsi/ssl_transport_security_utils.h",
3440    ],
3441    external_deps = [
3442        "absl/base:core_headers",
3443        "absl/status",
3444        "absl/strings",
3445        "libcrypto",
3446        "libssl",
3447    ],
3448    language = "c++",
3449    visibility = ["@grpc:public"],
3450    deps = [
3451        "config_vars",
3452        "gpr",
3453        "grpc_base",
3454        "grpc_credentials_util",
3455        "grpc_public_hdrs",
3456        "grpc_security_base",
3457        "ref_counted_ptr",
3458        "tsi_base",
3459        "tsi_ssl_session_cache",
3460        "//src/core:channel_args",
3461        "//src/core:error",
3462        "//src/core:grpc_transport_chttp2_alpn",
3463        "//src/core:ref_counted",
3464        "//src/core:slice",
3465        "//src/core:tsi_ssl_types",
3466        "//src/core:useful",
3467    ],
3468)
3469
3470grpc_cc_library(
3471    name = "grpc_http_filters",
3472    srcs = [
3473        "//src/core:ext/filters/http/client/http_client_filter.cc",
3474        "//src/core:ext/filters/http/http_filters_plugin.cc",
3475        "//src/core:ext/filters/http/message_compress/compression_filter.cc",
3476        "//src/core:ext/filters/http/server/http_server_filter.cc",
3477    ],
3478    hdrs = [
3479        "//src/core:ext/filters/http/client/http_client_filter.h",
3480        "//src/core:ext/filters/http/message_compress/compression_filter.h",
3481        "//src/core:ext/filters/http/server/http_server_filter.h",
3482    ],
3483    external_deps = [
3484        "absl/base:core_headers",
3485        "absl/meta:type_traits",
3486        "absl/status",
3487        "absl/status:statusor",
3488        "absl/strings",
3489        "absl/strings:str_format",
3490        "absl/types:optional",
3491    ],
3492    language = "c++",
3493    visibility = ["@grpc:http"],
3494    deps = [
3495        "channel_stack_builder",
3496        "config",
3497        "gpr",
3498        "grpc_base",
3499        "grpc_public_hdrs",
3500        "grpc_trace",
3501        "legacy_context",
3502        "promise",
3503        "//src/core:activity",
3504        "//src/core:arena",
3505        "//src/core:arena_promise",
3506        "//src/core:channel_args",
3507        "//src/core:channel_fwd",
3508        "//src/core:channel_init",
3509        "//src/core:channel_stack_type",
3510        "//src/core:context",
3511        "//src/core:grpc_message_size_filter",
3512        "//src/core:latch",
3513        "//src/core:map",
3514        "//src/core:percent_encoding",
3515        "//src/core:pipe",
3516        "//src/core:poll",
3517        "//src/core:prioritized_race",
3518        "//src/core:race",
3519        "//src/core:slice",
3520        "//src/core:slice_buffer",
3521        "//src/core:transport_fwd",
3522    ],
3523)
3524
3525grpc_cc_library(
3526    name = "grpc_grpclb_balancer_addresses",
3527    srcs = [
3528        "//src/core:ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc",
3529    ],
3530    hdrs = [
3531        "//src/core:ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h",
3532    ],
3533    language = "c++",
3534    visibility = ["@grpc:grpclb"],
3535    deps = [
3536        "gpr_platform",
3537        "grpc_public_hdrs",
3538        "server_address",
3539        "//src/core:channel_args",
3540        "//src/core:useful",
3541    ],
3542)
3543
3544grpc_cc_library(
3545    name = "xds_client",
3546    srcs = [
3547        "//src/core:ext/xds/xds_api.cc",
3548        "//src/core:ext/xds/xds_bootstrap.cc",
3549        "//src/core:ext/xds/xds_client.cc",
3550        "//src/core:ext/xds/xds_client_stats.cc",
3551    ],
3552    hdrs = [
3553        "//src/core:ext/xds/xds_api.h",
3554        "//src/core:ext/xds/xds_bootstrap.h",
3555        "//src/core:ext/xds/xds_channel_args.h",
3556        "//src/core:ext/xds/xds_client.h",
3557        "//src/core:ext/xds/xds_client_stats.h",
3558        "//src/core:ext/xds/xds_resource_type.h",
3559        "//src/core:ext/xds/xds_resource_type_impl.h",
3560        "//src/core:ext/xds/xds_transport.h",
3561    ],
3562    external_deps = [
3563        "absl/base:core_headers",
3564        "absl/memory",
3565        "absl/status",
3566        "absl/status:statusor",
3567        "absl/strings",
3568        "absl/strings:str_format",
3569        "absl/types:optional",
3570        "upb_lib",
3571        "upb_textformat_lib",
3572        "upb_json_lib",
3573        "upb_reflection",
3574    ],
3575    language = "c++",
3576    tags = ["nofixdeps"],
3577    visibility = ["@grpc:xds_client_core"],
3578    deps = [
3579        "backoff",
3580        "debug_location",
3581        "envoy_admin_upb",
3582        "envoy_config_core_upb",
3583        "envoy_config_endpoint_upb",
3584        "envoy_service_discovery_upb",
3585        "envoy_service_discovery_upbdefs",
3586        "envoy_service_load_stats_upb",
3587        "envoy_service_load_stats_upbdefs",
3588        "envoy_service_status_upb",
3589        "envoy_service_status_upbdefs",
3590        "event_engine_base_hdrs",
3591        "exec_ctx",
3592        "google_rpc_status_upb",
3593        "gpr",
3594        "grpc_trace",
3595        "orphanable",
3596        "protobuf_any_upb",
3597        "protobuf_duration_upb",
3598        "protobuf_struct_upb",
3599        "protobuf_timestamp_upb",
3600        "ref_counted_ptr",
3601        "uri_parser",
3602        "work_serializer",
3603        "//src/core:default_event_engine",
3604        "//src/core:dual_ref_counted",
3605        "//src/core:env",
3606        "//src/core:json",
3607        "//src/core:per_cpu",
3608        "//src/core:ref_counted",
3609        "//src/core:time",
3610        "//src/core:upb_utils",
3611        "//src/core:useful",
3612    ],
3613)
3614
3615grpc_cc_library(
3616    name = "grpc_mock_cel",
3617    hdrs = [
3618        "//src/core:lib/security/authorization/mock_cel/activation.h",
3619        "//src/core:lib/security/authorization/mock_cel/cel_expr_builder_factory.h",
3620        "//src/core:lib/security/authorization/mock_cel/cel_expression.h",
3621        "//src/core:lib/security/authorization/mock_cel/cel_value.h",
3622        "//src/core:lib/security/authorization/mock_cel/evaluator_core.h",
3623        "//src/core:lib/security/authorization/mock_cel/flat_expr_builder.h",
3624    ],
3625    external_deps = [
3626        "absl/status",
3627        "absl/status:statusor",
3628        "absl/strings",
3629        "absl/types:span",
3630    ],
3631    language = "c++",
3632    deps = [
3633        "google_type_expr_upb",
3634        "gpr_public_hdrs",
3635    ],
3636)
3637
3638grpc_cc_library(
3639    name = "grpc_resolver_fake",
3640    srcs = ["//src/core:ext/filters/client_channel/resolver/fake/fake_resolver.cc"],
3641    hdrs = ["//src/core:ext/filters/client_channel/resolver/fake/fake_resolver.h"],
3642    external_deps = [
3643        "absl/base:core_headers",
3644        "absl/status",
3645        "absl/status:statusor",
3646        "absl/strings",
3647    ],
3648    language = "c++",
3649    visibility = [
3650        "//test:__subpackages__",
3651        "@grpc:grpc_resolver_fake",
3652    ],
3653    deps = [
3654        "config",
3655        "debug_location",
3656        "gpr",
3657        "grpc_public_hdrs",
3658        "grpc_resolver",
3659        "orphanable",
3660        "ref_counted_ptr",
3661        "server_address",
3662        "uri_parser",
3663        "work_serializer",
3664        "//src/core:channel_args",
3665        "//src/core:grpc_service_config",
3666        "//src/core:ref_counted",
3667        "//src/core:useful",
3668    ],
3669)
3670
3671grpc_cc_library(
3672    name = "chttp2_frame",
3673    hdrs = [
3674        "//src/core:ext/transport/chttp2/transport/frame.h",
3675    ],
3676    deps = ["gpr"],
3677)
3678
3679grpc_cc_library(
3680    name = "http_trace",
3681    srcs = [
3682        "//src/core:ext/transport/chttp2/transport/http_trace.cc",
3683    ],
3684    hdrs = [
3685        "//src/core:ext/transport/chttp2/transport/http_trace.h",
3686    ],
3687    deps = [
3688        "gpr_platform",
3689        "grpc_trace",
3690    ],
3691)
3692
3693grpc_cc_library(
3694    name = "hpack_parser_table",
3695    srcs = [
3696        "//src/core:ext/transport/chttp2/transport/hpack_parser_table.cc",
3697    ],
3698    hdrs = [
3699        "//src/core:ext/transport/chttp2/transport/hpack_parser_table.h",
3700    ],
3701    external_deps = [
3702        "absl/functional:function_ref",
3703        "absl/status",
3704        "absl/strings",
3705    ],
3706    deps = [
3707        "gpr",
3708        "gpr_platform",
3709        "grpc_base",
3710        "grpc_trace",
3711        "hpack_parse_result",
3712        "http_trace",
3713        "//src/core:hpack_constants",
3714        "//src/core:no_destruct",
3715        "//src/core:slice",
3716    ],
3717)
3718
3719grpc_cc_library(
3720    name = "hpack_parse_result",
3721    srcs = [
3722        "//src/core:ext/transport/chttp2/transport/hpack_parse_result.cc",
3723    ],
3724    hdrs = [
3725        "//src/core:ext/transport/chttp2/transport/hpack_parse_result.h",
3726    ],
3727    external_deps = [
3728        "absl/status",
3729        "absl/strings",
3730        "absl/strings:str_format",
3731        "absl/types:optional",
3732    ],
3733    deps = [
3734        "gpr",
3735        "grpc_base",
3736        "//src/core:error",
3737        "//src/core:hpack_constants",
3738        "//src/core:slice",
3739        "//src/core:status_helper",
3740    ],
3741)
3742
3743grpc_cc_library(
3744    name = "hpack_parser",
3745    srcs = [
3746        "//src/core:ext/transport/chttp2/transport/hpack_parser.cc",
3747    ],
3748    hdrs = [
3749        "//src/core:ext/transport/chttp2/transport/hpack_parser.h",
3750    ],
3751    external_deps = [
3752        "absl/base:core_headers",
3753        "absl/status",
3754        "absl/strings",
3755        "absl/types:optional",
3756        "absl/types:span",
3757        "absl/types:variant",
3758    ],
3759    deps = [
3760        "chttp2_frame",
3761        "gpr",
3762        "gpr_platform",
3763        "grpc_base",
3764        "grpc_public_hdrs",
3765        "grpc_trace",
3766        "hpack_parse_result",
3767        "hpack_parser_table",
3768        "stats",
3769        "//src/core:decode_huff",
3770        "//src/core:error",
3771        "//src/core:hpack_constants",
3772        "//src/core:match",
3773        "//src/core:random_early_detection",
3774        "//src/core:slice",
3775        "//src/core:slice_refcount",
3776        "//src/core:stats_data",
3777    ],
3778)
3779
3780grpc_cc_library(
3781    name = "hpack_encoder",
3782    srcs = [
3783        "//src/core:ext/transport/chttp2/transport/hpack_encoder.cc",
3784    ],
3785    hdrs = [
3786        "//src/core:ext/transport/chttp2/transport/hpack_encoder.h",
3787    ],
3788    external_deps = ["absl/strings"],
3789    deps = [
3790        "chttp2_bin_encoder",
3791        "chttp2_frame",
3792        "chttp2_varint",
3793        "gpr",
3794        "gpr_platform",
3795        "grpc_base",
3796        "grpc_public_hdrs",
3797        "grpc_trace",
3798        "http_trace",
3799        "//src/core:hpack_constants",
3800        "//src/core:hpack_encoder_table",
3801        "//src/core:metadata_compression_traits",
3802        "//src/core:slice",
3803        "//src/core:slice_buffer",
3804        "//src/core:time",
3805    ],
3806)
3807
3808grpc_cc_library(
3809    name = "chttp2_bin_encoder",
3810    srcs = [
3811        "//src/core:ext/transport/chttp2/transport/bin_encoder.cc",
3812    ],
3813    hdrs = [
3814        "//src/core:ext/transport/chttp2/transport/bin_encoder.h",
3815    ],
3816    deps = [
3817        "gpr",
3818        "gpr_platform",
3819        "//src/core:huffsyms",
3820        "//src/core:slice",
3821    ],
3822)
3823
3824grpc_cc_library(
3825    name = "chttp2_varint",
3826    srcs = [
3827        "//src/core:ext/transport/chttp2/transport/varint.cc",
3828    ],
3829    hdrs = [
3830        "//src/core:ext/transport/chttp2/transport/varint.h",
3831    ],
3832    external_deps = ["absl/base:core_headers"],
3833    deps = ["gpr"],
3834)
3835
3836grpc_cc_library(
3837    name = "chttp2_context_list_entry",
3838    hdrs = [
3839        "//src/core:ext/transport/chttp2/transport/context_list_entry.h",
3840    ],
3841    deps = ["gpr"],
3842)
3843
3844grpc_cc_library(
3845    name = "grpc_transport_chttp2",
3846    srcs = [
3847        "//src/core:ext/transport/chttp2/transport/bin_decoder.cc",
3848        "//src/core:ext/transport/chttp2/transport/chttp2_transport.cc",
3849        "//src/core:ext/transport/chttp2/transport/frame_data.cc",
3850        "//src/core:ext/transport/chttp2/transport/frame_goaway.cc",
3851        "//src/core:ext/transport/chttp2/transport/frame_ping.cc",
3852        "//src/core:ext/transport/chttp2/transport/frame_rst_stream.cc",
3853        "//src/core:ext/transport/chttp2/transport/frame_settings.cc",
3854        "//src/core:ext/transport/chttp2/transport/frame_window_update.cc",
3855        "//src/core:ext/transport/chttp2/transport/parsing.cc",
3856        "//src/core:ext/transport/chttp2/transport/stream_lists.cc",
3857        "//src/core:ext/transport/chttp2/transport/stream_map.cc",
3858        "//src/core:ext/transport/chttp2/transport/writing.cc",
3859    ],
3860    hdrs = [
3861        "//src/core:ext/transport/chttp2/transport/bin_decoder.h",
3862        "//src/core:ext/transport/chttp2/transport/chttp2_transport.h",
3863        "//src/core:ext/transport/chttp2/transport/frame_data.h",
3864        "//src/core:ext/transport/chttp2/transport/frame_goaway.h",
3865        "//src/core:ext/transport/chttp2/transport/frame_ping.h",
3866        "//src/core:ext/transport/chttp2/transport/frame_rst_stream.h",
3867        "//src/core:ext/transport/chttp2/transport/frame_settings.h",
3868        "//src/core:ext/transport/chttp2/transport/frame_window_update.h",
3869        "//src/core:ext/transport/chttp2/transport/internal.h",
3870        "//src/core:ext/transport/chttp2/transport/stream_map.h",
3871    ],
3872    external_deps = [
3873        "absl/base:core_headers",
3874        "absl/status",
3875        "absl/strings",
3876        "absl/strings:cord",
3877        "absl/strings:str_format",
3878        "absl/types:optional",
3879    ],
3880    language = "c++",
3881    visibility = ["@grpc:grpclb"],
3882    deps = [
3883        "chttp2_context_list_entry",
3884        "chttp2_frame",
3885        "chttp2_varint",
3886        "debug_location",
3887        "exec_ctx",
3888        "gpr",
3889        "grpc_base",
3890        "grpc_public_hdrs",
3891        "grpc_trace",
3892        "hpack_encoder",
3893        "hpack_parser",
3894        "hpack_parser_table",
3895        "http_trace",
3896        "httpcli",
3897        "iomgr_buffer_list",
3898        "legacy_context",
3899        "ref_counted_ptr",
3900        "stats",
3901        "//src/core:arena",
3902        "//src/core:bdp_estimator",
3903        "//src/core:bitset",
3904        "//src/core:channel_args",
3905        "//src/core:chttp2_flow_control",
3906        "//src/core:closure",
3907        "//src/core:error",
3908        "//src/core:experiments",
3909        "//src/core:http2_errors",
3910        "//src/core:http2_settings",
3911        "//src/core:init_internally",
3912        "//src/core:iomgr_fwd",
3913        "//src/core:iomgr_port",
3914        "//src/core:memory_quota",
3915        "//src/core:poll",
3916        "//src/core:ref_counted",
3917        "//src/core:resource_quota",
3918        "//src/core:resource_quota_trace",
3919        "//src/core:slice",
3920        "//src/core:slice_buffer",
3921        "//src/core:slice_refcount",
3922        "//src/core:stats_data",
3923        "//src/core:status_helper",
3924        "//src/core:time",
3925        "//src/core:transport_fwd",
3926        "//src/core:useful",
3927    ],
3928)
3929
3930grpc_cc_library(
3931    name = "grpcpp_status",
3932    srcs = [
3933        "src/cpp/util/status.cc",
3934    ],
3935    public_hdrs = [
3936        "include/grpc++/support/status.h",
3937        "include/grpcpp/impl/status.h",
3938        "include/grpcpp/support/status.h",
3939        "include/grpc++/impl/codegen/status.h",
3940        "include/grpcpp/impl/codegen/status.h",
3941    ],
3942    deps = [
3943        "gpr_platform",
3944        "grpc++_public_hdrs",
3945        "grpc_public_hdrs",
3946    ],
3947)
3948
3949# TODO(yashykt): Remove the UPB definitions from here once they are no longer needed
3950### UPB Targets
3951
3952grpc_upb_proto_library(
3953    name = "envoy_admin_upb",
3954    deps = ["@envoy_api//envoy/admin/v3:pkg"],
3955)
3956
3957grpc_upb_proto_library(
3958    name = "envoy_config_cluster_upb",
3959    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
3960)
3961
3962grpc_upb_proto_reflection_library(
3963    name = "envoy_config_cluster_upbdefs",
3964    deps = ["@envoy_api//envoy/config/cluster/v3:pkg"],
3965)
3966
3967grpc_upb_proto_library(
3968    name = "envoy_config_core_upb",
3969    deps = ["@envoy_api//envoy/config/core/v3:pkg"],
3970)
3971
3972grpc_upb_proto_library(
3973    name = "envoy_config_endpoint_upb",
3974    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
3975)
3976
3977grpc_upb_proto_reflection_library(
3978    name = "envoy_config_endpoint_upbdefs",
3979    deps = ["@envoy_api//envoy/config/endpoint/v3:pkg"],
3980)
3981
3982grpc_upb_proto_library(
3983    name = "envoy_config_listener_upb",
3984    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
3985)
3986
3987grpc_upb_proto_reflection_library(
3988    name = "envoy_config_listener_upbdefs",
3989    deps = ["@envoy_api//envoy/config/listener/v3:pkg"],
3990)
3991
3992grpc_upb_proto_library(
3993    name = "envoy_config_rbac_upb",
3994    deps = ["@envoy_api//envoy/config/rbac/v3:pkg"],
3995)
3996
3997grpc_upb_proto_library(
3998    name = "envoy_config_route_upb",
3999    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
4000)
4001
4002grpc_upb_proto_reflection_library(
4003    name = "envoy_config_route_upbdefs",
4004    deps = ["@envoy_api//envoy/config/route/v3:pkg"],
4005)
4006
4007grpc_upb_proto_library(
4008    name = "envoy_extensions_clusters_aggregate_upb",
4009    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
4010)
4011
4012grpc_upb_proto_reflection_library(
4013    name = "envoy_extensions_clusters_aggregate_upbdefs",
4014    deps = ["@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg"],
4015)
4016
4017grpc_upb_proto_library(
4018    name = "envoy_extensions_filters_common_fault_upb",
4019    deps = ["@envoy_api//envoy/extensions/filters/common/fault/v3:pkg"],
4020)
4021
4022grpc_upb_proto_library(
4023    name = "envoy_extensions_filters_http_fault_upb",
4024    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
4025)
4026
4027grpc_upb_proto_reflection_library(
4028    name = "envoy_extensions_filters_http_fault_upbdefs",
4029    deps = ["@envoy_api//envoy/extensions/filters/http/fault/v3:pkg"],
4030)
4031
4032grpc_upb_proto_library(
4033    name = "envoy_extensions_filters_http_rbac_upb",
4034    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
4035)
4036
4037grpc_upb_proto_reflection_library(
4038    name = "envoy_extensions_filters_http_rbac_upbdefs",
4039    deps = ["@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg"],
4040)
4041
4042grpc_upb_proto_library(
4043    name = "envoy_extensions_filters_http_router_upb",
4044    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
4045)
4046
4047grpc_upb_proto_reflection_library(
4048    name = "envoy_extensions_filters_http_router_upbdefs",
4049    deps = ["@envoy_api//envoy/extensions/filters/http/router/v3:pkg"],
4050)
4051
4052grpc_upb_proto_library(
4053    name = "envoy_extensions_filters_http_stateful_session_upb",
4054    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
4055)
4056
4057grpc_upb_proto_reflection_library(
4058    name = "envoy_extensions_filters_http_stateful_session_upbdefs",
4059    deps = ["@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg"],
4060)
4061
4062grpc_upb_proto_library(
4063    name = "envoy_extensions_http_stateful_session_cookie_upb",
4064    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
4065)
4066
4067grpc_upb_proto_reflection_library(
4068    name = "envoy_extensions_http_stateful_session_cookie_upbdefs",
4069    deps = ["@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg"],
4070)
4071
4072grpc_upb_proto_library(
4073    name = "envoy_type_http_upb",
4074    deps = ["@envoy_api//envoy/type/http/v3:pkg"],
4075)
4076
4077grpc_upb_proto_library(
4078    name = "envoy_extensions_load_balancing_policies_client_side_weighted_round_robin_upb",
4079    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg"],
4080)
4081
4082grpc_upb_proto_library(
4083    name = "envoy_extensions_load_balancing_policies_ring_hash_upb",
4084    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg"],
4085)
4086
4087grpc_upb_proto_library(
4088    name = "envoy_extensions_load_balancing_policies_wrr_locality_upb",
4089    deps = ["@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg"],
4090)
4091
4092grpc_upb_proto_library(
4093    name = "envoy_extensions_filters_network_http_connection_manager_upb",
4094    deps = ["@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg"],
4095)
4096
4097grpc_upb_proto_reflection_library(
4098    name = "envoy_extensions_filters_network_http_connection_manager_upbdefs",
4099    deps = ["@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg"],
4100)
4101
4102grpc_upb_proto_library(
4103    name = "envoy_extensions_transport_sockets_tls_upb",
4104    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
4105)
4106
4107grpc_upb_proto_reflection_library(
4108    name = "envoy_extensions_transport_sockets_tls_upbdefs",
4109    deps = ["@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg"],
4110)
4111
4112grpc_upb_proto_library(
4113    name = "envoy_service_discovery_upb",
4114    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
4115)
4116
4117grpc_upb_proto_reflection_library(
4118    name = "envoy_service_discovery_upbdefs",
4119    deps = ["@envoy_api//envoy/service/discovery/v3:pkg"],
4120)
4121
4122grpc_upb_proto_library(
4123    name = "envoy_service_load_stats_upb",
4124    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
4125)
4126
4127grpc_upb_proto_reflection_library(
4128    name = "envoy_service_load_stats_upbdefs",
4129    deps = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
4130)
4131
4132grpc_upb_proto_library(
4133    name = "envoy_service_status_upb",
4134    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
4135)
4136
4137grpc_upb_proto_reflection_library(
4138    name = "envoy_service_status_upbdefs",
4139    deps = ["@envoy_api//envoy/service/status/v3:pkg"],
4140)
4141
4142grpc_upb_proto_library(
4143    name = "envoy_type_matcher_upb",
4144    deps = ["@envoy_api//envoy/type/matcher/v3:pkg"],
4145)
4146
4147grpc_upb_proto_library(
4148    name = "envoy_type_upb",
4149    deps = ["@envoy_api//envoy/type/v3:pkg"],
4150)
4151
4152grpc_upb_proto_library(
4153    name = "xds_type_upb",
4154    deps = ["@com_github_cncf_udpa//xds/type/v3:pkg"],
4155)
4156
4157grpc_upb_proto_reflection_library(
4158    name = "xds_type_upbdefs",
4159    deps = ["@com_github_cncf_udpa//xds/type/v3:pkg"],
4160)
4161
4162grpc_upb_proto_library(
4163    name = "xds_orca_upb",
4164    deps = ["@com_github_cncf_udpa//xds/data/orca/v3:pkg"],
4165)
4166
4167grpc_upb_proto_library(
4168    name = "xds_orca_service_upb",
4169    deps = ["@com_github_cncf_udpa//xds/service/orca/v3:pkg"],
4170)
4171
4172grpc_upb_proto_library(
4173    name = "grpc_health_upb",
4174    deps = ["//src/proto/grpc/health/v1:health_proto_descriptor"],
4175)
4176
4177grpc_upb_proto_library(
4178    name = "google_rpc_status_upb",
4179    deps = ["@com_google_googleapis//google/rpc:status_proto"],
4180)
4181
4182grpc_upb_proto_reflection_library(
4183    name = "google_rpc_status_upbdefs",
4184    deps = ["@com_google_googleapis//google/rpc:status_proto"],
4185)
4186
4187grpc_upb_proto_library(
4188    name = "google_type_expr_upb",
4189    deps = ["@com_google_googleapis//google/type:expr_proto"],
4190)
4191
4192grpc_upb_proto_library(
4193    name = "grpc_lb_upb",
4194    deps = ["//src/proto/grpc/lb/v1:load_balancer_proto_descriptor"],
4195)
4196
4197grpc_upb_proto_library(
4198    name = "alts_upb",
4199    deps = ["//src/proto/grpc/gcp:alts_handshaker_proto"],
4200)
4201
4202grpc_upb_proto_library(
4203    name = "rls_upb",
4204    deps = ["//src/proto/grpc/lookup/v1:rls_proto_descriptor"],
4205)
4206
4207grpc_upb_proto_library(
4208    name = "rls_config_upb",
4209    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto_descriptor"],
4210)
4211
4212grpc_upb_proto_reflection_library(
4213    name = "rls_config_upbdefs",
4214    deps = ["//src/proto/grpc/lookup/v1:rls_config_proto_descriptor"],
4215)
4216
4217WELL_KNOWN_PROTO_TARGETS = [
4218    "any",
4219    "duration",
4220    "empty",
4221    "struct",
4222    "timestamp",
4223    "wrappers",
4224]
4225
4226[grpc_upb_proto_library(
4227    name = "protobuf_" + target + "_upb",
4228    deps = ["@com_google_protobuf//:" + target + "_proto"],
4229) for target in WELL_KNOWN_PROTO_TARGETS]
4230
4231[grpc_upb_proto_reflection_library(
4232    name = "protobuf_" + target + "_upbdefs",
4233    deps = ["@com_google_protobuf//:" + target + "_proto"],
4234) for target in WELL_KNOWN_PROTO_TARGETS]
4235
4236grpc_generate_one_off_targets()
4237
4238filegroup(
4239    name = "root_certificates",
4240    srcs = [
4241        "etc/roots.pem",
4242    ],
4243    visibility = ["//visibility:public"],
4244)
4245