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