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