3af4c8fda55bca53c373ec69f7ae919465c731cb
[platform/upstream/grpc.git] / BUILD
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
17 licenses(["notice"])
18
19 exports_files([
20     "LICENSE",
21     "etc/roots.pem",
22 ])
23
24 package(
25     default_visibility = ["//visibility:public"],
26     features = [
27         "-layering_check",
28         "-parse_headers",
29     ],
30 )
31
32 load(
33     "//bazel:grpc_build_system.bzl",
34     "grpc_cc_library",
35     "grpc_generate_one_off_targets",
36     "grpc_upb_proto_library",
37     "python_config_settings",
38 )
39
40 config_setting(
41     name = "grpc_no_ares",
42     values = {"define": "grpc_no_ares=true"},
43 )
44
45 config_setting(
46     name = "grpc_allow_exceptions",
47     values = {"define": "GRPC_ALLOW_EXCEPTIONS=1"},
48 )
49
50 config_setting(
51     name = "grpc_disallow_exceptions",
52     values = {"define": "GRPC_ALLOW_EXCEPTIONS=0"},
53 )
54
55 config_setting(
56     name = "remote_execution",
57     values = {"define": "GRPC_PORT_ISOLATED_RUNTIME=1"},
58 )
59
60 config_setting(
61     name = "windows",
62     values = {"cpu": "x64_windows"},
63 )
64
65 config_setting(
66     name = "windows_msvc",
67     values = {"cpu": "x64_windows_msvc"},
68 )
69
70 config_setting(
71     name = "mac_x86_64",
72     values = {"cpu": "darwin"},
73 )
74
75 python_config_settings()
76
77 # This should be updated along with build.yaml
78 g_stands_for = "galactic"
79
80 core_version = "9.0.0"
81
82 version = "1.28.0"
83
84 GPR_PUBLIC_HDRS = [
85     "include/grpc/support/alloc.h",
86     "include/grpc/support/atm.h",
87     "include/grpc/support/atm_gcc_atomic.h",
88     "include/grpc/support/atm_gcc_sync.h",
89     "include/grpc/support/atm_windows.h",
90     "include/grpc/support/cpu.h",
91     "include/grpc/support/log.h",
92     "include/grpc/support/log_windows.h",
93     "include/grpc/support/port_platform.h",
94     "include/grpc/support/string_util.h",
95     "include/grpc/support/sync.h",
96     "include/grpc/support/sync_abseil.h",
97     "include/grpc/support/sync_custom.h",
98     "include/grpc/support/sync_generic.h",
99     "include/grpc/support/sync_posix.h",
100     "include/grpc/support/sync_windows.h",
101     "include/grpc/support/thd_id.h",
102     "include/grpc/support/time.h",
103 ]
104
105 GRPC_PUBLIC_HDRS = [
106     "include/grpc/byte_buffer.h",
107     "include/grpc/byte_buffer_reader.h",
108     "include/grpc/compression.h",
109     "include/grpc/fork.h",
110     "include/grpc/grpc.h",
111     "include/grpc/grpc_posix.h",
112     "include/grpc/grpc_security_constants.h",
113     "include/grpc/slice.h",
114     "include/grpc/slice_buffer.h",
115     "include/grpc/status.h",
116     "include/grpc/load_reporting.h",
117     "include/grpc/support/workaround_list.h",
118 ]
119
120 GRPC_SECURE_PUBLIC_HDRS = [
121     "include/grpc/grpc_security.h",
122 ]
123
124 # TODO(ctiller): layer grpc atop grpc_unsecure, layer grpc++ atop grpc++_unsecure
125 GRPCXX_SRCS = [
126     "src/cpp/client/channel_cc.cc",
127     "src/cpp/client/client_context.cc",
128     "src/cpp/client/client_interceptor.cc",
129     "src/cpp/client/create_channel.cc",
130     "src/cpp/client/create_channel_internal.cc",
131     "src/cpp/client/create_channel_posix.cc",
132     "src/cpp/client/credentials_cc.cc",
133     "src/cpp/common/alarm.cc",
134     "src/cpp/common/channel_arguments.cc",
135     "src/cpp/common/channel_filter.cc",
136     "src/cpp/common/completion_queue_cc.cc",
137     "src/cpp/common/core_codegen.cc",
138     "src/cpp/common/resource_quota_cc.cc",
139     "src/cpp/common/rpc_method.cc",
140     "src/cpp/common/version_cc.cc",
141     "src/cpp/common/validate_service_config.cc",
142     "src/cpp/server/async_generic_service.cc",
143     "src/cpp/server/channel_argument_option.cc",
144     "src/cpp/server/create_default_thread_pool.cc",
145     "src/cpp/server/dynamic_thread_pool.cc",
146     "src/cpp/server/external_connection_acceptor_impl.cc",
147     "src/cpp/server/health/default_health_check_service.cc",
148     "src/cpp/server/health/health_check_service.cc",
149     "src/cpp/server/health/health_check_service_server_builder_option.cc",
150     "src/cpp/server/server_builder.cc",
151     "src/cpp/server/server_callback.cc",
152     "src/cpp/server/server_cc.cc",
153     "src/cpp/server/server_context.cc",
154     "src/cpp/server/server_credentials.cc",
155     "src/cpp/server/server_posix.cc",
156     "src/cpp/thread_manager/thread_manager.cc",
157     "src/cpp/util/byte_buffer_cc.cc",
158     "src/cpp/util/status.cc",
159     "src/cpp/util/string_ref.cc",
160     "src/cpp/util/time_cc.cc",
161 ]
162
163 GRPCXX_HDRS = [
164     "src/cpp/client/create_channel_internal.h",
165     "src/cpp/common/channel_filter.h",
166     "src/cpp/server/dynamic_thread_pool.h",
167     "src/cpp/server/external_connection_acceptor_impl.h",
168     "src/cpp/server/health/default_health_check_service.h",
169     "src/cpp/server/thread_pool_interface.h",
170     "src/cpp/thread_manager/thread_manager.h",
171 ]
172
173 GRPCXX_PUBLIC_HDRS = [
174     "include/grpc++/alarm.h",
175     "include/grpc++/channel.h",
176     "include/grpc++/client_context.h",
177     "include/grpc++/completion_queue.h",
178     "include/grpc++/create_channel.h",
179     "include/grpc++/create_channel_posix.h",
180     "include/grpc++/ext/health_check_service_server_builder_option.h",
181     "include/grpc++/generic/async_generic_service.h",
182     "include/grpc++/generic/generic_stub.h",
183     "include/grpc++/grpc++.h",
184     "include/grpc++/health_check_service_interface.h",
185     "include/grpc++/impl/call.h",
186     "include/grpc++/impl/channel_argument_option.h",
187     "include/grpc++/impl/client_unary_call.h",
188     "include/grpc++/impl/codegen/core_codegen.h",
189     "include/grpc++/impl/grpc_library.h",
190     "include/grpc++/impl/method_handler_impl.h",
191     "include/grpc++/impl/rpc_method.h",
192     "include/grpc++/impl/rpc_service_method.h",
193     "include/grpc++/impl/serialization_traits.h",
194     "include/grpc++/impl/server_builder_option.h",
195     "include/grpc++/impl/server_builder_plugin.h",
196     "include/grpc++/impl/server_initializer.h",
197     "include/grpc++/impl/service_type.h",
198     "include/grpc++/security/auth_context.h",
199     "include/grpc++/resource_quota.h",
200     "include/grpc++/security/auth_metadata_processor.h",
201     "include/grpc++/security/credentials.h",
202     "include/grpc++/security/server_credentials.h",
203     "include/grpc++/server.h",
204     "include/grpc++/server_builder.h",
205     "include/grpc++/server_context.h",
206     "include/grpc++/server_posix.h",
207     "include/grpc++/support/async_stream.h",
208     "include/grpc++/support/async_unary_call.h",
209     "include/grpc++/support/byte_buffer.h",
210     "include/grpc++/support/channel_arguments.h",
211     "include/grpc++/support/config.h",
212     "include/grpc++/support/slice.h",
213     "include/grpc++/support/status.h",
214     "include/grpc++/support/status_code_enum.h",
215     "include/grpc++/support/string_ref.h",
216     "include/grpc++/support/stub_options.h",
217     "include/grpc++/support/sync_stream.h",
218     "include/grpc++/support/time.h",
219     "include/grpcpp/alarm.h",
220     "include/grpcpp/alarm_impl.h",
221     "include/grpcpp/channel.h",
222     "include/grpcpp/channel_impl.h",
223     "include/grpcpp/client_context.h",
224     "include/grpcpp/completion_queue.h",
225     "include/grpcpp/completion_queue_impl.h",
226     "include/grpcpp/create_channel.h",
227     "include/grpcpp/create_channel_impl.h",
228     "include/grpcpp/create_channel_posix.h",
229     "include/grpcpp/create_channel_posix_impl.h",
230     "include/grpcpp/ext/health_check_service_server_builder_option.h",
231     "include/grpcpp/generic/async_generic_service.h",
232     "include/grpcpp/generic/generic_stub.h",
233     "include/grpcpp/generic/generic_stub_impl.h",
234     "include/grpcpp/grpcpp.h",
235     "include/grpcpp/health_check_service_interface.h",
236     "include/grpcpp/health_check_service_interface_impl.h",
237     "include/grpcpp/impl/call.h",
238     "include/grpcpp/impl/channel_argument_option.h",
239     "include/grpcpp/impl/client_unary_call.h",
240     "include/grpcpp/impl/codegen/core_codegen.h",
241     "include/grpcpp/impl/grpc_library.h",
242     "include/grpcpp/impl/method_handler_impl.h",
243     "include/grpcpp/impl/rpc_method.h",
244     "include/grpcpp/impl/rpc_service_method.h",
245     "include/grpcpp/impl/serialization_traits.h",
246     "include/grpcpp/impl/server_builder_option.h",
247     "include/grpcpp/impl/server_builder_option_impl.h",
248     "include/grpcpp/impl/server_builder_plugin.h",
249     "include/grpcpp/impl/server_initializer.h",
250     "include/grpcpp/impl/server_initializer_impl.h",
251     "include/grpcpp/impl/service_type.h",
252     "include/grpcpp/resource_quota.h",
253     "include/grpcpp/resource_quota_impl.h",
254     "include/grpcpp/security/auth_context.h",
255     "include/grpcpp/security/auth_metadata_processor.h",
256     "include/grpcpp/security/auth_metadata_processor_impl.h",
257     "include/grpcpp/security/credentials.h",
258     "include/grpcpp/security/credentials_impl.h",
259     "include/grpcpp/security/server_credentials.h",
260     "include/grpcpp/security/server_credentials_impl.h",
261     "include/grpcpp/security/tls_credentials_options.h",
262     "include/grpcpp/server.h",
263     "include/grpcpp/server_impl.h",
264     "include/grpcpp/server_builder.h",
265     "include/grpcpp/server_builder_impl.h",
266     "include/grpcpp/server_context.h",
267     "include/grpcpp/server_posix.h",
268     "include/grpcpp/server_posix_impl.h",
269     "include/grpcpp/support/async_stream.h",
270     "include/grpcpp/support/async_stream_impl.h",
271     "include/grpcpp/support/async_unary_call.h",
272     "include/grpcpp/support/async_unary_call_impl.h",
273     "include/grpcpp/support/byte_buffer.h",
274     "include/grpcpp/support/channel_arguments.h",
275     "include/grpcpp/support/channel_arguments_impl.h",
276     "include/grpcpp/support/client_callback.h",
277     "include/grpcpp/support/client_callback_impl.h",
278     "include/grpcpp/support/client_interceptor.h",
279     "include/grpcpp/support/config.h",
280     "include/grpcpp/support/interceptor.h",
281     "include/grpcpp/support/message_allocator.h",
282     "include/grpcpp/support/method_handler.h",
283     "include/grpcpp/support/proto_buffer_reader.h",
284     "include/grpcpp/support/proto_buffer_writer.h",
285     "include/grpcpp/support/server_callback.h",
286     "include/grpcpp/support/server_callback_impl.h",
287     "include/grpcpp/support/server_interceptor.h",
288     "include/grpcpp/support/slice.h",
289     "include/grpcpp/support/status.h",
290     "include/grpcpp/support/status_code_enum.h",
291     "include/grpcpp/support/string_ref.h",
292     "include/grpcpp/support/stub_options.h",
293     "include/grpcpp/support/sync_stream.h",
294     "include/grpcpp/support/sync_stream_impl.h",
295     "include/grpcpp/support/time.h",
296     "include/grpcpp/support/validate_service_config.h",
297 ]
298
299 grpc_cc_library(
300     name = "gpr",
301     language = "c++",
302     public_hdrs = GPR_PUBLIC_HDRS,
303     standalone = True,
304     deps = [
305         "gpr_base",
306     ],
307 )
308
309 grpc_cc_library(
310     name = "grpc_unsecure",
311     srcs = [
312         "src/core/lib/surface/init.cc",
313         "src/core/lib/surface/init_unsecure.cc",
314         "src/core/plugin_registry/grpc_unsecure_plugin_registry.cc",
315     ],
316     language = "c++",
317     public_hdrs = GRPC_PUBLIC_HDRS,
318     standalone = True,
319     deps = [
320         "grpc_common",
321         "grpc_lb_policy_cds",
322         "grpc_lb_policy_grpclb",
323         "grpc_lb_policy_xds",
324         "grpc_resolver_xds",
325     ],
326 )
327
328 grpc_cc_library(
329     name = "grpc",
330     srcs = [
331         "src/core/lib/surface/init.cc",
332         "src/core/plugin_registry/grpc_plugin_registry.cc",
333     ],
334     language = "c++",
335     public_hdrs = GRPC_PUBLIC_HDRS + GRPC_SECURE_PUBLIC_HDRS,
336     standalone = True,
337     deps = [
338         "grpc_common",
339         "grpc_lb_policy_cds_secure",
340         "grpc_lb_policy_grpclb_secure",
341         "grpc_lb_policy_xds_secure",
342         "grpc_resolver_xds_secure",
343         "grpc_secure",
344         "grpc_transport_chttp2_client_secure",
345         "grpc_transport_chttp2_server_secure",
346     ],
347 )
348
349 grpc_cc_library(
350     name = "grpc++_public_hdrs",
351     hdrs = GRPCXX_PUBLIC_HDRS,
352 )
353
354 grpc_cc_library(
355     name = "grpc++",
356     srcs = [
357         "src/cpp/client/insecure_credentials.cc",
358         "src/cpp/client/secure_credentials.cc",
359         "src/cpp/common/auth_property_iterator.cc",
360         "src/cpp/common/secure_auth_context.cc",
361         "src/cpp/common/secure_channel_arguments.cc",
362         "src/cpp/common/secure_create_auth_context.cc",
363         "src/cpp/common/tls_credentials_options.cc",
364         "src/cpp/common/tls_credentials_options_util.cc",
365         "src/cpp/server/insecure_server_credentials.cc",
366         "src/cpp/server/secure_server_credentials.cc",
367     ],
368     hdrs = [
369         "src/cpp/client/secure_credentials.h",
370         "src/cpp/common/secure_auth_context.h",
371         "src/cpp/common/tls_credentials_options_util.h",
372         "src/cpp/server/secure_server_credentials.h",
373     ],
374     language = "c++",
375     public_hdrs = GRPCXX_PUBLIC_HDRS,
376     standalone = True,
377     deps = [
378         "gpr",
379         "grpc",
380         "grpc++_base",
381         "grpc++_codegen_base",
382         "grpc++_codegen_base_src",
383         "grpc++_codegen_proto",
384         "grpc_secure",
385     ],
386 )
387
388 grpc_cc_library(
389     name = "grpc++_unsecure",
390     srcs = [
391         "src/cpp/client/insecure_credentials.cc",
392         "src/cpp/common/insecure_create_auth_context.cc",
393         "src/cpp/server/insecure_server_credentials.cc",
394     ],
395     language = "c++",
396     standalone = True,
397     deps = [
398         "gpr",
399         "grpc++_base_unsecure",
400         "grpc++_codegen_base",
401         "grpc++_codegen_base_src",
402         "grpc++_codegen_proto",
403         "grpc_unsecure",
404     ],
405 )
406
407 grpc_cc_library(
408     name = "grpc++_error_details",
409     srcs = [
410         "src/cpp/util/error_details.cc",
411     ],
412     hdrs = [
413         "include/grpc++/support/error_details.h",
414         "include/grpcpp/support/error_details.h",
415         "include/grpcpp/support/error_details_impl.h",
416     ],
417     language = "c++",
418     standalone = True,
419     deps = [
420         "grpc++",
421         "//src/proto/grpc/status:status_proto",
422     ],
423 )
424
425 grpc_cc_library(
426     name = "grpc++_alts",
427     srcs = [
428         "src/cpp/common/alts_context.cc",
429         "src/cpp/common/alts_util.cc",
430     ],
431     hdrs = [
432         "include/grpcpp/security/alts_context.h",
433         "include/grpcpp/security/alts_util.h",
434     ],
435     language = "c++",
436     standalone = True,
437     deps = [
438         "alts_upb",
439         "alts_util",
440         "grpc++",
441     ],
442 )
443
444 grpc_cc_library(
445     name = "grpc_csharp_ext",
446     srcs = [
447         "src/csharp/ext/grpc_csharp_ext.c",
448     ],
449     language = "csharp",
450     deps = [
451         "gpr",
452         "grpc",
453     ],
454 )
455
456 grpc_cc_library(
457     name = "census",
458     srcs = [
459         "src/core/ext/filters/census/grpc_context.cc",
460     ],
461     language = "c++",
462     public_hdrs = [
463         "include/grpc/census.h",
464     ],
465     deps = [
466         "grpc_base",
467     ],
468 )
469
470 grpc_cc_library(
471     name = "grpc++_internal_hdrs_only",
472     hdrs = [
473         "include/grpcpp/impl/codegen/sync.h",
474     ],
475     language = "c++",
476     deps = [
477         "gpr_codegen",
478     ],
479 )
480
481 grpc_cc_library(
482     name = "gpr_base",
483     srcs = [
484         "src/core/lib/gpr/alloc.cc",
485         "src/core/lib/gpr/atm.cc",
486         "src/core/lib/gpr/cpu_iphone.cc",
487         "src/core/lib/gpr/cpu_linux.cc",
488         "src/core/lib/gpr/cpu_posix.cc",
489         "src/core/lib/gpr/cpu_windows.cc",
490         "src/core/lib/gpr/env_linux.cc",
491         "src/core/lib/gpr/env_posix.cc",
492         "src/core/lib/gpr/env_windows.cc",
493         "src/core/lib/gpr/log.cc",
494         "src/core/lib/gpr/log_android.cc",
495         "src/core/lib/gpr/log_linux.cc",
496         "src/core/lib/gpr/log_posix.cc",
497         "src/core/lib/gpr/log_windows.cc",
498         "src/core/lib/gpr/murmur_hash.cc",
499         "src/core/lib/gpr/string.cc",
500         "src/core/lib/gpr/string_posix.cc",
501         "src/core/lib/gpr/string_util_windows.cc",
502         "src/core/lib/gpr/string_windows.cc",
503         "src/core/lib/gpr/sync.cc",
504         "src/core/lib/gpr/sync_abseil.cc",
505         "src/core/lib/gpr/sync_posix.cc",
506         "src/core/lib/gpr/sync_windows.cc",
507         "src/core/lib/gpr/time.cc",
508         "src/core/lib/gpr/time_posix.cc",
509         "src/core/lib/gpr/time_precise.cc",
510         "src/core/lib/gpr/time_windows.cc",
511         "src/core/lib/gpr/tls_pthread.cc",
512         "src/core/lib/gpr/tmpfile_msys.cc",
513         "src/core/lib/gpr/tmpfile_posix.cc",
514         "src/core/lib/gpr/tmpfile_windows.cc",
515         "src/core/lib/gpr/wrap_memcpy.cc",
516         "src/core/lib/gprpp/arena.cc",
517         "src/core/lib/gprpp/fork.cc",
518         "src/core/lib/gprpp/global_config_env.cc",
519         "src/core/lib/gprpp/host_port.cc",
520         "src/core/lib/gprpp/mpscq.cc",
521         "src/core/lib/gprpp/thd_posix.cc",
522         "src/core/lib/gprpp/thd_windows.cc",
523         "src/core/lib/profiling/basic_timers.cc",
524         "src/core/lib/profiling/stap_timers.cc",
525     ],
526     hdrs = [
527         "src/core/lib/gpr/alloc.h",
528         "src/core/lib/gpr/arena.h",
529         "src/core/lib/gpr/env.h",
530         "src/core/lib/gpr/murmur_hash.h",
531         "src/core/lib/gpr/spinlock.h",
532         "src/core/lib/gpr/string.h",
533         "src/core/lib/gpr/string_windows.h",
534         "src/core/lib/gpr/time_precise.h",
535         "src/core/lib/gpr/tls.h",
536         "src/core/lib/gpr/tls_gcc.h",
537         "src/core/lib/gpr/tls_msvc.h",
538         "src/core/lib/gpr/tls_pthread.h",
539         "src/core/lib/gpr/tmpfile.h",
540         "src/core/lib/gpr/useful.h",
541         "src/core/lib/gprpp/arena.h",
542         "src/core/lib/gprpp/atomic.h",
543         "src/core/lib/gprpp/fork.h",
544         "src/core/lib/gprpp/global_config.h",
545         "src/core/lib/gprpp/global_config_custom.h",
546         "src/core/lib/gprpp/global_config_env.h",
547         "src/core/lib/gprpp/global_config_generic.h",
548         "src/core/lib/gprpp/host_port.h",
549         "src/core/lib/gprpp/manual_constructor.h",
550         "src/core/lib/gprpp/map.h",
551         "src/core/lib/gprpp/memory.h",
552         "src/core/lib/gprpp/mpscq.h",
553         "src/core/lib/gprpp/string_view.h",
554         "src/core/lib/gprpp/sync.h",
555         "src/core/lib/gprpp/thd.h",
556         "src/core/lib/profiling/timers.h",
557     ],
558     external_deps = [
559         "absl/memory",
560         "absl/strings",
561         "absl/strings:str_format",
562     ],
563     language = "c++",
564     public_hdrs = GPR_PUBLIC_HDRS,
565     deps = [
566         "gpr_codegen",
567         "grpc_codegen",
568     ],
569 )
570
571 grpc_cc_library(
572     name = "gpr_codegen",
573     language = "c++",
574     public_hdrs = [
575         "include/grpc/impl/codegen/atm.h",
576         "include/grpc/impl/codegen/atm_gcc_atomic.h",
577         "include/grpc/impl/codegen/atm_gcc_sync.h",
578         "include/grpc/impl/codegen/atm_windows.h",
579         "include/grpc/impl/codegen/fork.h",
580         "include/grpc/impl/codegen/gpr_slice.h",
581         "include/grpc/impl/codegen/gpr_types.h",
582         "include/grpc/impl/codegen/log.h",
583         "include/grpc/impl/codegen/port_platform.h",
584         "include/grpc/impl/codegen/sync.h",
585         "include/grpc/impl/codegen/sync_abseil.h",
586         "include/grpc/impl/codegen/sync_custom.h",
587         "include/grpc/impl/codegen/sync_generic.h",
588         "include/grpc/impl/codegen/sync_posix.h",
589         "include/grpc/impl/codegen/sync_windows.h",
590     ],
591 )
592
593 grpc_cc_library(
594     name = "grpc_trace",
595     srcs = ["src/core/lib/debug/trace.cc"],
596     hdrs = ["src/core/lib/debug/trace.h"],
597     language = "c++",
598     public_hdrs = GRPC_PUBLIC_HDRS,
599     deps = [
600         "grpc_codegen",
601         ":gpr",
602     ],
603 )
604
605 grpc_cc_library(
606     name = "atomic",
607     language = "c++",
608     public_hdrs = [
609         "src/core/lib/gprpp/atomic.h",
610     ],
611     deps = [
612         "gpr",
613     ],
614 )
615
616 grpc_cc_library(
617     name = "inlined_vector",
618     external_deps = [
619         "absl/container:inlined_vector",
620     ],
621     language = "c++",
622     public_hdrs = [
623         "src/core/lib/gprpp/inlined_vector.h",
624     ],
625     deps = [
626         "gpr_base",
627     ],
628 )
629
630 grpc_cc_library(
631     name = "debug_location",
632     language = "c++",
633     public_hdrs = ["src/core/lib/gprpp/debug_location.h"],
634 )
635
636 grpc_cc_library(
637     name = "optional",
638     external_deps = [
639         "absl/types:optional",
640     ],
641     language = "c++",
642     public_hdrs = [
643         "src/core/lib/gprpp/optional.h",
644     ],
645     deps = [
646         "gpr_base",
647     ],
648 )
649
650 grpc_cc_library(
651     name = "orphanable",
652     language = "c++",
653     public_hdrs = ["src/core/lib/gprpp/orphanable.h"],
654     deps = [
655         "debug_location",
656         "gpr_base",
657         "grpc_trace",
658         "ref_counted",
659         "ref_counted_ptr",
660     ],
661 )
662
663 grpc_cc_library(
664     name = "ref_counted",
665     language = "c++",
666     public_hdrs = ["src/core/lib/gprpp/ref_counted.h"],
667     deps = [
668         "atomic",
669         "debug_location",
670         "gpr_base",
671         "grpc_trace",
672         "ref_counted_ptr",
673     ],
674 )
675
676 grpc_cc_library(
677     name = "ref_counted_ptr",
678     language = "c++",
679     public_hdrs = ["src/core/lib/gprpp/ref_counted_ptr.h"],
680     deps = [
681         "gpr_base",
682     ],
683 )
684
685 grpc_cc_library(
686     name = "grpc_base_c",
687     srcs = [
688         "src/core/lib/avl/avl.cc",
689         "src/core/lib/backoff/backoff.cc",
690         "src/core/lib/channel/channel_args.cc",
691         "src/core/lib/channel/channel_stack.cc",
692         "src/core/lib/channel/channel_stack_builder.cc",
693         "src/core/lib/channel/channel_trace.cc",
694         "src/core/lib/channel/channelz.cc",
695         "src/core/lib/channel/channelz_registry.cc",
696         "src/core/lib/channel/connected_channel.cc",
697         "src/core/lib/channel/handshaker.cc",
698         "src/core/lib/channel/handshaker_registry.cc",
699         "src/core/lib/channel/status_util.cc",
700         "src/core/lib/compression/compression.cc",
701         "src/core/lib/compression/compression_args.cc",
702         "src/core/lib/compression/compression_internal.cc",
703         "src/core/lib/compression/message_compress.cc",
704         "src/core/lib/compression/stream_compression.cc",
705         "src/core/lib/compression/stream_compression_gzip.cc",
706         "src/core/lib/compression/stream_compression_identity.cc",
707         "src/core/lib/debug/stats.cc",
708         "src/core/lib/debug/stats_data.cc",
709         "src/core/lib/http/format_request.cc",
710         "src/core/lib/http/httpcli.cc",
711         "src/core/lib/http/parser.cc",
712         "src/core/lib/iomgr/buffer_list.cc",
713         "src/core/lib/iomgr/call_combiner.cc",
714         "src/core/lib/iomgr/cfstream_handle.cc",
715         "src/core/lib/iomgr/combiner.cc",
716         "src/core/lib/iomgr/endpoint.cc",
717         "src/core/lib/iomgr/endpoint_cfstream.cc",
718         "src/core/lib/iomgr/endpoint_pair_posix.cc",
719         "src/core/lib/iomgr/endpoint_pair_uv.cc",
720         "src/core/lib/iomgr/endpoint_pair_windows.cc",
721         "src/core/lib/iomgr/error.cc",
722         "src/core/lib/iomgr/error_cfstream.cc",
723         "src/core/lib/iomgr/ev_epoll1_linux.cc",
724         "src/core/lib/iomgr/ev_epollex_linux.cc",
725         "src/core/lib/iomgr/ev_poll_posix.cc",
726         "src/core/lib/iomgr/ev_posix.cc",
727         "src/core/lib/iomgr/ev_windows.cc",
728         "src/core/lib/iomgr/exec_ctx.cc",
729         "src/core/lib/iomgr/executor.cc",
730         "src/core/lib/iomgr/executor/mpmcqueue.cc",
731         "src/core/lib/iomgr/executor/threadpool.cc",
732         "src/core/lib/iomgr/fork_posix.cc",
733         "src/core/lib/iomgr/fork_windows.cc",
734         "src/core/lib/iomgr/gethostname_fallback.cc",
735         "src/core/lib/iomgr/gethostname_host_name_max.cc",
736         "src/core/lib/iomgr/gethostname_sysconf.cc",
737         "src/core/lib/iomgr/grpc_if_nametoindex_posix.cc",
738         "src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc",
739         "src/core/lib/iomgr/internal_errqueue.cc",
740         "src/core/lib/iomgr/iocp_windows.cc",
741         "src/core/lib/iomgr/iomgr.cc",
742         "src/core/lib/iomgr/iomgr_custom.cc",
743         "src/core/lib/iomgr/iomgr_internal.cc",
744         "src/core/lib/iomgr/iomgr_posix.cc",
745         "src/core/lib/iomgr/iomgr_posix_cfstream.cc",
746         "src/core/lib/iomgr/iomgr_uv.cc",
747         "src/core/lib/iomgr/iomgr_windows.cc",
748         "src/core/lib/iomgr/is_epollexclusive_available.cc",
749         "src/core/lib/iomgr/load_file.cc",
750         "src/core/lib/iomgr/lockfree_event.cc",
751         "src/core/lib/iomgr/polling_entity.cc",
752         "src/core/lib/iomgr/pollset.cc",
753         "src/core/lib/iomgr/pollset_custom.cc",
754         "src/core/lib/iomgr/pollset_set.cc",
755         "src/core/lib/iomgr/pollset_set_custom.cc",
756         "src/core/lib/iomgr/pollset_set_windows.cc",
757         "src/core/lib/iomgr/pollset_uv.cc",
758         "src/core/lib/iomgr/pollset_windows.cc",
759         "src/core/lib/iomgr/resolve_address.cc",
760         "src/core/lib/iomgr/resolve_address_custom.cc",
761         "src/core/lib/iomgr/resolve_address_posix.cc",
762         "src/core/lib/iomgr/resolve_address_windows.cc",
763         "src/core/lib/iomgr/resource_quota.cc",
764         "src/core/lib/iomgr/sockaddr_utils.cc",
765         "src/core/lib/iomgr/socket_factory_posix.cc",
766         "src/core/lib/iomgr/socket_mutator.cc",
767         "src/core/lib/iomgr/socket_utils_common_posix.cc",
768         "src/core/lib/iomgr/socket_utils_linux.cc",
769         "src/core/lib/iomgr/socket_utils_posix.cc",
770         "src/core/lib/iomgr/socket_utils_uv.cc",
771         "src/core/lib/iomgr/socket_utils_windows.cc",
772         "src/core/lib/iomgr/socket_windows.cc",
773         "src/core/lib/iomgr/tcp_client.cc",
774         "src/core/lib/iomgr/tcp_client_cfstream.cc",
775         "src/core/lib/iomgr/tcp_client_custom.cc",
776         "src/core/lib/iomgr/tcp_client_posix.cc",
777         "src/core/lib/iomgr/tcp_client_windows.cc",
778         "src/core/lib/iomgr/tcp_custom.cc",
779         "src/core/lib/iomgr/tcp_posix.cc",
780         "src/core/lib/iomgr/tcp_server.cc",
781         "src/core/lib/iomgr/tcp_server_custom.cc",
782         "src/core/lib/iomgr/tcp_server_posix.cc",
783         "src/core/lib/iomgr/tcp_server_utils_posix_common.cc",
784         "src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc",
785         "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc",
786         "src/core/lib/iomgr/tcp_server_windows.cc",
787         "src/core/lib/iomgr/tcp_uv.cc",
788         "src/core/lib/iomgr/tcp_windows.cc",
789         "src/core/lib/iomgr/time_averaged_stats.cc",
790         "src/core/lib/iomgr/timer.cc",
791         "src/core/lib/iomgr/timer_custom.cc",
792         "src/core/lib/iomgr/timer_generic.cc",
793         "src/core/lib/iomgr/timer_heap.cc",
794         "src/core/lib/iomgr/timer_manager.cc",
795         "src/core/lib/iomgr/timer_uv.cc",
796         "src/core/lib/iomgr/udp_server.cc",
797         "src/core/lib/iomgr/unix_sockets_posix.cc",
798         "src/core/lib/iomgr/unix_sockets_posix_noop.cc",
799         "src/core/lib/iomgr/wakeup_fd_eventfd.cc",
800         "src/core/lib/iomgr/wakeup_fd_nospecial.cc",
801         "src/core/lib/iomgr/wakeup_fd_pipe.cc",
802         "src/core/lib/iomgr/wakeup_fd_posix.cc",
803         "src/core/lib/iomgr/work_serializer.cc",
804         "src/core/lib/json/json_reader.cc",
805         "src/core/lib/json/json_writer.cc",
806         "src/core/lib/slice/b64.cc",
807         "src/core/lib/slice/percent_encoding.cc",
808         "src/core/lib/slice/slice.cc",
809         "src/core/lib/slice/slice_buffer.cc",
810         "src/core/lib/slice/slice_intern.cc",
811         "src/core/lib/slice/slice_string_helpers.cc",
812         "src/core/lib/surface/api_trace.cc",
813         "src/core/lib/surface/byte_buffer.cc",
814         "src/core/lib/surface/byte_buffer_reader.cc",
815         "src/core/lib/surface/call.cc",
816         "src/core/lib/surface/call_details.cc",
817         "src/core/lib/surface/call_log_batch.cc",
818         "src/core/lib/surface/channel.cc",
819         "src/core/lib/surface/channel_init.cc",
820         "src/core/lib/surface/channel_ping.cc",
821         "src/core/lib/surface/channel_stack_type.cc",
822         "src/core/lib/surface/completion_queue.cc",
823         "src/core/lib/surface/completion_queue_factory.cc",
824         "src/core/lib/surface/event_string.cc",
825         "src/core/lib/surface/metadata_array.cc",
826         "src/core/lib/surface/server.cc",
827         "src/core/lib/surface/validate_metadata.cc",
828         "src/core/lib/surface/version.cc",
829         "src/core/lib/transport/bdp_estimator.cc",
830         "src/core/lib/transport/byte_stream.cc",
831         "src/core/lib/transport/connectivity_state.cc",
832         "src/core/lib/transport/error_utils.cc",
833         "src/core/lib/transport/metadata.cc",
834         "src/core/lib/transport/metadata_batch.cc",
835         "src/core/lib/transport/pid_controller.cc",
836         "src/core/lib/transport/static_metadata.cc",
837         "src/core/lib/transport/status_conversion.cc",
838         "src/core/lib/transport/status_metadata.cc",
839         "src/core/lib/transport/timeout_encoding.cc",
840         "src/core/lib/transport/transport.cc",
841         "src/core/lib/transport/transport_op_string.cc",
842         "src/core/lib/uri/uri_parser.cc",
843     ],
844     hdrs = [
845         "src/core/lib/avl/avl.h",
846         "src/core/lib/backoff/backoff.h",
847         "src/core/lib/channel/channel_args.h",
848         "src/core/lib/channel/channel_stack.h",
849         "src/core/lib/channel/channel_stack_builder.h",
850         "src/core/lib/channel/channel_trace.h",
851         "src/core/lib/channel/channelz.h",
852         "src/core/lib/channel/channelz_registry.h",
853         "src/core/lib/channel/connected_channel.h",
854         "src/core/lib/channel/context.h",
855         "src/core/lib/channel/handshaker.h",
856         "src/core/lib/channel/handshaker_factory.h",
857         "src/core/lib/channel/handshaker_registry.h",
858         "src/core/lib/channel/status_util.h",
859         "src/core/lib/compression/algorithm_metadata.h",
860         "src/core/lib/compression/compression_args.h",
861         "src/core/lib/compression/compression_internal.h",
862         "src/core/lib/compression/message_compress.h",
863         "src/core/lib/compression/stream_compression.h",
864         "src/core/lib/compression/stream_compression_gzip.h",
865         "src/core/lib/compression/stream_compression_identity.h",
866         "src/core/lib/debug/stats.h",
867         "src/core/lib/debug/stats_data.h",
868         "src/core/lib/http/format_request.h",
869         "src/core/lib/http/httpcli.h",
870         "src/core/lib/http/parser.h",
871         "src/core/lib/iomgr/block_annotate.h",
872         "src/core/lib/iomgr/buffer_list.h",
873         "src/core/lib/iomgr/call_combiner.h",
874         "src/core/lib/iomgr/cfstream_handle.h",
875         "src/core/lib/iomgr/closure.h",
876         "src/core/lib/iomgr/combiner.h",
877         "src/core/lib/iomgr/dynamic_annotations.h",
878         "src/core/lib/iomgr/endpoint.h",
879         "src/core/lib/iomgr/endpoint_cfstream.h",
880         "src/core/lib/iomgr/endpoint_pair.h",
881         "src/core/lib/iomgr/error.h",
882         "src/core/lib/iomgr/error_cfstream.h",
883         "src/core/lib/iomgr/error_internal.h",
884         "src/core/lib/iomgr/ev_epoll1_linux.h",
885         "src/core/lib/iomgr/ev_epollex_linux.h",
886         "src/core/lib/iomgr/ev_poll_posix.h",
887         "src/core/lib/iomgr/ev_posix.h",
888         "src/core/lib/iomgr/exec_ctx.h",
889         "src/core/lib/iomgr/executor.h",
890         "src/core/lib/iomgr/executor/mpmcqueue.h",
891         "src/core/lib/iomgr/executor/threadpool.h",
892         "src/core/lib/iomgr/gethostname.h",
893         "src/core/lib/iomgr/grpc_if_nametoindex.h",
894         "src/core/lib/iomgr/internal_errqueue.h",
895         "src/core/lib/iomgr/iocp_windows.h",
896         "src/core/lib/iomgr/iomgr.h",
897         "src/core/lib/iomgr/iomgr_custom.h",
898         "src/core/lib/iomgr/iomgr_internal.h",
899         "src/core/lib/iomgr/iomgr_posix.h",
900         "src/core/lib/iomgr/is_epollexclusive_available.h",
901         "src/core/lib/iomgr/load_file.h",
902         "src/core/lib/iomgr/lockfree_event.h",
903         "src/core/lib/iomgr/nameser.h",
904         "src/core/lib/iomgr/polling_entity.h",
905         "src/core/lib/iomgr/pollset.h",
906         "src/core/lib/iomgr/pollset_custom.h",
907         "src/core/lib/iomgr/pollset_set.h",
908         "src/core/lib/iomgr/pollset_set_custom.h",
909         "src/core/lib/iomgr/pollset_set_windows.h",
910         "src/core/lib/iomgr/pollset_uv.h",
911         "src/core/lib/iomgr/pollset_windows.h",
912         "src/core/lib/iomgr/port.h",
913         "src/core/lib/iomgr/python_util.h",
914         "src/core/lib/iomgr/resolve_address.h",
915         "src/core/lib/iomgr/resolve_address_custom.h",
916         "src/core/lib/iomgr/resource_quota.h",
917         "src/core/lib/iomgr/sockaddr.h",
918         "src/core/lib/iomgr/sockaddr_custom.h",
919         "src/core/lib/iomgr/sockaddr_posix.h",
920         "src/core/lib/iomgr/sockaddr_utils.h",
921         "src/core/lib/iomgr/sockaddr_windows.h",
922         "src/core/lib/iomgr/socket_factory_posix.h",
923         "src/core/lib/iomgr/socket_mutator.h",
924         "src/core/lib/iomgr/socket_utils.h",
925         "src/core/lib/iomgr/socket_utils_posix.h",
926         "src/core/lib/iomgr/socket_windows.h",
927         "src/core/lib/iomgr/sys_epoll_wrapper.h",
928         "src/core/lib/iomgr/tcp_client.h",
929         "src/core/lib/iomgr/tcp_client_posix.h",
930         "src/core/lib/iomgr/tcp_custom.h",
931         "src/core/lib/iomgr/tcp_posix.h",
932         "src/core/lib/iomgr/tcp_server.h",
933         "src/core/lib/iomgr/tcp_server_utils_posix.h",
934         "src/core/lib/iomgr/tcp_windows.h",
935         "src/core/lib/iomgr/time_averaged_stats.h",
936         "src/core/lib/iomgr/timer.h",
937         "src/core/lib/iomgr/timer_custom.h",
938         "src/core/lib/iomgr/timer_generic.h",
939         "src/core/lib/iomgr/timer_heap.h",
940         "src/core/lib/iomgr/timer_manager.h",
941         "src/core/lib/iomgr/udp_server.h",
942         "src/core/lib/iomgr/unix_sockets_posix.h",
943         "src/core/lib/iomgr/wakeup_fd_pipe.h",
944         "src/core/lib/iomgr/wakeup_fd_posix.h",
945         "src/core/lib/iomgr/work_serializer.h",
946         "src/core/lib/json/json.h",
947         "src/core/lib/slice/b64.h",
948         "src/core/lib/slice/percent_encoding.h",
949         "src/core/lib/slice/slice_hash_table.h",
950         "src/core/lib/slice/slice_internal.h",
951         "src/core/lib/slice/slice_string_helpers.h",
952         "src/core/lib/slice/slice_utils.h",
953         "src/core/lib/slice/slice_weak_hash_table.h",
954         "src/core/lib/surface/api_trace.h",
955         "src/core/lib/surface/call.h",
956         "src/core/lib/surface/call_test_only.h",
957         "src/core/lib/surface/channel.h",
958         "src/core/lib/surface/channel_init.h",
959         "src/core/lib/surface/channel_stack_type.h",
960         "src/core/lib/surface/completion_queue.h",
961         "src/core/lib/surface/completion_queue_factory.h",
962         "src/core/lib/surface/event_string.h",
963         "src/core/lib/surface/init.h",
964         "src/core/lib/surface/lame_client.h",
965         "src/core/lib/surface/server.h",
966         "src/core/lib/surface/validate_metadata.h",
967         "src/core/lib/transport/bdp_estimator.h",
968         "src/core/lib/transport/byte_stream.h",
969         "src/core/lib/transport/connectivity_state.h",
970         "src/core/lib/transport/error_utils.h",
971         "src/core/lib/transport/http2_errors.h",
972         "src/core/lib/transport/metadata.h",
973         "src/core/lib/transport/metadata_batch.h",
974         "src/core/lib/transport/pid_controller.h",
975         "src/core/lib/transport/static_metadata.h",
976         "src/core/lib/transport/status_conversion.h",
977         "src/core/lib/transport/status_metadata.h",
978         "src/core/lib/transport/timeout_encoding.h",
979         "src/core/lib/transport/transport.h",
980         "src/core/lib/transport/transport_impl.h",
981         "src/core/lib/uri/uri_parser.h",
982     ],
983     external_deps = [
984         "madler_zlib",
985     ],
986     language = "c++",
987     public_hdrs = GRPC_PUBLIC_HDRS,
988     use_cfstream = True,
989     deps = [
990         "eventmanager_libuv",
991         "gpr_base",
992         "grpc_codegen",
993         "grpc_trace",
994         "inlined_vector",
995         "optional",
996         "orphanable",
997         "ref_counted",
998         "ref_counted_ptr",
999     ],
1000 )
1001
1002 grpc_cc_library(
1003     name = "grpc_base",
1004     srcs = [
1005         "src/core/lib/surface/lame_client.cc",
1006     ],
1007     language = "c++",
1008     deps = [
1009         "atomic",
1010         "grpc_base_c",
1011     ],
1012 )
1013
1014 grpc_cc_library(
1015     name = "grpc_common",
1016     language = "c++",
1017     deps = [
1018         "grpc_base",
1019         # standard plugins
1020         "census",
1021         "grpc_deadline_filter",
1022         "grpc_client_authority_filter",
1023         "grpc_lb_policy_pick_first",
1024         "grpc_lb_policy_round_robin",
1025         "grpc_client_idle_filter",
1026         "grpc_max_age_filter",
1027         "grpc_message_size_filter",
1028         "grpc_resolver_dns_ares",
1029         "grpc_resolver_fake",
1030         "grpc_resolver_dns_native",
1031         "grpc_resolver_sockaddr",
1032         "grpc_transport_chttp2_client_insecure",
1033         "grpc_transport_chttp2_server_insecure",
1034         "grpc_transport_inproc",
1035         "grpc_workaround_cronet_compression_filter",
1036         "grpc_server_backward_compatibility",
1037     ],
1038 )
1039
1040 grpc_cc_library(
1041     name = "grpc_client_channel",
1042     srcs = [
1043         "src/core/ext/filters/client_channel/backend_metric.cc",
1044         "src/core/ext/filters/client_channel/backup_poller.cc",
1045         "src/core/ext/filters/client_channel/channel_connectivity.cc",
1046         "src/core/ext/filters/client_channel/client_channel.cc",
1047         "src/core/ext/filters/client_channel/client_channel_channelz.cc",
1048         "src/core/ext/filters/client_channel/client_channel_factory.cc",
1049         "src/core/ext/filters/client_channel/client_channel_plugin.cc",
1050         "src/core/ext/filters/client_channel/global_subchannel_pool.cc",
1051         "src/core/ext/filters/client_channel/health/health_check_client.cc",
1052         "src/core/ext/filters/client_channel/http_connect_handshaker.cc",
1053         "src/core/ext/filters/client_channel/http_proxy.cc",
1054         "src/core/ext/filters/client_channel/lb_policy.cc",
1055         "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc",
1056         "src/core/ext/filters/client_channel/lb_policy_registry.cc",
1057         "src/core/ext/filters/client_channel/local_subchannel_pool.cc",
1058         "src/core/ext/filters/client_channel/parse_address.cc",
1059         "src/core/ext/filters/client_channel/proxy_mapper_registry.cc",
1060         "src/core/ext/filters/client_channel/resolver.cc",
1061         "src/core/ext/filters/client_channel/resolver_registry.cc",
1062         "src/core/ext/filters/client_channel/resolver_result_parsing.cc",
1063         "src/core/ext/filters/client_channel/resolving_lb_policy.cc",
1064         "src/core/ext/filters/client_channel/retry_throttle.cc",
1065         "src/core/ext/filters/client_channel/server_address.cc",
1066         "src/core/ext/filters/client_channel/service_config.cc",
1067         "src/core/ext/filters/client_channel/subchannel.cc",
1068         "src/core/ext/filters/client_channel/subchannel_pool_interface.cc",
1069     ],
1070     hdrs = [
1071         "src/core/ext/filters/client_channel/backend_metric.h",
1072         "src/core/ext/filters/client_channel/backup_poller.h",
1073         "src/core/ext/filters/client_channel/client_channel.h",
1074         "src/core/ext/filters/client_channel/client_channel_channelz.h",
1075         "src/core/ext/filters/client_channel/client_channel_factory.h",
1076         "src/core/ext/filters/client_channel/connector.h",
1077         "src/core/ext/filters/client_channel/global_subchannel_pool.h",
1078         "src/core/ext/filters/client_channel/health/health_check_client.h",
1079         "src/core/ext/filters/client_channel/http_connect_handshaker.h",
1080         "src/core/ext/filters/client_channel/http_proxy.h",
1081         "src/core/ext/filters/client_channel/lb_policy.h",
1082         "src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h",
1083         "src/core/ext/filters/client_channel/lb_policy_factory.h",
1084         "src/core/ext/filters/client_channel/lb_policy_registry.h",
1085         "src/core/ext/filters/client_channel/local_subchannel_pool.h",
1086         "src/core/ext/filters/client_channel/parse_address.h",
1087         "src/core/ext/filters/client_channel/proxy_mapper.h",
1088         "src/core/ext/filters/client_channel/proxy_mapper_registry.h",
1089         "src/core/ext/filters/client_channel/resolver.h",
1090         "src/core/ext/filters/client_channel/resolver_factory.h",
1091         "src/core/ext/filters/client_channel/resolver_registry.h",
1092         "src/core/ext/filters/client_channel/resolver_result_parsing.h",
1093         "src/core/ext/filters/client_channel/resolving_lb_policy.h",
1094         "src/core/ext/filters/client_channel/retry_throttle.h",
1095         "src/core/ext/filters/client_channel/server_address.h",
1096         "src/core/ext/filters/client_channel/service_config.h",
1097         "src/core/ext/filters/client_channel/subchannel.h",
1098         "src/core/ext/filters/client_channel/subchannel_interface.h",
1099         "src/core/ext/filters/client_channel/subchannel_pool_interface.h",
1100     ],
1101     language = "c++",
1102     deps = [
1103         "gpr_base",
1104         "grpc_base",
1105         "grpc_client_authority_filter",
1106         "grpc_deadline_filter",
1107         "grpc_health_upb",
1108         "inlined_vector",
1109         "orphanable",
1110         "ref_counted",
1111         "ref_counted_ptr",
1112         "udpa_orca_upb",
1113     ],
1114 )
1115
1116 grpc_cc_library(
1117     name = "grpc_client_idle_filter",
1118     srcs = [
1119         "src/core/ext/filters/client_idle/client_idle_filter.cc",
1120     ],
1121     language = "c++",
1122     deps = [
1123         "grpc_base",
1124     ],
1125 )
1126
1127 grpc_cc_library(
1128     name = "grpc_max_age_filter",
1129     srcs = [
1130         "src/core/ext/filters/max_age/max_age_filter.cc",
1131     ],
1132     hdrs = [
1133         "src/core/ext/filters/max_age/max_age_filter.h",
1134     ],
1135     language = "c++",
1136     deps = [
1137         "grpc_base",
1138     ],
1139 )
1140
1141 grpc_cc_library(
1142     name = "grpc_deadline_filter",
1143     srcs = [
1144         "src/core/ext/filters/deadline/deadline_filter.cc",
1145     ],
1146     hdrs = [
1147         "src/core/ext/filters/deadline/deadline_filter.h",
1148     ],
1149     language = "c++",
1150     deps = [
1151         "grpc_base",
1152     ],
1153 )
1154
1155 grpc_cc_library(
1156     name = "grpc_client_authority_filter",
1157     srcs = [
1158         "src/core/ext/filters/http/client_authority_filter.cc",
1159     ],
1160     hdrs = [
1161         "src/core/ext/filters/http/client_authority_filter.h",
1162     ],
1163     language = "c++",
1164     deps = [
1165         "grpc_base",
1166     ],
1167 )
1168
1169 grpc_cc_library(
1170     name = "grpc_message_size_filter",
1171     srcs = [
1172         "src/core/ext/filters/message_size/message_size_filter.cc",
1173     ],
1174     hdrs = [
1175         "src/core/ext/filters/message_size/message_size_filter.h",
1176     ],
1177     language = "c++",
1178     deps = [
1179         "grpc_base",
1180         "grpc_client_channel",
1181     ],
1182 )
1183
1184 grpc_cc_library(
1185     name = "grpc_http_filters",
1186     srcs = [
1187         "src/core/ext/filters/http/client/http_client_filter.cc",
1188         "src/core/ext/filters/http/http_filters_plugin.cc",
1189         "src/core/ext/filters/http/message_compress/message_compress_filter.cc",
1190         "src/core/ext/filters/http/server/http_server_filter.cc",
1191     ],
1192     hdrs = [
1193         "src/core/ext/filters/http/client/http_client_filter.h",
1194         "src/core/ext/filters/http/message_compress/message_compress_filter.h",
1195         "src/core/ext/filters/http/server/http_server_filter.h",
1196     ],
1197     language = "c++",
1198     deps = [
1199         "grpc_base",
1200     ],
1201 )
1202
1203 grpc_cc_library(
1204     name = "grpc_workaround_cronet_compression_filter",
1205     srcs = [
1206         "src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc",
1207     ],
1208     hdrs = [
1209         "src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h",
1210     ],
1211     language = "c++",
1212     deps = [
1213         "grpc_base",
1214         "grpc_server_backward_compatibility",
1215     ],
1216 )
1217
1218 grpc_cc_library(
1219     name = "grpc_codegen",
1220     language = "c++",
1221     public_hdrs = [
1222         "include/grpc/impl/codegen/byte_buffer.h",
1223         "include/grpc/impl/codegen/byte_buffer_reader.h",
1224         "include/grpc/impl/codegen/compression_types.h",
1225         "include/grpc/impl/codegen/connectivity_state.h",
1226         "include/grpc/impl/codegen/grpc_types.h",
1227         "include/grpc/impl/codegen/propagation_bits.h",
1228         "include/grpc/impl/codegen/status.h",
1229         "include/grpc/impl/codegen/slice.h",
1230     ],
1231     deps = [
1232         "gpr_codegen",
1233     ],
1234 )
1235
1236 grpc_cc_library(
1237     name = "grpc_lb_policy_grpclb",
1238     srcs = [
1239         "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
1240         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
1241         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.cc",
1242         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
1243         "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
1244     ],
1245     hdrs = [
1246         "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
1247         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
1248         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h",
1249         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
1250         "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
1251     ],
1252     language = "c++",
1253     deps = [
1254         "grpc_base",
1255         "grpc_client_channel",
1256         "grpc_lb_upb",
1257         "grpc_resolver_fake",
1258         "grpc_transport_chttp2_client_insecure",
1259     ],
1260 )
1261
1262 grpc_cc_library(
1263     name = "grpc_lb_policy_grpclb_secure",
1264     srcs = [
1265         "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc",
1266         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc",
1267         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc",
1268         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc",
1269         "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc",
1270     ],
1271     hdrs = [
1272         "src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h",
1273         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
1274         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h",
1275         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h",
1276         "src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h",
1277     ],
1278     language = "c++",
1279     deps = [
1280         "grpc_base",
1281         "grpc_client_channel",
1282         "grpc_lb_upb",
1283         "grpc_resolver_fake",
1284         "grpc_secure",
1285         "grpc_transport_chttp2_client_secure",
1286     ],
1287 )
1288
1289 grpc_cc_library(
1290     name = "grpc_xds_client",
1291     srcs = [
1292         "src/core/ext/filters/client_channel/xds/xds_api.cc",
1293         "src/core/ext/filters/client_channel/xds/xds_bootstrap.cc",
1294         "src/core/ext/filters/client_channel/xds/xds_channel.cc",
1295         "src/core/ext/filters/client_channel/xds/xds_client.cc",
1296         "src/core/ext/filters/client_channel/xds/xds_client_stats.cc",
1297     ],
1298     hdrs = [
1299         "src/core/ext/filters/client_channel/xds/xds_api.h",
1300         "src/core/ext/filters/client_channel/xds/xds_bootstrap.h",
1301         "src/core/ext/filters/client_channel/xds/xds_channel.h",
1302         "src/core/ext/filters/client_channel/xds/xds_channel_args.h",
1303         "src/core/ext/filters/client_channel/xds/xds_client.h",
1304         "src/core/ext/filters/client_channel/xds/xds_client_stats.h",
1305     ],
1306     language = "c++",
1307     deps = [
1308         "envoy_ads_upb",
1309         "grpc_base",
1310         "grpc_client_channel",
1311     ],
1312 )
1313
1314 grpc_cc_library(
1315     name = "grpc_xds_client_secure",
1316     srcs = [
1317         "src/core/ext/filters/client_channel/xds/xds_api.cc",
1318         "src/core/ext/filters/client_channel/xds/xds_bootstrap.cc",
1319         "src/core/ext/filters/client_channel/xds/xds_channel_secure.cc",
1320         "src/core/ext/filters/client_channel/xds/xds_client.cc",
1321         "src/core/ext/filters/client_channel/xds/xds_client_stats.cc",
1322     ],
1323     hdrs = [
1324         "src/core/ext/filters/client_channel/xds/xds_api.h",
1325         "src/core/ext/filters/client_channel/xds/xds_bootstrap.h",
1326         "src/core/ext/filters/client_channel/xds/xds_channel.h",
1327         "src/core/ext/filters/client_channel/xds/xds_channel_args.h",
1328         "src/core/ext/filters/client_channel/xds/xds_client.h",
1329         "src/core/ext/filters/client_channel/xds/xds_client_stats.h",
1330     ],
1331     language = "c++",
1332     deps = [
1333         "envoy_ads_upb",
1334         "grpc_base",
1335         "grpc_client_channel",
1336         "grpc_secure",
1337     ],
1338 )
1339
1340 grpc_cc_library(
1341     name = "grpc_lb_policy_xds",
1342     srcs = [
1343         "src/core/ext/filters/client_channel/lb_policy/xds/xds.cc",
1344     ],
1345     hdrs = [
1346         "src/core/ext/filters/client_channel/lb_policy/xds/xds.h",
1347     ],
1348     language = "c++",
1349     deps = [
1350         "grpc_base",
1351         "grpc_client_channel",
1352         "grpc_xds_client",
1353     ],
1354 )
1355
1356 grpc_cc_library(
1357     name = "grpc_lb_policy_xds_secure",
1358     srcs = [
1359         "src/core/ext/filters/client_channel/lb_policy/xds/xds.cc",
1360     ],
1361     hdrs = [
1362         "src/core/ext/filters/client_channel/lb_policy/xds/xds.h",
1363     ],
1364     language = "c++",
1365     deps = [
1366         "grpc_base",
1367         "grpc_client_channel",
1368         "grpc_xds_client_secure",
1369     ],
1370 )
1371
1372 grpc_cc_library(
1373     name = "grpc_lb_policy_cds",
1374     srcs = [
1375         "src/core/ext/filters/client_channel/lb_policy/xds/cds.cc",
1376     ],
1377     language = "c++",
1378     deps = [
1379         "grpc_base",
1380         "grpc_client_channel",
1381         "grpc_xds_client",
1382     ],
1383 )
1384
1385 grpc_cc_library(
1386     name = "grpc_lb_policy_cds_secure",
1387     srcs = [
1388         "src/core/ext/filters/client_channel/lb_policy/xds/cds.cc",
1389     ],
1390     language = "c++",
1391     deps = [
1392         "grpc_base",
1393         "grpc_client_channel",
1394         "grpc_xds_client_secure",
1395     ],
1396 )
1397
1398 grpc_cc_library(
1399     name = "grpc_lb_subchannel_list",
1400     hdrs = [
1401         "src/core/ext/filters/client_channel/lb_policy/subchannel_list.h",
1402     ],
1403     language = "c++",
1404     deps = [
1405         "grpc_base",
1406         "grpc_client_channel",
1407     ],
1408 )
1409
1410 grpc_cc_library(
1411     name = "grpc_lb_policy_pick_first",
1412     srcs = [
1413         "src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc",
1414     ],
1415     language = "c++",
1416     deps = [
1417         "grpc_base",
1418         "grpc_client_channel",
1419         "grpc_lb_subchannel_list",
1420     ],
1421 )
1422
1423 grpc_cc_library(
1424     name = "grpc_lb_policy_round_robin",
1425     srcs = [
1426         "src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc",
1427     ],
1428     language = "c++",
1429     deps = [
1430         "grpc_base",
1431         "grpc_client_channel",
1432         "grpc_lb_subchannel_list",
1433     ],
1434 )
1435
1436 grpc_cc_library(
1437     name = "lb_server_load_reporting_filter",
1438     srcs = [
1439         "src/core/ext/filters/load_reporting/server_load_reporting_filter.cc",
1440     ],
1441     hdrs = [
1442         "src/core/ext/filters/load_reporting/registered_opencensus_objects.h",
1443         "src/core/ext/filters/load_reporting/server_load_reporting_filter.h",
1444         "src/cpp/server/load_reporter/constants.h",
1445     ],
1446     external_deps = [
1447         "opencensus-stats",
1448     ],
1449     language = "c++",
1450     deps = [
1451         "grpc++_base",
1452         "grpc_secure",
1453     ],
1454     alwayslink = 1,
1455 )
1456
1457 grpc_cc_library(
1458     name = "lb_load_data_store",
1459     srcs = [
1460         "src/cpp/server/load_reporter/load_data_store.cc",
1461     ],
1462     hdrs = [
1463         "src/cpp/server/load_reporter/constants.h",
1464         "src/cpp/server/load_reporter/load_data_store.h",
1465     ],
1466     language = "c++",
1467     deps = [
1468         "grpc++",
1469     ],
1470 )
1471
1472 grpc_cc_library(
1473     name = "lb_server_load_reporting_service_server_builder_plugin",
1474     srcs = [
1475         "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.cc",
1476     ],
1477     hdrs = [
1478         "src/cpp/server/load_reporter/load_reporting_service_server_builder_plugin.h",
1479     ],
1480     language = "c++",
1481     deps = [
1482         "lb_load_reporter_service",
1483     ],
1484 )
1485
1486 grpc_cc_library(
1487     name = "grpcpp_server_load_reporting",
1488     srcs = [
1489         "src/cpp/server/load_reporter/load_reporting_service_server_builder_option.cc",
1490         "src/cpp/server/load_reporter/util.cc",
1491     ],
1492     language = "c++",
1493     public_hdrs = [
1494         "include/grpcpp/ext/server_load_reporting.h",
1495         "include/grpcpp/ext/server_load_reporting_impl.h",
1496     ],
1497     deps = [
1498         "lb_server_load_reporting_filter",
1499         "lb_server_load_reporting_service_server_builder_plugin",
1500     ],
1501 )
1502
1503 grpc_cc_library(
1504     name = "lb_load_reporter_service",
1505     srcs = [
1506         "src/cpp/server/load_reporter/load_reporter_async_service_impl.cc",
1507     ],
1508     hdrs = [
1509         "src/cpp/server/load_reporter/load_reporter_async_service_impl.h",
1510     ],
1511     language = "c++",
1512     deps = [
1513         "lb_load_reporter",
1514     ],
1515 )
1516
1517 grpc_cc_library(
1518     name = "lb_get_cpu_stats",
1519     srcs = [
1520         "src/cpp/server/load_reporter/get_cpu_stats_linux.cc",
1521         "src/cpp/server/load_reporter/get_cpu_stats_macos.cc",
1522         "src/cpp/server/load_reporter/get_cpu_stats_unsupported.cc",
1523         "src/cpp/server/load_reporter/get_cpu_stats_windows.cc",
1524     ],
1525     hdrs = [
1526         "src/cpp/server/load_reporter/get_cpu_stats.h",
1527     ],
1528     language = "c++",
1529     deps = [
1530         "grpc++",
1531     ],
1532 )
1533
1534 grpc_cc_library(
1535     name = "lb_load_reporter",
1536     srcs = [
1537         "src/cpp/server/load_reporter/load_reporter.cc",
1538     ],
1539     hdrs = [
1540         "src/cpp/server/load_reporter/constants.h",
1541         "src/cpp/server/load_reporter/load_reporter.h",
1542     ],
1543     external_deps = [
1544         "opencensus-stats",
1545     ],
1546     language = "c++",
1547     deps = [
1548         "lb_get_cpu_stats",
1549         "lb_load_data_store",
1550         "//src/proto/grpc/lb/v1:load_reporter_proto",
1551     ],
1552 )
1553
1554 grpc_cc_library(
1555     name = "grpc_resolver_dns_selection",
1556     srcs = [
1557         "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc",
1558     ],
1559     hdrs = [
1560         "src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h",
1561     ],
1562     language = "c++",
1563     deps = [
1564         "grpc_base",
1565     ],
1566 )
1567
1568 grpc_cc_library(
1569     name = "grpc_resolver_dns_native",
1570     srcs = [
1571         "src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc",
1572     ],
1573     language = "c++",
1574     deps = [
1575         "grpc_base",
1576         "grpc_client_channel",
1577         "grpc_resolver_dns_selection",
1578     ],
1579 )
1580
1581 grpc_cc_library(
1582     name = "grpc_resolver_dns_ares",
1583     srcs = [
1584         "src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc",
1585         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc",
1586         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc",
1587         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc",
1588         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc",
1589         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc",
1590         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc",
1591         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc",
1592         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc",
1593         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc",
1594     ],
1595     hdrs = [
1596         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h",
1597         "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h",
1598     ],
1599     external_deps = [
1600         "cares",
1601         "address_sorting",
1602     ],
1603     language = "c++",
1604     deps = [
1605         "grpc_base",
1606         "grpc_client_channel",
1607         "grpc_resolver_dns_selection",
1608     ],
1609 )
1610
1611 grpc_cc_library(
1612     name = "grpc_resolver_sockaddr",
1613     srcs = [
1614         "src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc",
1615     ],
1616     language = "c++",
1617     deps = [
1618         "grpc_base",
1619         "grpc_client_channel",
1620     ],
1621 )
1622
1623 grpc_cc_library(
1624     name = "grpc_resolver_fake",
1625     srcs = ["src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc"],
1626     hdrs = ["src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"],
1627     language = "c++",
1628     visibility = ["//test:__subpackages__"],
1629     deps = [
1630         "grpc_base",
1631         "grpc_client_channel",
1632     ],
1633 )
1634
1635 grpc_cc_library(
1636     name = "grpc_resolver_xds",
1637     srcs = [
1638         "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc",
1639     ],
1640     language = "c++",
1641     deps = [
1642         "grpc_base",
1643         "grpc_client_channel",
1644         "grpc_xds_client",
1645     ],
1646 )
1647
1648 grpc_cc_library(
1649     name = "grpc_resolver_xds_secure",
1650     srcs = [
1651         "src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc",
1652     ],
1653     language = "c++",
1654     deps = [
1655         "grpc_base",
1656         "grpc_client_channel",
1657         "grpc_xds_client_secure",
1658     ],
1659 )
1660
1661 grpc_cc_library(
1662     name = "grpc_secure",
1663     srcs = [
1664         "src/core/lib/http/httpcli_security_connector.cc",
1665         "src/core/lib/security/context/security_context.cc",
1666         "src/core/lib/security/credentials/alts/alts_credentials.cc",
1667         "src/core/lib/security/credentials/composite/composite_credentials.cc",
1668         "src/core/lib/security/credentials/credentials.cc",
1669         "src/core/lib/security/credentials/credentials_metadata.cc",
1670         "src/core/lib/security/credentials/fake/fake_credentials.cc",
1671         "src/core/lib/security/credentials/google_default/credentials_generic.cc",
1672         "src/core/lib/security/credentials/google_default/google_default_credentials.cc",
1673         "src/core/lib/security/credentials/iam/iam_credentials.cc",
1674         "src/core/lib/security/credentials/jwt/json_token.cc",
1675         "src/core/lib/security/credentials/jwt/jwt_credentials.cc",
1676         "src/core/lib/security/credentials/jwt/jwt_verifier.cc",
1677         "src/core/lib/security/credentials/local/local_credentials.cc",
1678         "src/core/lib/security/credentials/oauth2/oauth2_credentials.cc",
1679         "src/core/lib/security/credentials/plugin/plugin_credentials.cc",
1680         "src/core/lib/security/credentials/ssl/ssl_credentials.cc",
1681         "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc",
1682         "src/core/lib/security/credentials/tls/tls_credentials.cc",
1683         "src/core/lib/security/security_connector/alts/alts_security_connector.cc",
1684         "src/core/lib/security/security_connector/fake/fake_security_connector.cc",
1685         "src/core/lib/security/security_connector/load_system_roots_fallback.cc",
1686         "src/core/lib/security/security_connector/load_system_roots_linux.cc",
1687         "src/core/lib/security/security_connector/local/local_security_connector.cc",
1688         "src/core/lib/security/security_connector/security_connector.cc",
1689         "src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
1690         "src/core/lib/security/security_connector/ssl_utils.cc",
1691         "src/core/lib/security/security_connector/ssl_utils_config.cc",
1692         "src/core/lib/security/security_connector/tls/tls_security_connector.cc",
1693         "src/core/lib/security/transport/client_auth_filter.cc",
1694         "src/core/lib/security/transport/secure_endpoint.cc",
1695         "src/core/lib/security/transport/security_handshaker.cc",
1696         "src/core/lib/security/transport/server_auth_filter.cc",
1697         "src/core/lib/security/transport/target_authority_table.cc",
1698         "src/core/lib/security/transport/tsi_error.cc",
1699         "src/core/lib/security/util/json_util.cc",
1700         "src/core/lib/surface/init_secure.cc",
1701     ],
1702     hdrs = [
1703         "src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h",
1704         "src/core/ext/filters/client_channel/xds/xds_channel_args.h",
1705         "src/core/lib/security/context/security_context.h",
1706         "src/core/lib/security/credentials/alts/alts_credentials.h",
1707         "src/core/lib/security/credentials/composite/composite_credentials.h",
1708         "src/core/lib/security/credentials/credentials.h",
1709         "src/core/lib/security/credentials/fake/fake_credentials.h",
1710         "src/core/lib/security/credentials/google_default/google_default_credentials.h",
1711         "src/core/lib/security/credentials/iam/iam_credentials.h",
1712         "src/core/lib/security/credentials/jwt/json_token.h",
1713         "src/core/lib/security/credentials/jwt/jwt_credentials.h",
1714         "src/core/lib/security/credentials/jwt/jwt_verifier.h",
1715         "src/core/lib/security/credentials/local/local_credentials.h",
1716         "src/core/lib/security/credentials/oauth2/oauth2_credentials.h",
1717         "src/core/lib/security/credentials/plugin/plugin_credentials.h",
1718         "src/core/lib/security/credentials/ssl/ssl_credentials.h",
1719         "src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h",
1720         "src/core/lib/security/credentials/tls/tls_credentials.h",
1721         "src/core/lib/security/security_connector/alts/alts_security_connector.h",
1722         "src/core/lib/security/security_connector/fake/fake_security_connector.h",
1723         "src/core/lib/security/security_connector/load_system_roots.h",
1724         "src/core/lib/security/security_connector/load_system_roots_linux.h",
1725         "src/core/lib/security/security_connector/local/local_security_connector.h",
1726         "src/core/lib/security/security_connector/security_connector.h",
1727         "src/core/lib/security/security_connector/ssl/ssl_security_connector.h",
1728         "src/core/lib/security/security_connector/ssl_utils.h",
1729         "src/core/lib/security/security_connector/ssl_utils_config.h",
1730         "src/core/lib/security/security_connector/tls/tls_security_connector.h",
1731         "src/core/lib/security/transport/auth_filters.h",
1732         "src/core/lib/security/transport/secure_endpoint.h",
1733         "src/core/lib/security/transport/security_handshaker.h",
1734         "src/core/lib/security/transport/target_authority_table.h",
1735         "src/core/lib/security/transport/tsi_error.h",
1736         "src/core/lib/security/util/json_util.h",
1737     ],
1738     language = "c++",
1739     public_hdrs = GRPC_SECURE_PUBLIC_HDRS,
1740     deps = [
1741         "alts_util",
1742         "grpc_base",
1743         "grpc_shadow_boringssl",
1744         "grpc_transport_chttp2_alpn",
1745         "tsi",
1746     ],
1747 )
1748
1749 grpc_cc_library(
1750     name = "grpc_transport_chttp2",
1751     srcs = [
1752         "src/core/ext/transport/chttp2/transport/bin_decoder.cc",
1753         "src/core/ext/transport/chttp2/transport/bin_encoder.cc",
1754         "src/core/ext/transport/chttp2/transport/chttp2_plugin.cc",
1755         "src/core/ext/transport/chttp2/transport/chttp2_transport.cc",
1756         "src/core/ext/transport/chttp2/transport/context_list.cc",
1757         "src/core/ext/transport/chttp2/transport/flow_control.cc",
1758         "src/core/ext/transport/chttp2/transport/frame_data.cc",
1759         "src/core/ext/transport/chttp2/transport/frame_goaway.cc",
1760         "src/core/ext/transport/chttp2/transport/frame_ping.cc",
1761         "src/core/ext/transport/chttp2/transport/frame_rst_stream.cc",
1762         "src/core/ext/transport/chttp2/transport/frame_settings.cc",
1763         "src/core/ext/transport/chttp2/transport/frame_window_update.cc",
1764         "src/core/ext/transport/chttp2/transport/hpack_encoder.cc",
1765         "src/core/ext/transport/chttp2/transport/hpack_parser.cc",
1766         "src/core/ext/transport/chttp2/transport/hpack_table.cc",
1767         "src/core/ext/transport/chttp2/transport/http2_settings.cc",
1768         "src/core/ext/transport/chttp2/transport/huffsyms.cc",
1769         "src/core/ext/transport/chttp2/transport/incoming_metadata.cc",
1770         "src/core/ext/transport/chttp2/transport/parsing.cc",
1771         "src/core/ext/transport/chttp2/transport/stream_lists.cc",
1772         "src/core/ext/transport/chttp2/transport/stream_map.cc",
1773         "src/core/ext/transport/chttp2/transport/varint.cc",
1774         "src/core/ext/transport/chttp2/transport/writing.cc",
1775     ],
1776     hdrs = [
1777         "src/core/ext/transport/chttp2/transport/bin_decoder.h",
1778         "src/core/ext/transport/chttp2/transport/bin_encoder.h",
1779         "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
1780         "src/core/ext/transport/chttp2/transport/context_list.h",
1781         "src/core/ext/transport/chttp2/transport/flow_control.h",
1782         "src/core/ext/transport/chttp2/transport/frame.h",
1783         "src/core/ext/transport/chttp2/transport/frame_data.h",
1784         "src/core/ext/transport/chttp2/transport/frame_goaway.h",
1785         "src/core/ext/transport/chttp2/transport/frame_ping.h",
1786         "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
1787         "src/core/ext/transport/chttp2/transport/frame_settings.h",
1788         "src/core/ext/transport/chttp2/transport/frame_window_update.h",
1789         "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
1790         "src/core/ext/transport/chttp2/transport/hpack_parser.h",
1791         "src/core/ext/transport/chttp2/transport/hpack_table.h",
1792         "src/core/ext/transport/chttp2/transport/http2_settings.h",
1793         "src/core/ext/transport/chttp2/transport/huffsyms.h",
1794         "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
1795         "src/core/ext/transport/chttp2/transport/internal.h",
1796         "src/core/ext/transport/chttp2/transport/stream_map.h",
1797         "src/core/ext/transport/chttp2/transport/varint.h",
1798     ],
1799     language = "c++",
1800     deps = [
1801         "gpr_base",
1802         "grpc_base",
1803         "grpc_http_filters",
1804         "grpc_transport_chttp2_alpn",
1805     ],
1806 )
1807
1808 grpc_cc_library(
1809     name = "grpc_transport_chttp2_alpn",
1810     srcs = [
1811         "src/core/ext/transport/chttp2/alpn/alpn.cc",
1812     ],
1813     hdrs = [
1814         "src/core/ext/transport/chttp2/alpn/alpn.h",
1815     ],
1816     language = "c++",
1817     deps = [
1818         "gpr",
1819     ],
1820 )
1821
1822 grpc_cc_library(
1823     name = "grpc_transport_chttp2_client_connector",
1824     srcs = [
1825         "src/core/ext/transport/chttp2/client/authority.cc",
1826         "src/core/ext/transport/chttp2/client/chttp2_connector.cc",
1827     ],
1828     hdrs = [
1829         "src/core/ext/transport/chttp2/client/authority.h",
1830         "src/core/ext/transport/chttp2/client/chttp2_connector.h",
1831     ],
1832     language = "c++",
1833     deps = [
1834         "grpc_base",
1835         "grpc_client_channel",
1836         "grpc_transport_chttp2",
1837     ],
1838 )
1839
1840 grpc_cc_library(
1841     name = "grpc_transport_chttp2_client_insecure",
1842     srcs = [
1843         "src/core/ext/transport/chttp2/client/insecure/channel_create.cc",
1844         "src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc",
1845     ],
1846     language = "c++",
1847     deps = [
1848         "grpc_base",
1849         "grpc_client_channel",
1850         "grpc_transport_chttp2",
1851         "grpc_transport_chttp2_client_connector",
1852     ],
1853 )
1854
1855 grpc_cc_library(
1856     name = "grpc_transport_chttp2_client_secure",
1857     srcs = [
1858         "src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc",
1859     ],
1860     language = "c++",
1861     deps = [
1862         "grpc_base",
1863         "grpc_client_channel",
1864         "grpc_secure",
1865         "grpc_transport_chttp2",
1866         "grpc_transport_chttp2_client_connector",
1867     ],
1868 )
1869
1870 grpc_cc_library(
1871     name = "grpc_transport_chttp2_server",
1872     srcs = [
1873         "src/core/ext/transport/chttp2/server/chttp2_server.cc",
1874     ],
1875     hdrs = [
1876         "src/core/ext/transport/chttp2/server/chttp2_server.h",
1877     ],
1878     language = "c++",
1879     deps = [
1880         "grpc_base",
1881         "grpc_transport_chttp2",
1882     ],
1883 )
1884
1885 grpc_cc_library(
1886     name = "grpc_transport_chttp2_server_insecure",
1887     srcs = [
1888         "src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc",
1889         "src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc",
1890     ],
1891     language = "c++",
1892     deps = [
1893         "grpc_base",
1894         "grpc_transport_chttp2",
1895         "grpc_transport_chttp2_server",
1896     ],
1897 )
1898
1899 grpc_cc_library(
1900     name = "grpc_transport_chttp2_server_secure",
1901     srcs = [
1902         "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc",
1903     ],
1904     language = "c++",
1905     deps = [
1906         "grpc_base",
1907         "grpc_secure",
1908         "grpc_transport_chttp2",
1909         "grpc_transport_chttp2_server",
1910     ],
1911 )
1912
1913 grpc_cc_library(
1914     name = "grpc_transport_inproc",
1915     srcs = [
1916         "src/core/ext/transport/inproc/inproc_plugin.cc",
1917         "src/core/ext/transport/inproc/inproc_transport.cc",
1918     ],
1919     hdrs = [
1920         "src/core/ext/transport/inproc/inproc_transport.h",
1921     ],
1922     language = "c++",
1923     deps = [
1924         "grpc_base",
1925     ],
1926 )
1927
1928 grpc_cc_library(
1929     name = "tsi_interface",
1930     srcs = [
1931         "src/core/tsi/transport_security.cc",
1932     ],
1933     hdrs = [
1934         "src/core/tsi/transport_security.h",
1935         "src/core/tsi/transport_security_interface.h",
1936     ],
1937     language = "c++",
1938     deps = [
1939         "gpr",
1940         "grpc_trace",
1941     ],
1942 )
1943
1944 grpc_cc_library(
1945     name = "alts_frame_protector",
1946     srcs = [
1947         "src/core/tsi/alts/crypt/aes_gcm.cc",
1948         "src/core/tsi/alts/crypt/gsec.cc",
1949         "src/core/tsi/alts/frame_protector/alts_counter.cc",
1950         "src/core/tsi/alts/frame_protector/alts_crypter.cc",
1951         "src/core/tsi/alts/frame_protector/alts_frame_protector.cc",
1952         "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc",
1953         "src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc",
1954         "src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc",
1955         "src/core/tsi/alts/frame_protector/frame_handler.cc",
1956         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc",
1957         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc",
1958         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc",
1959         "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc",
1960         "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc",
1961     ],
1962     hdrs = [
1963         "src/core/tsi/alts/crypt/gsec.h",
1964         "src/core/tsi/alts/frame_protector/alts_counter.h",
1965         "src/core/tsi/alts/frame_protector/alts_crypter.h",
1966         "src/core/tsi/alts/frame_protector/alts_frame_protector.h",
1967         "src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h",
1968         "src/core/tsi/alts/frame_protector/frame_handler.h",
1969         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h",
1970         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h",
1971         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h",
1972         "src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h",
1973         "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h",
1974         "src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h",
1975         "src/core/tsi/transport_security_grpc.h",
1976     ],
1977     external_deps = [
1978         "libssl",
1979     ],
1980     language = "c++",
1981     deps = [
1982         "gpr",
1983         "grpc_base",
1984         "grpc_shadow_boringssl",
1985         "tsi_interface",
1986     ],
1987 )
1988
1989 grpc_cc_library(
1990     name = "alts_util",
1991     srcs = [
1992         "src/core/lib/security/credentials/alts/check_gcp_environment.cc",
1993         "src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc",
1994         "src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc",
1995         "src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc",
1996         "src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc",
1997         "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc",
1998         "src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc",
1999         "src/core/tsi/alts/handshaker/transport_security_common_api.cc",
2000     ],
2001     hdrs = [
2002         "src/core/lib/security/credentials/alts/check_gcp_environment.h",
2003         "src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h",
2004         "src/core/tsi/alts/handshaker/transport_security_common_api.h",
2005     ],
2006     language = "c++",
2007     public_hdrs = GRPC_SECURE_PUBLIC_HDRS,
2008     deps = [
2009         "alts_upb",
2010         "gpr",
2011         "grpc_base",
2012     ],
2013 )
2014
2015 grpc_cc_library(
2016     name = "tsi",
2017     srcs = [
2018         "src/core/tsi/alts/handshaker/alts_handshaker_client.cc",
2019         "src/core/tsi/alts/handshaker/alts_shared_resource.cc",
2020         "src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc",
2021         "src/core/tsi/alts/handshaker/alts_tsi_utils.cc",
2022         "src/core/tsi/fake_transport_security.cc",
2023         "src/core/tsi/local_transport_security.cc",
2024         "src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc",
2025         "src/core/tsi/ssl/session_cache/ssl_session_cache.cc",
2026         "src/core/tsi/ssl/session_cache/ssl_session_openssl.cc",
2027         "src/core/tsi/ssl_transport_security.cc",
2028         "src/core/tsi/transport_security_grpc.cc",
2029     ],
2030     hdrs = [
2031         "src/core/tsi/alts/handshaker/alts_handshaker_client.h",
2032         "src/core/tsi/alts/handshaker/alts_shared_resource.h",
2033         "src/core/tsi/alts/handshaker/alts_tsi_handshaker.h",
2034         "src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h",
2035         "src/core/tsi/alts/handshaker/alts_tsi_utils.h",
2036         "src/core/tsi/fake_transport_security.h",
2037         "src/core/tsi/local_transport_security.h",
2038         "src/core/tsi/ssl/session_cache/ssl_session.h",
2039         "src/core/tsi/ssl/session_cache/ssl_session_cache.h",
2040         "src/core/tsi/ssl_transport_security.h",
2041         "src/core/tsi/ssl_types.h",
2042         "src/core/tsi/transport_security_grpc.h",
2043     ],
2044     external_deps = [
2045         "libssl",
2046     ],
2047     language = "c++",
2048     deps = [
2049         "alts_frame_protector",
2050         "alts_util",
2051         "gpr",
2052         "grpc_base",
2053         "grpc_shadow_boringssl",
2054         "grpc_transport_chttp2_client_insecure",
2055         "tsi_interface",
2056     ],
2057 )
2058
2059 grpc_cc_library(
2060     name = "grpc++_base",
2061     srcs = GRPCXX_SRCS,
2062     hdrs = GRPCXX_HDRS,
2063     language = "c++",
2064     public_hdrs = GRPCXX_PUBLIC_HDRS,
2065     deps = [
2066         "grpc",
2067         "grpc++_codegen_base",
2068         "grpc++_codegen_base_src",
2069         "grpc_health_upb",
2070     ],
2071 )
2072
2073 grpc_cc_library(
2074     name = "grpc++_base_unsecure",
2075     srcs = GRPCXX_SRCS,
2076     hdrs = GRPCXX_HDRS,
2077     language = "c++",
2078     public_hdrs = GRPCXX_PUBLIC_HDRS,
2079     deps = [
2080         "grpc++_codegen_base",
2081         "grpc++_codegen_base_src",
2082         "grpc_health_upb",
2083         "grpc_unsecure",
2084     ],
2085 )
2086
2087 grpc_cc_library(
2088     name = "grpc++_codegen_base",
2089     language = "c++",
2090     public_hdrs = [
2091         "include/grpc++/impl/codegen/async_stream.h",
2092         "include/grpc++/impl/codegen/async_unary_call.h",
2093         "include/grpc++/impl/codegen/byte_buffer.h",
2094         "include/grpc++/impl/codegen/call.h",
2095         "include/grpc++/impl/codegen/call_hook.h",
2096         "include/grpc++/impl/codegen/channel_interface.h",
2097         "include/grpc++/impl/codegen/client_context.h",
2098         "include/grpc++/impl/codegen/client_unary_call.h",
2099         "include/grpc++/impl/codegen/completion_queue.h",
2100         "include/grpc++/impl/codegen/completion_queue_tag.h",
2101         "include/grpc++/impl/codegen/config.h",
2102         "include/grpc++/impl/codegen/core_codegen_interface.h",
2103         "include/grpc++/impl/codegen/create_auth_context.h",
2104         "include/grpc++/impl/codegen/grpc_library.h",
2105         "include/grpc++/impl/codegen/metadata_map.h",
2106         "include/grpc++/impl/codegen/method_handler_impl.h",
2107         "include/grpc++/impl/codegen/rpc_method.h",
2108         "include/grpc++/impl/codegen/rpc_service_method.h",
2109         "include/grpc++/impl/codegen/security/auth_context.h",
2110         "include/grpc++/impl/codegen/serialization_traits.h",
2111         "include/grpc++/impl/codegen/server_context.h",
2112         "include/grpc++/impl/codegen/server_interface.h",
2113         "include/grpc++/impl/codegen/service_type.h",
2114         "include/grpc++/impl/codegen/slice.h",
2115         "include/grpc++/impl/codegen/status.h",
2116         "include/grpc++/impl/codegen/status_code_enum.h",
2117         "include/grpc++/impl/codegen/string_ref.h",
2118         "include/grpc++/impl/codegen/stub_options.h",
2119         "include/grpc++/impl/codegen/sync_stream.h",
2120         "include/grpc++/impl/codegen/time.h",
2121         "include/grpcpp/impl/codegen/async_generic_service.h",
2122         "include/grpcpp/impl/codegen/async_stream.h",
2123         "include/grpcpp/impl/codegen/async_stream_impl.h",
2124         "include/grpcpp/impl/codegen/async_unary_call.h",
2125         "include/grpcpp/impl/codegen/async_unary_call_impl.h",
2126         "include/grpcpp/impl/codegen/byte_buffer.h",
2127         "include/grpcpp/impl/codegen/call.h",
2128         "include/grpcpp/impl/codegen/call_hook.h",
2129         "include/grpcpp/impl/codegen/call_op_set.h",
2130         "include/grpcpp/impl/codegen/call_op_set_interface.h",
2131         "include/grpcpp/impl/codegen/callback_common.h",
2132         "include/grpcpp/impl/codegen/channel_interface.h",
2133         "include/grpcpp/impl/codegen/client_callback.h",
2134         "include/grpcpp/impl/codegen/client_callback_impl.h",
2135         "include/grpcpp/impl/codegen/client_context.h",
2136         "include/grpcpp/impl/codegen/client_context_impl.h",
2137         "include/grpcpp/impl/codegen/client_interceptor.h",
2138         "include/grpcpp/impl/codegen/client_unary_call.h",
2139         "include/grpcpp/impl/codegen/completion_queue.h",
2140         "include/grpcpp/impl/codegen/completion_queue_impl.h",
2141         "include/grpcpp/impl/codegen/completion_queue_tag.h",
2142         "include/grpcpp/impl/codegen/config.h",
2143         "include/grpcpp/impl/codegen/core_codegen_interface.h",
2144         "include/grpcpp/impl/codegen/create_auth_context.h",
2145         "include/grpcpp/impl/codegen/delegating_channel.h",
2146         "include/grpcpp/impl/codegen/grpc_library.h",
2147         "include/grpcpp/impl/codegen/intercepted_channel.h",
2148         "include/grpcpp/impl/codegen/interceptor.h",
2149         "include/grpcpp/impl/codegen/interceptor_common.h",
2150         "include/grpcpp/impl/codegen/message_allocator.h",
2151         "include/grpcpp/impl/codegen/metadata_map.h",
2152         "include/grpcpp/impl/codegen/method_handler.h",
2153         "include/grpcpp/impl/codegen/method_handler_impl.h",
2154         "include/grpcpp/impl/codegen/rpc_method.h",
2155         "include/grpcpp/impl/codegen/rpc_service_method.h",
2156         "include/grpcpp/impl/codegen/security/auth_context.h",
2157         "include/grpcpp/impl/codegen/serialization_traits.h",
2158         "include/grpcpp/impl/codegen/server_callback.h",
2159         "include/grpcpp/impl/codegen/server_callback_handlers.h",
2160         "include/grpcpp/impl/codegen/server_callback_impl.h",
2161         "include/grpcpp/impl/codegen/server_context.h",
2162         "include/grpcpp/impl/codegen/server_context_impl.h",
2163         "include/grpcpp/impl/codegen/server_interceptor.h",
2164         "include/grpcpp/impl/codegen/server_interface.h",
2165         "include/grpcpp/impl/codegen/service_type.h",
2166         "include/grpcpp/impl/codegen/slice.h",
2167         "include/grpcpp/impl/codegen/status.h",
2168         "include/grpcpp/impl/codegen/status_code_enum.h",
2169         "include/grpcpp/impl/codegen/string_ref.h",
2170         "include/grpcpp/impl/codegen/stub_options.h",
2171         "include/grpcpp/impl/codegen/sync_stream.h",
2172         "include/grpcpp/impl/codegen/sync_stream_impl.h",
2173         "include/grpcpp/impl/codegen/time.h",
2174     ],
2175     deps = [
2176         "grpc++_internal_hdrs_only",
2177         "grpc_codegen",
2178     ],
2179 )
2180
2181 grpc_cc_library(
2182     name = "grpc++_codegen_base_src",
2183     srcs = [
2184         "src/cpp/codegen/codegen_init.cc",
2185     ],
2186     language = "c++",
2187     deps = [
2188         "grpc++_codegen_base",
2189     ],
2190 )
2191
2192 grpc_cc_library(
2193     name = "grpc++_codegen_proto",
2194     language = "c++",
2195     public_hdrs = [
2196         "include/grpc++/impl/codegen/proto_utils.h",
2197         "include/grpcpp/impl/codegen/proto_buffer_reader.h",
2198         "include/grpcpp/impl/codegen/proto_buffer_writer.h",
2199         "include/grpcpp/impl/codegen/proto_utils.h",
2200     ],
2201     deps = [
2202         "grpc++_codegen_base",
2203         "grpc++_config_proto",
2204     ],
2205 )
2206
2207 grpc_cc_library(
2208     name = "grpc++_config_proto",
2209     external_deps = [
2210         "protobuf_headers",
2211     ],
2212     language = "c++",
2213     public_hdrs = [
2214         "include/grpc++/impl/codegen/config_protobuf.h",
2215         "include/grpcpp/impl/codegen/config_protobuf.h",
2216     ],
2217 )
2218
2219 grpc_cc_library(
2220     name = "grpc++_reflection",
2221     srcs = [
2222         "src/cpp/ext/proto_server_reflection.cc",
2223         "src/cpp/ext/proto_server_reflection_plugin.cc",
2224     ],
2225     hdrs = [
2226         "src/cpp/ext/proto_server_reflection.h",
2227     ],
2228     language = "c++",
2229     public_hdrs = [
2230         "include/grpc++/ext/proto_server_reflection_plugin.h",
2231         "include/grpcpp/ext/proto_server_reflection_plugin.h",
2232         "include/grpcpp/ext/proto_server_reflection_plugin_impl.h",
2233     ],
2234     deps = [
2235         ":grpc++",
2236         "//src/proto/grpc/reflection/v1alpha:reflection_proto",
2237     ],
2238     alwayslink = 1,
2239 )
2240
2241 grpc_cc_library(
2242     name = "grpcpp_channelz",
2243     srcs = [
2244         "src/cpp/server/channelz/channelz_service.cc",
2245         "src/cpp/server/channelz/channelz_service_plugin.cc",
2246     ],
2247     hdrs = [
2248         "src/cpp/server/channelz/channelz_service.h",
2249     ],
2250     language = "c++",
2251     public_hdrs = [
2252         "include/grpcpp/ext/channelz_service_plugin.h",
2253         "include/grpcpp/ext/channelz_service_plugin_impl.h",
2254     ],
2255     deps = [
2256         ":grpc++",
2257         "//src/proto/grpc/channelz:channelz_proto",
2258     ],
2259     alwayslink = 1,
2260 )
2261
2262 grpc_cc_library(
2263     name = "grpc++_test",
2264     public_hdrs = [
2265         "include/grpc++/test/mock_stream.h",
2266         "include/grpc++/test/server_context_test_spouse.h",
2267         "include/grpcpp/test/mock_stream.h",
2268         "include/grpcpp/test/server_context_test_spouse.h",
2269         "include/grpcpp/test/default_reactor_test_peer.h",
2270     ],
2271     deps = [
2272         ":grpc++",
2273     ],
2274 )
2275
2276 grpc_cc_library(
2277     name = "grpc_server_backward_compatibility",
2278     srcs = [
2279         "src/core/ext/filters/workarounds/workaround_utils.cc",
2280     ],
2281     hdrs = [
2282         "src/core/ext/filters/workarounds/workaround_utils.h",
2283     ],
2284     language = "c++",
2285     deps = [
2286         "grpc_base",
2287     ],
2288 )
2289
2290 grpc_cc_library(
2291     name = "grpc++_core_stats",
2292     srcs = [
2293         "src/cpp/util/core_stats.cc",
2294     ],
2295     hdrs = [
2296         "src/cpp/util/core_stats.h",
2297     ],
2298     language = "c++",
2299     deps = [
2300         ":grpc++",
2301         "//src/proto/grpc/core:stats_proto",
2302     ],
2303 )
2304
2305 grpc_cc_library(
2306     name = "grpc_opencensus_plugin",
2307     srcs = [
2308         "src/cpp/ext/filters/census/channel_filter.cc",
2309         "src/cpp/ext/filters/census/client_filter.cc",
2310         "src/cpp/ext/filters/census/context.cc",
2311         "src/cpp/ext/filters/census/grpc_plugin.cc",
2312         "src/cpp/ext/filters/census/measures.cc",
2313         "src/cpp/ext/filters/census/rpc_encoding.cc",
2314         "src/cpp/ext/filters/census/server_filter.cc",
2315         "src/cpp/ext/filters/census/views.cc",
2316     ],
2317     hdrs = [
2318         "include/grpcpp/opencensus.h",
2319         "include/grpcpp/opencensus_impl.h",
2320         "src/cpp/ext/filters/census/channel_filter.h",
2321         "src/cpp/ext/filters/census/client_filter.h",
2322         "src/cpp/ext/filters/census/context.h",
2323         "src/cpp/ext/filters/census/grpc_plugin.h",
2324         "src/cpp/ext/filters/census/measures.h",
2325         "src/cpp/ext/filters/census/rpc_encoding.h",
2326         "src/cpp/ext/filters/census/server_filter.h",
2327     ],
2328     external_deps = [
2329         "absl-base",
2330         "absl-time",
2331         "opencensus-trace",
2332         "opencensus-trace-context_util",
2333         "opencensus-stats",
2334         "opencensus-context",
2335     ],
2336     language = "c++",
2337     deps = [
2338         ":census",
2339         ":grpc++",
2340     ],
2341 )
2342
2343 grpc_cc_library(
2344     name = "grpc_shadow_boringssl",
2345     hdrs = [
2346         "src/core/tsi/grpc_shadow_boringssl.h",
2347     ],
2348 )
2349
2350 # Once upb code-gen issue is resolved, use the targets commented below to replace the ones using
2351 # upb-generated files.
2352
2353 # grpc_upb_proto_library(
2354 #     name = "upb_load_report",
2355 #     deps = ["@envoy_api//envoy/api/v2/endpoint:load_report_export"],
2356 # )
2357 #
2358 # grpc_upb_proto_library(
2359 #     name = "upb_lrs",
2360 #     deps = ["@envoy_api//envoy/service/load_stats/v2:lrs_export"],
2361 # )
2362 #
2363 # grpc_upb_proto_library(
2364 #     name = "upb_cds",
2365 #     deps = ["@envoy_api//envoy/api/v2:cds_export"],
2366 # )
2367
2368 # grpc_cc_library(
2369 #    name = "envoy_lrs_upb",
2370 #    external_deps = [
2371 #        "upb_lib",
2372 #    ],
2373 #    language = "c++",
2374 #    tags = ["no_windows"],
2375 #    deps = [
2376 #        ":upb_load_report",
2377 #        ":upb_lrs",
2378 #    ],
2379 # )
2380
2381 # grpc_cc_library(
2382 #    name = "envoy_ads_upb",
2383 #    external_deps = [
2384 #        "upb_lib",
2385 #    ],
2386 #    language = "c++",
2387 #    tags = ["no_windows"],
2388 #    deps = [
2389 #        ":upb_cds",
2390 #    ],
2391 # )
2392
2393 grpc_cc_library(
2394     name = "envoy_ads_upb",
2395     srcs = [
2396         "src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c",
2397         "src/core/ext/upb-generated/envoy/api/v2/cds.upb.c",
2398         "src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c",
2399         "src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c",
2400         "src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c",
2401         "src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c",
2402         "src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c",
2403         "src/core/ext/upb-generated/envoy/api/v2/eds.upb.c",
2404         "src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c",
2405         "src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c",
2406         "src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c",
2407         "src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c",
2408         "src/core/ext/upb-generated/envoy/api/v2/lds.upb.c",
2409         "src/core/ext/upb-generated/envoy/api/v2/listener.upb.c",
2410         "src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c",
2411         "src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c",
2412         "src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c",
2413         "src/core/ext/upb-generated/envoy/api/v2/rds.upb.c",
2414         "src/core/ext/upb-generated/envoy/api/v2/route.upb.c",
2415         "src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c",
2416         "src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c",
2417         "src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c",
2418         "src/core/ext/upb-generated/envoy/api/v2/srds.upb.c",
2419         "src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c",
2420         "src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c",
2421         "src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c",
2422         "src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c",
2423         "src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c",
2424     ],
2425     hdrs = [
2426         "src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h",
2427         "src/core/ext/upb-generated/envoy/api/v2/cds.upb.h",
2428         "src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h",
2429         "src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h",
2430         "src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h",
2431         "src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h",
2432         "src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h",
2433         "src/core/ext/upb-generated/envoy/api/v2/eds.upb.h",
2434         "src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h",
2435         "src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h",
2436         "src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h",
2437         "src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h",
2438         "src/core/ext/upb-generated/envoy/api/v2/lds.upb.h",
2439         "src/core/ext/upb-generated/envoy/api/v2/listener.upb.h",
2440         "src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h",
2441         "src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h",
2442         "src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h",
2443         "src/core/ext/upb-generated/envoy/api/v2/rds.upb.h",
2444         "src/core/ext/upb-generated/envoy/api/v2/route.upb.h",
2445         "src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h",
2446         "src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h",
2447         "src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h",
2448         "src/core/ext/upb-generated/envoy/api/v2/srds.upb.h",
2449         "src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h",
2450         "src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h",
2451         "src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h",
2452         "src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h",
2453         "src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h",
2454     ],
2455     external_deps = [
2456         "upb_lib",
2457     ],
2458     language = "c++",
2459     deps = [
2460         ":envoy_annotations_upb",
2461         ":envoy_core_upb",
2462         ":envoy_type_upb",
2463         ":google_api_upb",
2464         ":proto_gen_validate_upb",
2465         ":udpa_annotations_upb",
2466     ],
2467 )
2468
2469 grpc_cc_library(
2470     name = "envoy_annotations_upb",
2471     srcs = [
2472         "src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c",
2473         "src/core/ext/upb-generated/envoy/annotations/resource.upb.c",
2474     ],
2475     hdrs = [
2476         "src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h",
2477         "src/core/ext/upb-generated/envoy/annotations/resource.upb.h",
2478     ],
2479     external_deps = [
2480         "upb_lib",
2481     ],
2482     language = "c++",
2483     deps = [
2484         ":google_api_upb",
2485     ],
2486 )
2487
2488 grpc_cc_library(
2489     name = "envoy_core_upb",
2490     srcs = [
2491         "src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c",
2492         "src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c",
2493         "src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c",
2494         "src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c",
2495         "src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c",
2496         "src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c",
2497         "src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c",
2498     ],
2499     hdrs = [
2500         "src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h",
2501         "src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h",
2502         "src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h",
2503         "src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h",
2504         "src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h",
2505         "src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h",
2506         "src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h",
2507     ],
2508     external_deps = [
2509         "upb_lib",
2510     ],
2511     language = "c++",
2512     deps = [
2513         ":envoy_annotations_upb",
2514         ":envoy_type_upb",
2515         ":google_api_upb",
2516         ":proto_gen_validate_upb",
2517         ":udpa_annotations_upb",
2518     ],
2519 )
2520
2521 grpc_cc_library(
2522     name = "envoy_type_upb",
2523     srcs = [
2524         "src/core/ext/upb-generated/envoy/type/http.upb.c",
2525         "src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c",
2526         "src/core/ext/upb-generated/envoy/type/matcher/string.upb.c",
2527         "src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c",
2528         "src/core/ext/upb-generated/envoy/type/percent.upb.c",
2529         "src/core/ext/upb-generated/envoy/type/range.upb.c",
2530         "src/core/ext/upb-generated/envoy/type/semantic_version.upb.c",
2531         "src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c",
2532     ],
2533     hdrs = [
2534         "src/core/ext/upb-generated/envoy/type/http.upb.h",
2535         "src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h",
2536         "src/core/ext/upb-generated/envoy/type/matcher/string.upb.h",
2537         "src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h",
2538         "src/core/ext/upb-generated/envoy/type/percent.upb.h",
2539         "src/core/ext/upb-generated/envoy/type/range.upb.h",
2540         "src/core/ext/upb-generated/envoy/type/semantic_version.upb.h",
2541         "src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h",
2542     ],
2543     external_deps = [
2544         "upb_lib",
2545     ],
2546     language = "c++",
2547     deps = [
2548         ":envoy_annotations_upb",
2549         ":google_api_upb",
2550         ":proto_gen_validate_upb",
2551         ":udpa_annotations_upb",
2552     ],
2553 )
2554
2555 grpc_cc_library(
2556     name = "proto_gen_validate_upb",
2557     srcs = [
2558         "src/core/ext/upb-generated/gogoproto/gogo.upb.c",
2559         "src/core/ext/upb-generated/validate/validate.upb.c",
2560     ],
2561     hdrs = [
2562         "src/core/ext/upb-generated/gogoproto/gogo.upb.h",
2563         "src/core/ext/upb-generated/validate/validate.upb.h",
2564     ],
2565     external_deps = [
2566         "upb_lib",
2567     ],
2568     language = "c++",
2569     deps = [
2570         ":google_api_upb",
2571     ],
2572 )
2573
2574 # Once upb code-gen issue is resolved, replace udpa_orca_upb with this.
2575 # grpc_upb_proto_library(
2576 #     name = "udpa_orca_upb",
2577 #     deps = ["@envoy_api//udpa/data/orca/v1:orca_load_report"]
2578 # )
2579
2580 grpc_cc_library(
2581     name = "udpa_orca_upb",
2582     srcs = [
2583         "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c",
2584     ],
2585     hdrs = [
2586         "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h",
2587     ],
2588     external_deps = [
2589         "upb_lib",
2590     ],
2591     language = "c++",
2592     deps = [
2593         ":proto_gen_validate_upb",
2594     ],
2595 )
2596
2597 grpc_cc_library(
2598     name = "udpa_annotations_upb",
2599     srcs = [
2600         "src/core/ext/upb-generated/udpa/annotations/migrate.upb.c",
2601         "src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c",
2602     ],
2603     hdrs = [
2604         "src/core/ext/upb-generated/udpa/annotations/migrate.upb.h",
2605         "src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h",
2606     ],
2607     external_deps = [
2608         "upb_lib",
2609     ],
2610     language = "c++",
2611     deps = [
2612         ":google_api_upb",
2613     ],
2614 )
2615
2616 # Once upb code-gen issue is resolved, replace grpc_health_upb with this.
2617 # grpc_upb_proto_library(
2618 #     name = "grpc_health_upb",
2619 #     deps = ["//src/proto/grpc/health/v1:health_proto_descriptor"],
2620 # )
2621
2622 grpc_cc_library(
2623     name = "grpc_health_upb",
2624     srcs = [
2625         "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c",
2626     ],
2627     hdrs = [
2628         "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h",
2629     ],
2630     external_deps = [
2631         "upb_lib",
2632     ],
2633     language = "c++",
2634 )
2635
2636 # Once upb code-gen issue is resolved, remove this.
2637 grpc_cc_library(
2638     name = "google_api_upb",
2639     srcs = [
2640         "src/core/ext/upb-generated/google/api/annotations.upb.c",
2641         "src/core/ext/upb-generated/google/api/http.upb.c",
2642         "src/core/ext/upb-generated/google/protobuf/any.upb.c",
2643         "src/core/ext/upb-generated/google/protobuf/descriptor.upb.c",
2644         "src/core/ext/upb-generated/google/protobuf/duration.upb.c",
2645         "src/core/ext/upb-generated/google/protobuf/empty.upb.c",
2646         "src/core/ext/upb-generated/google/protobuf/struct.upb.c",
2647         "src/core/ext/upb-generated/google/protobuf/timestamp.upb.c",
2648         "src/core/ext/upb-generated/google/protobuf/wrappers.upb.c",
2649         "src/core/ext/upb-generated/google/rpc/status.upb.c",
2650     ],
2651     hdrs = [
2652         "src/core/ext/upb-generated/google/api/annotations.upb.h",
2653         "src/core/ext/upb-generated/google/api/http.upb.h",
2654         "src/core/ext/upb-generated/google/protobuf/any.upb.h",
2655         "src/core/ext/upb-generated/google/protobuf/descriptor.upb.h",
2656         "src/core/ext/upb-generated/google/protobuf/duration.upb.h",
2657         "src/core/ext/upb-generated/google/protobuf/empty.upb.h",
2658         "src/core/ext/upb-generated/google/protobuf/struct.upb.h",
2659         "src/core/ext/upb-generated/google/protobuf/timestamp.upb.h",
2660         "src/core/ext/upb-generated/google/protobuf/wrappers.upb.h",
2661         "src/core/ext/upb-generated/google/rpc/status.upb.h",
2662     ],
2663     external_deps = [
2664         "upb_lib",
2665     ],
2666     language = "c++",
2667 )
2668
2669 # Once upb code-gen issue is resolved, replace grpc_lb_upb with this.
2670 # grpc_upb_proto_library(
2671 #     name = "grpc_lb_upb",
2672 #     deps = ["//src/proto/grpc/lb/v1:load_balancer_proto_descriptor"],
2673 # )
2674
2675 grpc_cc_library(
2676     name = "grpc_lb_upb",
2677     srcs = [
2678         "src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c",
2679     ],
2680     hdrs = [
2681         "src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h",
2682     ],
2683     external_deps = [
2684         "upb_lib",
2685     ],
2686     language = "c++",
2687     deps = [
2688         "google_api_upb",
2689     ],
2690 )
2691
2692 # Once upb code-gen issue is resolved, replace alts_upb with this.
2693 # grpc_upb_proto_library(
2694 #     name = "alts_upb",
2695 #     deps = ["//src/proto/grpc/gcp:alts_handshaker_proto"],
2696 # )
2697
2698 grpc_cc_library(
2699     name = "alts_upb",
2700     srcs = [
2701         "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c",
2702         "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c",
2703         "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c",
2704     ],
2705     hdrs = [
2706         "src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h",
2707         "src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h",
2708         "src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h",
2709     ],
2710     external_deps = [
2711         "upb_lib",
2712     ],
2713     language = "c++",
2714 )
2715
2716 grpc_generate_one_off_targets()
2717
2718 filegroup(
2719     name = "root_certificates",
2720     srcs = [
2721         "etc/roots.pem",
2722     ],
2723     visibility = ["//visibility:public"],
2724 )
2725
2726 # Base classes of EventManagerInterface
2727 grpc_cc_library(
2728     name = "eventmanager_interface",
2729     hdrs = [
2730         "src/core/lib/iomgr/poller/eventmanager_interface.h",
2731     ],
2732 )
2733
2734 # Libuv-based EventManager implementation
2735 grpc_cc_library(
2736     name = "eventmanager_libuv",
2737     srcs = [
2738         "src/core/lib/iomgr/poller/eventmanager_libuv.cc",
2739     ],
2740     hdrs = [
2741         "src/core/lib/iomgr/poller/eventmanager_libuv.h",
2742     ],
2743     deps = [
2744         "gpr_base",
2745     ],
2746 )