• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../webrtc.gni")
10if (is_android) {
11  import("//build/config/android/config.gni")
12  import("//build/config/android/rules.gni")
13}
14
15group("pc") {
16  deps = [ ":rtc_pc" ]
17}
18
19config("rtc_pc_config") {
20  defines = []
21  if (rtc_enable_sctp) {
22    defines += [ "HAVE_SCTP" ]
23  }
24}
25
26rtc_library("rtc_pc_base") {
27  visibility = [ "*" ]
28  defines = []
29  sources = [
30    "channel.cc",
31    "channel.h",
32    "channel_interface.h",
33    "channel_manager.cc",
34    "channel_manager.h",
35    "composite_rtp_transport.cc",
36    "composite_rtp_transport.h",
37    "dtls_srtp_transport.cc",
38    "dtls_srtp_transport.h",
39    "dtls_transport.cc",
40    "dtls_transport.h",
41    "external_hmac.cc",
42    "external_hmac.h",
43    "ice_transport.cc",
44    "ice_transport.h",
45    "jsep_transport.cc",
46    "jsep_transport.h",
47    "jsep_transport_controller.cc",
48    "jsep_transport_controller.h",
49    "media_session.cc",
50    "media_session.h",
51    "rtcp_mux_filter.cc",
52    "rtcp_mux_filter.h",
53    "rtp_media_utils.cc",
54    "rtp_media_utils.h",
55    "rtp_transport.cc",
56    "rtp_transport.h",
57    "rtp_transport_internal.h",
58    "sctp_data_channel_transport.cc",
59    "sctp_data_channel_transport.h",
60    "sctp_transport.cc",
61    "sctp_transport.h",
62    "sctp_utils.cc",
63    "sctp_utils.h",
64    "session_description.cc",
65    "session_description.h",
66    "simulcast_description.cc",
67    "simulcast_description.h",
68    "srtp_filter.cc",
69    "srtp_filter.h",
70    "srtp_session.cc",
71    "srtp_session.h",
72    "srtp_transport.cc",
73    "srtp_transport.h",
74    "transport_stats.cc",
75    "transport_stats.h",
76    "used_ids.h",
77  ]
78
79  deps = [
80    ":media_protocol_names",
81    "../api:array_view",
82    "../api:audio_options_api",
83    "../api:call_api",
84    "../api:function_view",
85    "../api:ice_transport_factory",
86    "../api:libjingle_peerconnection_api",
87    "../api:priority",
88    "../api:rtc_error",
89    "../api:rtp_headers",
90    "../api:rtp_parameters",
91    "../api:rtp_parameters",
92    "../api:scoped_refptr",
93    "../api/crypto:options",
94    "../api/rtc_event_log",
95    "../api/transport:datagram_transport_interface",
96    "../api/video:builtin_video_bitrate_allocator_factory",
97    "../api/video:video_frame",
98    "../api/video:video_rtp_headers",
99    "../call:call_interfaces",
100    "../call:rtp_interfaces",
101    "../call:rtp_receiver",
102    "../common_video",
103    "../common_video:common_video",
104    "../logging:ice_log",
105    "../media:rtc_data",
106    "../media:rtc_h264_profile_id",
107    "../media:rtc_media_base",
108    "../media:rtc_media_config",
109    "../modules/rtp_rtcp:rtp_rtcp",
110    "../modules/rtp_rtcp:rtp_rtcp_format",
111    "../p2p:rtc_p2p",
112    "../rtc_base",
113    "../rtc_base:checks",
114    "../rtc_base:deprecation",
115    "../rtc_base:rtc_task_queue",
116    "../rtc_base:stringutils",
117    "../rtc_base/synchronization:mutex",
118    "../rtc_base/system:file_wrapper",
119    "../rtc_base/system:rtc_export",
120    "../rtc_base/third_party/base64",
121    "../rtc_base/third_party/sigslot",
122    "../system_wrappers:field_trial",
123    "../system_wrappers:metrics",
124  ]
125  absl_deps = [
126    "//third_party/abseil-cpp/absl/algorithm:container",
127    "//third_party/abseil-cpp/absl/base:core_headers",
128    "//third_party/abseil-cpp/absl/memory",
129    "//third_party/abseil-cpp/absl/strings",
130    "//third_party/abseil-cpp/absl/types:optional",
131  ]
132
133  if (rtc_build_libsrtp) {
134    deps += [ "//third_party/libsrtp" ]
135  }
136
137  public_configs = [ ":rtc_pc_config" ]
138}
139
140rtc_source_set("rtc_pc") {
141  visibility = [ "*" ]
142  allow_poison = [ "audio_codecs" ]  # TODO(bugs.webrtc.org/8396): Remove.
143  deps = [
144    ":rtc_pc_base",
145    "../media:rtc_audio_video",
146  ]
147}
148
149rtc_library("media_protocol_names") {
150  sources = [
151    "media_protocol_names.cc",
152    "media_protocol_names.h",
153  ]
154}
155
156rtc_library("peerconnection") {
157  visibility = [ "*" ]
158  cflags = []
159  sources = [
160    "audio_rtp_receiver.cc",
161    "audio_rtp_receiver.h",
162    "audio_track.cc",
163    "audio_track.h",
164    "data_channel_controller.cc",
165    "data_channel_controller.h",
166    "data_channel_utils.cc",
167    "data_channel_utils.h",
168    "dtmf_sender.cc",
169    "dtmf_sender.h",
170    "ice_server_parsing.cc",
171    "ice_server_parsing.h",
172    "jitter_buffer_delay.cc",
173    "jitter_buffer_delay.h",
174    "jitter_buffer_delay_interface.h",
175    "jitter_buffer_delay_proxy.h",
176    "jsep_ice_candidate.cc",
177    "jsep_session_description.cc",
178    "local_audio_source.cc",
179    "local_audio_source.h",
180    "media_stream.cc",
181    "media_stream.h",
182    "media_stream_observer.cc",
183    "media_stream_observer.h",
184    "media_stream_track.h",
185    "peer_connection.cc",
186    "peer_connection.h",
187    "peer_connection_factory.cc",
188    "peer_connection_factory.h",
189    "peer_connection_internal.h",
190    "remote_audio_source.cc",
191    "remote_audio_source.h",
192    "rtc_stats_collector.cc",
193    "rtc_stats_collector.h",
194    "rtc_stats_traversal.cc",
195    "rtc_stats_traversal.h",
196    "rtp_data_channel.cc",
197    "rtp_data_channel.h",
198    "rtp_parameters_conversion.cc",
199    "rtp_parameters_conversion.h",
200    "rtp_receiver.cc",
201    "rtp_receiver.h",
202    "rtp_sender.cc",
203    "rtp_sender.h",
204    "rtp_transceiver.cc",
205    "rtp_transceiver.h",
206    "sctp_data_channel.cc",
207    "sctp_data_channel.h",
208    "sdp_serializer.cc",
209    "sdp_serializer.h",
210    "sdp_utils.cc",
211    "sdp_utils.h",
212    "stats_collector.cc",
213    "stats_collector.h",
214    "stream_collection.h",
215    "track_media_info_map.cc",
216    "track_media_info_map.h",
217    "video_rtp_receiver.cc",
218    "video_rtp_receiver.h",
219    "video_rtp_track_source.cc",
220    "video_rtp_track_source.h",
221    "video_track.cc",
222    "video_track.h",
223    "video_track_source.cc",
224    "video_track_source.h",
225    "webrtc_sdp.cc",
226    "webrtc_sdp.h",
227    "webrtc_session_description_factory.cc",
228    "webrtc_session_description_factory.h",
229  ]
230
231  deps = [
232    ":rtc_pc_base",
233    "../api:array_view",
234    "../api:audio_options_api",
235    "../api:call_api",
236    "../api:fec_controller_api",
237    "../api:frame_transformer_interface",
238    "../api:ice_transport_factory",
239    "../api:libjingle_peerconnection_api",
240    "../api:media_stream_interface",
241    "../api:network_state_predictor_api",
242    "../api:priority",
243    "../api:rtc_error",
244    "../api:rtc_event_log_output_file",
245    "../api:rtc_stats_api",
246    "../api:rtp_parameters",
247    "../api:scoped_refptr",
248    "../api/crypto:frame_decryptor_interface",
249    "../api/rtc_event_log",
250    "../api/task_queue",
251    "../api/transport:datagram_transport_interface",
252    "../api/transport:field_trial_based_config",
253    "../api/units:data_rate",
254    "../api/video:builtin_video_bitrate_allocator_factory",
255    "../api/video:video_frame",
256    "../api/video:video_rtp_headers",
257    "../api/video_codecs:video_codecs_api",
258    "../call:call_interfaces",
259    "../common_video",
260    "../logging:ice_log",
261    "../media:rtc_data",
262    "../media:rtc_media_base",
263    "../modules/rtp_rtcp:rtp_rtcp_format",
264    "../p2p:rtc_p2p",
265    "../rtc_base",
266    "../rtc_base:checks",
267    "../rtc_base:rtc_base_approved",
268    "../rtc_base:rtc_operations_chain",
269    "../rtc_base:safe_minmax",
270    "../rtc_base:weak_ptr",
271    "../rtc_base/experiments:field_trial_parser",
272    "../rtc_base/synchronization:mutex",
273    "../rtc_base/system:file_wrapper",
274    "../rtc_base/system:rtc_export",
275    "../rtc_base/third_party/base64",
276    "../rtc_base/third_party/sigslot",
277    "../stats",
278    "../system_wrappers",
279    "../system_wrappers:field_trial",
280    "../system_wrappers:metrics",
281  ]
282  absl_deps = [
283    "//third_party/abseil-cpp/absl/algorithm:container",
284    "//third_party/abseil-cpp/absl/strings",
285    "//third_party/abseil-cpp/absl/types:optional",
286  ]
287}
288
289rtc_source_set("libjingle_peerconnection") {
290  visibility = [ "*" ]
291  deps = [
292    ":peerconnection",
293    "../api:libjingle_peerconnection_api",
294  ]
295}
296
297if (rtc_include_tests) {
298  rtc_test("rtc_pc_unittests") {
299    testonly = true
300
301    sources = [
302      "channel_manager_unittest.cc",
303      "channel_unittest.cc",
304      "composite_rtp_transport_test.cc",
305      "dtls_srtp_transport_unittest.cc",
306      "dtls_transport_unittest.cc",
307      "ice_transport_unittest.cc",
308      "jsep_transport_controller_unittest.cc",
309      "jsep_transport_unittest.cc",
310      "media_session_unittest.cc",
311      "rtcp_mux_filter_unittest.cc",
312      "rtp_transport_unittest.cc",
313      "sctp_transport_unittest.cc",
314      "session_description_unittest.cc",
315      "srtp_filter_unittest.cc",
316      "srtp_session_unittest.cc",
317      "srtp_transport_unittest.cc",
318      "test/rtp_transport_test_util.h",
319      "test/srtp_test_util.h",
320      "used_ids_unittest.cc",
321      "video_rtp_receiver_unittest.cc",
322    ]
323
324    include_dirs = [ "//third_party/libsrtp/srtp" ]
325
326    if (is_win) {
327      libs = [ "strmiids.lib" ]
328    }
329
330    deps = [
331      ":libjingle_peerconnection",
332      ":pc_test_utils",
333      ":peerconnection",
334      ":rtc_pc",
335      ":rtc_pc_base",
336      "../api:array_view",
337      "../api:audio_options_api",
338      "../api:ice_transport_factory",
339      "../api:libjingle_peerconnection_api",
340      "../api:rtc_error",
341      "../api:rtp_headers",
342      "../api:rtp_parameters",
343      "../api/video:builtin_video_bitrate_allocator_factory",
344      "../api/video/test:mock_recordable_encoded_frame",
345      "../call:rtp_interfaces",
346      "../call:rtp_receiver",
347      "../media:rtc_data",
348      "../media:rtc_media_base",
349      "../media:rtc_media_tests_utils",
350      "../modules/rtp_rtcp:rtp_rtcp_format",
351      "../p2p:fake_ice_transport",
352      "../p2p:fake_port_allocator",
353      "../p2p:p2p_test_utils",
354      "../p2p:rtc_p2p",
355      "../rtc_base",
356      "../rtc_base:checks",
357      "../rtc_base:gunit_helpers",
358      "../rtc_base:rtc_base_approved",
359      "../rtc_base:rtc_base_tests_utils",
360      "../rtc_base/third_party/sigslot",
361      "../system_wrappers:metrics",
362      "../test:test_main",
363      "../test:test_support",
364      "//third_party/abseil-cpp/absl/algorithm:container",
365      "//third_party/abseil-cpp/absl/memory",
366      "//third_party/abseil-cpp/absl/strings",
367    ]
368
369    if (rtc_build_libsrtp) {
370      deps += [ "//third_party/libsrtp" ]
371    }
372
373    if (is_android) {
374      deps += [ "//testing/android/native_test:native_test_support" ]
375    }
376  }
377
378  rtc_library("peerconnection_perf_tests") {
379    testonly = true
380    sources = [ "peer_connection_rampup_tests.cc" ]
381    deps = [
382      ":pc_test_utils",
383      ":peerconnection_wrapper",
384      "../api:audio_options_api",
385      "../api:create_peerconnection_factory",
386      "../api:libjingle_peerconnection_api",
387      "../api:media_stream_interface",
388      "../api:rtc_stats_api",
389      "../api:scoped_refptr",
390      "../api/audio:audio_mixer_api",
391      "../api/audio_codecs:audio_codecs_api",
392      "../api/audio_codecs:builtin_audio_decoder_factory",
393      "../api/audio_codecs:builtin_audio_encoder_factory",
394      "../api/video_codecs:builtin_video_decoder_factory",
395      "../api/video_codecs:builtin_video_encoder_factory",
396      "../api/video_codecs:video_codecs_api",
397      "../media:rtc_media_tests_utils",
398      "../modules/audio_device:audio_device_api",
399      "../modules/audio_processing:api",
400      "../p2p:p2p_test_utils",
401      "../p2p:rtc_p2p",
402      "../pc:peerconnection",
403      "../rtc_base",
404      "../rtc_base:checks",
405      "../rtc_base:gunit_helpers",
406      "../rtc_base:rtc_base_tests_utils",
407      "../system_wrappers",
408      "../test:perf_test",
409      "../test:test_support",
410    ]
411    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
412  }
413
414  rtc_library("peerconnection_wrapper") {
415    testonly = true
416    sources = [
417      "peer_connection_wrapper.cc",
418      "peer_connection_wrapper.h",
419    ]
420    deps = [
421      ":pc_test_utils",
422      "../api:function_view",
423      "../api:libjingle_peerconnection_api",
424      "../api:media_stream_interface",
425      "../api:rtc_error",
426      "../api:rtc_stats_api",
427      "../api:rtp_parameters",
428      "../api:scoped_refptr",
429      "../pc:peerconnection",
430      "../rtc_base:checks",
431      "../rtc_base:gunit_helpers",
432      "../rtc_base:rtc_base_approved",
433      "../test:test_support",
434    ]
435  }
436
437  rtc_library("pc_test_utils") {
438    testonly = true
439    sources = [
440      "test/fake_audio_capture_module.cc",
441      "test/fake_audio_capture_module.h",
442      "test/fake_data_channel_provider.h",
443      "test/fake_peer_connection_base.h",
444      "test/fake_peer_connection_for_stats.h",
445      "test/fake_periodic_video_source.h",
446      "test/fake_periodic_video_track_source.h",
447      "test/fake_rtc_certificate_generator.h",
448      "test/fake_sctp_transport.h",
449      "test/fake_video_track_renderer.h",
450      "test/fake_video_track_source.h",
451      "test/frame_generator_capturer_video_track_source.h",
452      "test/mock_channel_interface.h",
453      "test/mock_data_channel.h",
454      "test/mock_delayable.h",
455      "test/mock_peer_connection_observers.h",
456      "test/mock_rtp_receiver_internal.h",
457      "test/mock_rtp_sender_internal.h",
458      "test/peer_connection_test_wrapper.cc",
459      "test/peer_connection_test_wrapper.h",
460      "test/rtc_stats_obtainer.h",
461      "test/test_sdp_strings.h",
462    ]
463
464    deps = [
465      ":libjingle_peerconnection",
466      ":peerconnection",
467      ":rtc_pc_base",
468      "../api:audio_options_api",
469      "../api:create_frame_generator",
470      "../api:create_peerconnection_factory",
471      "../api:libjingle_peerconnection_api",
472      "../api:media_stream_interface",
473      "../api:rtc_error",
474      "../api:rtc_stats_api",
475      "../api:scoped_refptr",
476      "../api/audio:audio_mixer_api",
477      "../api/audio_codecs:audio_codecs_api",
478      "../api/task_queue",
479      "../api/task_queue:default_task_queue_factory",
480      "../api/video:builtin_video_bitrate_allocator_factory",
481      "../api/video:video_frame",
482      "../api/video:video_rtp_headers",
483      "../api/video_codecs:builtin_video_decoder_factory",
484      "../api/video_codecs:builtin_video_encoder_factory",
485      "../api/video_codecs:video_codecs_api",
486      "../call:call_interfaces",
487      "../media:rtc_data",
488      "../media:rtc_media",
489      "../media:rtc_media_base",
490      "../media:rtc_media_tests_utils",
491      "../modules/audio_device",
492      "../modules/audio_processing",
493      "../modules/audio_processing:api",
494      "../p2p:fake_port_allocator",
495      "../p2p:p2p_test_utils",
496      "../p2p:rtc_p2p",
497      "../rtc_base",
498      "../rtc_base:checks",
499      "../rtc_base:gunit_helpers",
500      "../rtc_base:rtc_base_approved",
501      "../rtc_base:rtc_task_queue",
502      "../rtc_base:task_queue_for_test",
503      "../rtc_base/synchronization:mutex",
504      "../rtc_base/synchronization:sequence_checker",
505      "../rtc_base/task_utils:repeating_task",
506      "../rtc_base/third_party/sigslot",
507      "../test:test_support",
508      "../test:video_test_common",
509    ]
510    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
511  }
512
513  rtc_test("peerconnection_unittests") {
514    testonly = true
515    sources = [
516      "data_channel_unittest.cc",
517      "dtmf_sender_unittest.cc",
518      "ice_server_parsing_unittest.cc",
519      "jitter_buffer_delay_unittest.cc",
520      "jsep_session_description_unittest.cc",
521      "local_audio_source_unittest.cc",
522      "media_stream_unittest.cc",
523      "peer_connection_adaptation_integrationtest.cc",
524      "peer_connection_bundle_unittest.cc",
525      "peer_connection_crypto_unittest.cc",
526      "peer_connection_data_channel_unittest.cc",
527      "peer_connection_end_to_end_unittest.cc",
528      "peer_connection_factory_unittest.cc",
529      "peer_connection_header_extension_unittest.cc",
530      "peer_connection_histogram_unittest.cc",
531      "peer_connection_ice_unittest.cc",
532      "peer_connection_integrationtest.cc",
533      "peer_connection_interface_unittest.cc",
534      "peer_connection_jsep_unittest.cc",
535      "peer_connection_media_unittest.cc",
536      "peer_connection_rtp_unittest.cc",
537      "peer_connection_signaling_unittest.cc",
538      "peer_connection_simulcast_unittest.cc",
539      "peer_connection_wrapper.cc",
540      "peer_connection_wrapper.h",
541      "proxy_unittest.cc",
542      "rtc_stats_collector_unittest.cc",
543      "rtc_stats_integrationtest.cc",
544      "rtc_stats_traversal_unittest.cc",
545      "rtp_media_utils_unittest.cc",
546      "rtp_parameters_conversion_unittest.cc",
547      "rtp_sender_receiver_unittest.cc",
548      "rtp_transceiver_unittest.cc",
549      "sctp_utils_unittest.cc",
550      "sdp_serializer_unittest.cc",
551      "stats_collector_unittest.cc",
552      "test/fake_audio_capture_module_unittest.cc",
553      "test/test_sdp_strings.h",
554      "track_media_info_map_unittest.cc",
555      "video_rtp_track_source_unittest.cc",
556      "video_track_unittest.cc",
557      "webrtc_sdp_unittest.cc",
558    ]
559
560    if (rtc_enable_sctp) {
561      defines = [ "HAVE_SCTP" ]
562    }
563
564    deps = [
565      ":peerconnection",
566      ":rtc_pc_base",
567      "../api:array_view",
568      "../api:audio_options_api",
569      "../api:create_peerconnection_factory",
570      "../api:fake_frame_decryptor",
571      "../api:fake_frame_encryptor",
572      "../api:function_view",
573      "../api:libjingle_logging_api",
574      "../api:libjingle_peerconnection_api",
575      "../api:media_stream_interface",
576      "../api:mock_rtp",
577      "../api:rtc_error",
578      "../api:scoped_refptr",
579      "../api/audio:audio_mixer_api",
580      "../api/crypto:frame_decryptor_interface",
581      "../api/crypto:frame_encryptor_interface",
582      "../api/crypto:options",
583      "../api/rtc_event_log",
584      "../api/rtc_event_log:rtc_event_log_factory",
585      "../api/task_queue:default_task_queue_factory",
586      "../api/transport/rtp:rtp_source",
587      "../api/units:time_delta",
588      "../api/video:builtin_video_bitrate_allocator_factory",
589      "../call/adaptation:resource_adaptation_test_utilities",
590      "../logging:fake_rtc_event_log",
591      "../media:rtc_media_config",
592      "../media:rtc_media_engine_defaults",
593      "../modules/audio_device:audio_device_api",
594      "../modules/audio_processing:audio_processing_statistics",
595      "../modules/audio_processing:audioproc_test_utils",
596      "../modules/rtp_rtcp:rtp_rtcp_format",
597      "../p2p:fake_ice_transport",
598      "../p2p:fake_port_allocator",
599      "../rtc_base:checks",
600      "../rtc_base:gunit_helpers",
601      "../rtc_base:rtc_base_tests_utils",
602      "../rtc_base:rtc_json",
603      "../rtc_base/synchronization:mutex",
604      "../rtc_base/third_party/base64",
605      "../rtc_base/third_party/sigslot",
606      "../system_wrappers:metrics",
607      "../test:field_trial",
608      "../test:fileutils",
609      "../test:rtp_test_utils",
610      "./scenario_tests:pc_scenario_tests",
611      "//third_party/abseil-cpp/absl/algorithm:container",
612      "//third_party/abseil-cpp/absl/memory",
613      "//third_party/abseil-cpp/absl/strings",
614      "//third_party/abseil-cpp/absl/types:optional",
615    ]
616    if (is_android) {
617      deps += [ ":android_black_magic" ]
618    }
619
620    deps += [
621      ":libjingle_peerconnection",
622      ":pc_test_utils",
623      "../api:callfactory_api",
624      "../api:rtc_event_log_output_file",
625      "../api:rtc_stats_api",
626      "../api:rtp_parameters",
627      "../api/audio_codecs:audio_codecs_api",
628      "../api/audio_codecs:builtin_audio_decoder_factory",
629      "../api/audio_codecs:builtin_audio_encoder_factory",
630      "../api/audio_codecs:opus_audio_decoder_factory",
631      "../api/audio_codecs:opus_audio_encoder_factory",
632      "../api/audio_codecs/L16:audio_decoder_L16",
633      "../api/audio_codecs/L16:audio_encoder_L16",
634      "../api/video_codecs:builtin_video_decoder_factory",
635      "../api/video_codecs:builtin_video_encoder_factory",
636      "../api/video_codecs:video_codecs_api",
637      "../call:call_interfaces",
638      "../media:rtc_audio_video",
639      "../media:rtc_data",  # TODO(phoglund): AFAIK only used for one sctp
640                            # constant.
641      "../media:rtc_media_base",
642      "../media:rtc_media_tests_utils",
643      "../modules/audio_processing",
644      "../modules/audio_processing:api",
645      "../modules/utility",
646      "../p2p:p2p_test_utils",
647      "../p2p:rtc_p2p",
648      "../pc:rtc_pc",
649      "../rtc_base",
650      "../rtc_base:rtc_base_approved",
651      "../rtc_base:rtc_task_queue",
652      "../rtc_base:safe_conversions",
653      "../test:audio_codec_mocks",
654      "../test:test_main",
655      "../test:test_support",
656    ]
657
658    if (is_android) {
659      deps += [
660        "//testing/android/native_test:native_test_support",
661
662        # We need to depend on this one directly, or classloads will fail for
663        # the voice engine BuildInfo, for instance.
664        "../sdk/android:libjingle_peerconnection_java",
665      ]
666
667      shard_timeout = 900
668    }
669  }
670
671  if (is_android) {
672    rtc_library("android_black_magic") {
673      # The android code uses hacky includes to chromium-base and the ssl code;
674      # having this in a separate target enables us to keep the peerconnection
675      # unit tests clean.
676      check_includes = false
677      testonly = true
678      sources = [
679        "test/android_test_initializer.cc",
680        "test/android_test_initializer.h",
681      ]
682      deps = [
683        "../sdk/android:libjingle_peerconnection_jni",
684        "//testing/android/native_test:native_test_support",
685      ]
686    }
687  }
688}
689