xref: /aosp_15_r20/external/webrtc/p2p/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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")
10
11group("p2p") {
12  deps = [
13    ":libstunprober",
14    ":rtc_p2p",
15  ]
16}
17
18rtc_library("rtc_p2p") {
19  visibility = [ "*" ]
20  sources = [
21    "base/active_ice_controller_factory_interface.h",
22    "base/active_ice_controller_interface.h",
23    "base/async_stun_tcp_socket.cc",
24    "base/async_stun_tcp_socket.h",
25    "base/basic_async_resolver_factory.cc",
26    "base/basic_async_resolver_factory.h",
27    "base/basic_ice_controller.cc",
28    "base/basic_ice_controller.h",
29    "base/basic_packet_socket_factory.cc",
30    "base/basic_packet_socket_factory.h",
31    "base/candidate_pair_interface.h",
32    "base/connection.cc",
33    "base/connection.h",
34    "base/connection_info.cc",
35    "base/connection_info.h",
36    "base/default_ice_transport_factory.cc",
37    "base/default_ice_transport_factory.h",
38    "base/dtls_transport.cc",
39    "base/dtls_transport.h",
40    "base/dtls_transport_factory.h",
41    "base/dtls_transport_internal.cc",
42    "base/dtls_transport_internal.h",
43    "base/ice_agent_interface.h",
44    "base/ice_controller_factory_interface.h",
45    "base/ice_controller_interface.cc",
46    "base/ice_controller_interface.h",
47    "base/ice_credentials_iterator.cc",
48    "base/ice_credentials_iterator.h",
49    "base/ice_switch_reason.cc",
50    "base/ice_switch_reason.h",
51    "base/ice_transport_internal.cc",
52    "base/ice_transport_internal.h",
53    "base/p2p_constants.cc",
54    "base/p2p_constants.h",
55    "base/p2p_transport_channel.cc",
56    "base/p2p_transport_channel.h",
57    "base/p2p_transport_channel_ice_field_trials.h",
58    "base/packet_transport_internal.cc",
59    "base/packet_transport_internal.h",
60    "base/port.cc",
61    "base/port.h",
62    "base/port_allocator.cc",
63    "base/port_allocator.h",
64    "base/port_interface.cc",
65    "base/port_interface.h",
66    "base/pseudo_tcp.cc",
67    "base/pseudo_tcp.h",
68    "base/regathering_controller.cc",
69    "base/regathering_controller.h",
70    "base/stun_port.cc",
71    "base/stun_port.h",
72    "base/stun_request.cc",
73    "base/stun_request.h",
74    "base/tcp_port.cc",
75    "base/tcp_port.h",
76    "base/transport_description.cc",
77    "base/transport_description.h",
78    "base/transport_description_factory.cc",
79    "base/transport_description_factory.h",
80    "base/transport_info.h",
81    "base/turn_port.cc",
82    "base/turn_port.h",
83    "base/udp_port.h",
84    "base/wrapping_active_ice_controller.cc",
85    "base/wrapping_active_ice_controller.h",
86    "client/basic_port_allocator.cc",
87    "client/basic_port_allocator.h",
88    "client/relay_port_factory_interface.h",
89    "client/turn_port_factory.cc",
90    "client/turn_port_factory.h",
91  ]
92
93  deps = [
94    "../api:array_view",
95    "../api:async_dns_resolver",
96    "../api:candidate",
97    "../api:dtls_transport_interface",
98    "../api:field_trials_view",
99    "../api:ice_transport_interface",
100    "../api:make_ref_counted",
101    "../api:packet_socket_factory",
102    "../api:rtc_error",
103    "../api:scoped_refptr",
104    "../api:sequence_checker",
105    "../api:turn_customizer",
106    "../api:wrapping_async_dns_resolver",
107    "../api/crypto:options",
108    "../api/rtc_event_log",
109    "../api/task_queue",
110    "../api/transport:enums",
111    "../api/transport:field_trial_based_config",
112    "../api/transport:stun_types",
113    "../api/units:time_delta",
114    "../api/units:timestamp",
115    "../logging:ice_log",
116    "../rtc_base",
117    "../rtc_base:async_resolver_interface",
118    "../rtc_base:buffer",
119    "../rtc_base:buffer_queue",
120    "../rtc_base:byte_buffer",
121    "../rtc_base:byte_order",
122    "../rtc_base:callback_list",
123    "../rtc_base:checks",
124    "../rtc_base:event_tracer",
125    "../rtc_base:ip_address",
126    "../rtc_base:logging",
127    "../rtc_base:macromagic",
128    "../rtc_base:net_helpers",
129    "../rtc_base:network_constants",
130    "../rtc_base:rate_tracker",
131    "../rtc_base:refcount",
132    "../rtc_base:rtc_numerics",
133    "../rtc_base:socket",
134    "../rtc_base:socket_address",
135    "../rtc_base:socket_factory",
136    "../rtc_base:socket_server",
137    "../rtc_base:stringutils",
138    "../rtc_base:threading",
139    "../rtc_base:timeutils",
140    "../rtc_base/containers:flat_map",
141    "../rtc_base/experiments:field_trial_parser",
142    "../rtc_base/memory:always_valid_pointer",
143    "../rtc_base/system:no_unique_address",
144
145    # Needed by pseudo_tcp, which should move to a separate target.
146    "../api/task_queue:pending_task_safety_flag",
147    "../rtc_base:safe_minmax",
148    "../rtc_base:weak_ptr",
149    "../rtc_base/network:sent_packet",
150    "../rtc_base/synchronization:mutex",
151    "../rtc_base/system:rtc_export",
152    "../rtc_base/third_party/base64",
153    "../rtc_base/third_party/sigslot",
154    "../system_wrappers:metrics",
155  ]
156  absl_deps = [
157    "//third_party/abseil-cpp/absl/algorithm:container",
158    "//third_party/abseil-cpp/absl/base:core_headers",
159    "//third_party/abseil-cpp/absl/memory",
160    "//third_party/abseil-cpp/absl/strings",
161    "//third_party/abseil-cpp/absl/types:optional",
162  ]
163}
164
165if (rtc_include_tests) {
166  rtc_library("fake_ice_transport") {
167    testonly = true
168    visibility = [ "*" ]
169    sources = [ "base/fake_ice_transport.h" ]
170    deps = [
171      ":rtc_p2p",
172      "../api:ice_transport_interface",
173      "../api:libjingle_peerconnection_api",
174      "../api/task_queue:pending_task_safety_flag",
175      "../api/units:time_delta",
176      "../rtc_base:copy_on_write_buffer",
177      "../rtc_base:task_queue_for_test",
178    ]
179    absl_deps = [
180      "//third_party/abseil-cpp/absl/algorithm:container",
181      "//third_party/abseil-cpp/absl/strings",
182      "//third_party/abseil-cpp/absl/types:optional",
183    ]
184  }
185
186  rtc_library("fake_port_allocator") {
187    testonly = true
188    visibility = [ "*" ]
189    sources = [ "base/fake_port_allocator.h" ]
190    deps = [
191      ":rtc_p2p",
192      "../rtc_base:net_helpers",
193      "../rtc_base:task_queue_for_test",
194      "../rtc_base:threading",
195      "../rtc_base/memory:always_valid_pointer",
196      "../test:scoped_key_value_config",
197    ]
198    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
199  }
200
201  rtc_library("p2p_test_utils") {
202    testonly = true
203    sources = [
204      "base/fake_dtls_transport.h",
205      "base/fake_packet_transport.h",
206      "base/mock_active_ice_controller.h",
207      "base/mock_async_resolver.h",
208      "base/mock_dns_resolving_packet_socket_factory.h",
209      "base/mock_ice_agent.h",
210      "base/mock_ice_controller.h",
211      "base/mock_ice_transport.h",
212      "base/test_stun_server.cc",
213      "base/test_stun_server.h",
214      "base/test_turn_customizer.h",
215      "base/test_turn_server.h",
216    ]
217    deps = [
218      ":fake_ice_transport",
219      ":fake_port_allocator",
220      ":p2p_server_utils",
221      ":rtc_p2p",
222      "../api:dtls_transport_interface",
223      "../api:libjingle_peerconnection_api",
224      "../api:mock_async_dns_resolver",
225      "../api:packet_socket_factory",
226      "../api:sequence_checker",
227      "../api:turn_customizer",
228      "../api/crypto:options",
229      "../api/transport:stun_types",
230      "../rtc_base",
231      "../rtc_base:async_resolver_interface",
232      "../rtc_base:copy_on_write_buffer",
233      "../rtc_base:gunit_helpers",
234      "../rtc_base:rtc_base_tests_utils",
235      "../rtc_base:socket",
236      "../rtc_base:socket_address",
237      "../rtc_base:socket_server",
238      "../rtc_base:threading",
239      "../rtc_base/third_party/sigslot",
240      "../test:test_support",
241    ]
242    absl_deps = [
243      "//third_party/abseil-cpp/absl/algorithm:container",
244      "//third_party/abseil-cpp/absl/strings",
245      "//third_party/abseil-cpp/absl/types:optional",
246    ]
247  }
248
249  rtc_library("rtc_p2p_unittests") {
250    testonly = true
251
252    sources = [
253      "base/async_stun_tcp_socket_unittest.cc",
254      "base/basic_async_resolver_factory_unittest.cc",
255      "base/dtls_transport_unittest.cc",
256      "base/ice_credentials_iterator_unittest.cc",
257      "base/p2p_transport_channel_unittest.cc",
258      "base/port_allocator_unittest.cc",
259      "base/port_unittest.cc",
260      "base/pseudo_tcp_unittest.cc",
261      "base/regathering_controller_unittest.cc",
262      "base/stun_port_unittest.cc",
263      "base/stun_request_unittest.cc",
264      "base/stun_server_unittest.cc",
265      "base/tcp_port_unittest.cc",
266      "base/transport_description_factory_unittest.cc",
267      "base/transport_description_unittest.cc",
268      "base/turn_port_unittest.cc",
269      "base/turn_server_unittest.cc",
270      "base/wrapping_active_ice_controller_unittest.cc",
271      "client/basic_port_allocator_unittest.cc",
272    ]
273    deps = [
274      ":fake_ice_transport",
275      ":fake_port_allocator",
276      ":p2p_server_utils",
277      ":p2p_test_utils",
278      ":rtc_p2p",
279      "../api:candidate",
280      "../api:dtls_transport_interface",
281      "../api:field_trials_view",
282      "../api:libjingle_peerconnection_api",
283      "../api:mock_async_dns_resolver",
284      "../api:packet_socket_factory",
285      "../api:scoped_refptr",
286      "../api/task_queue",
287      "../api/task_queue:pending_task_safety_flag",
288      "../api/transport:stun_types",
289      "../api/units:time_delta",
290      "../rtc_base",
291      "../rtc_base:buffer",
292      "../rtc_base:byte_buffer",
293      "../rtc_base:checks",
294      "../rtc_base:copy_on_write_buffer",
295      "../rtc_base:gunit_helpers",
296      "../rtc_base:ip_address",
297      "../rtc_base:logging",
298      "../rtc_base:macromagic",
299      "../rtc_base:net_helpers",
300      "../rtc_base:network_constants",
301      "../rtc_base:rtc_base_tests_utils",
302      "../rtc_base:socket",
303      "../rtc_base:socket_address",
304      "../rtc_base:stringutils",
305      "../rtc_base:testclient",
306      "../rtc_base:threading",
307      "../rtc_base:timeutils",
308      "../rtc_base/network:sent_packet",
309      "../rtc_base/third_party/sigslot",
310      "../system_wrappers:metrics",
311      "../test:rtc_expect_death",
312      "../test:scoped_key_value_config",
313      "../test:test_support",
314      "//testing/gtest",
315    ]
316    absl_deps = [
317      "//third_party/abseil-cpp/absl/algorithm:container",
318      "//third_party/abseil-cpp/absl/memory",
319      "//third_party/abseil-cpp/absl/strings",
320      "//third_party/abseil-cpp/absl/types:optional",
321    ]
322  }
323}
324
325rtc_library("p2p_server_utils") {
326  testonly = true
327  sources = [
328    "base/stun_server.cc",
329    "base/stun_server.h",
330    "base/turn_server.cc",
331    "base/turn_server.h",
332  ]
333  deps = [
334    ":rtc_p2p",
335    "../api:array_view",
336    "../api:packet_socket_factory",
337    "../api:sequence_checker",
338    "../api/task_queue",
339    "../api/task_queue:pending_task_safety_flag",
340    "../api/transport:stun_types",
341    "../api/units:time_delta",
342    "../rtc_base",
343    "../rtc_base:byte_buffer",
344    "../rtc_base:checks",
345    "../rtc_base:logging",
346    "../rtc_base:rtc_base_tests_utils",
347    "../rtc_base:socket_address",
348    "../rtc_base:stringutils",
349    "../rtc_base/third_party/sigslot",
350  ]
351  absl_deps = [
352    "//third_party/abseil-cpp/absl/algorithm:container",
353    "//third_party/abseil-cpp/absl/memory",
354    "//third_party/abseil-cpp/absl/strings",
355  ]
356}
357
358rtc_library("libstunprober") {
359  visibility = [ "*" ]
360  sources = [
361    "stunprober/stun_prober.cc",
362    "stunprober/stun_prober.h",
363  ]
364
365  deps = [
366    ":rtc_p2p",
367    "../api:packet_socket_factory",
368    "../api:sequence_checker",
369    "../api/task_queue:pending_task_safety_flag",
370    "../api/transport:stun_types",
371    "../api/units:time_delta",
372    "../rtc_base",
373    "../rtc_base:async_resolver_interface",
374    "../rtc_base:byte_buffer",
375    "../rtc_base:checks",
376    "../rtc_base:ip_address",
377    "../rtc_base:logging",
378    "../rtc_base:socket_address",
379    "../rtc_base:threading",
380    "../rtc_base:timeutils",
381    "../rtc_base/system:rtc_export",
382  ]
383}
384
385if (rtc_include_tests) {
386  rtc_library("libstunprober_unittests") {
387    testonly = true
388
389    sources = [ "stunprober/stun_prober_unittest.cc" ]
390    deps = [
391      ":libstunprober",
392      ":p2p_test_utils",
393      ":rtc_p2p",
394      "../rtc_base",
395      "../rtc_base:checks",
396      "../rtc_base:gunit_helpers",
397      "../rtc_base:ip_address",
398      "../rtc_base:rtc_base_tests_utils",
399      "../test:test_support",
400      "//testing/gtest",
401    ]
402  }
403}
404