• 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")
10
11group("p2p") {
12  public_deps = [
13    ":libstunprober",
14    ":rtc_p2p",
15  ]
16}
17
18rtc_library("rtc_p2p") {
19  visibility = [ "*" ]
20  sources = [
21    "base/async_stun_tcp_socket.cc",
22    "base/async_stun_tcp_socket.h",
23    "base/basic_async_resolver_factory.cc",
24    "base/basic_async_resolver_factory.h",
25    "base/basic_ice_controller.cc",
26    "base/basic_ice_controller.h",
27    "base/basic_packet_socket_factory.cc",
28    "base/basic_packet_socket_factory.h",
29    "base/candidate_pair_interface.h",
30    "base/connection.cc",
31    "base/connection.h",
32    "base/connection_info.cc",
33    "base/connection_info.h",
34    "base/default_ice_transport_factory.cc",
35    "base/default_ice_transport_factory.h",
36    "base/dtls_transport.cc",
37    "base/dtls_transport.h",
38    "base/dtls_transport_factory.h",
39    "base/dtls_transport_internal.cc",
40    "base/dtls_transport_internal.h",
41    "base/ice_controller_factory_interface.h",
42    "base/ice_controller_interface.cc",
43    "base/ice_controller_interface.h",
44    "base/ice_credentials_iterator.cc",
45    "base/ice_credentials_iterator.h",
46    "base/ice_transport_internal.cc",
47    "base/ice_transport_internal.h",
48    "base/mdns_message.cc",
49    "base/mdns_message.h",
50    "base/p2p_constants.cc",
51    "base/p2p_constants.h",
52    "base/p2p_transport_channel.cc",
53    "base/p2p_transport_channel.h",
54    "base/p2p_transport_channel_ice_field_trials.h",
55    "base/packet_transport_internal.cc",
56    "base/packet_transport_internal.h",
57    "base/port.cc",
58    "base/port.h",
59    "base/port_allocator.cc",
60    "base/port_allocator.h",
61    "base/port_interface.cc",
62    "base/port_interface.h",
63    "base/pseudo_tcp.cc",
64    "base/pseudo_tcp.h",
65    "base/regathering_controller.cc",
66    "base/regathering_controller.h",
67    "base/stun_port.cc",
68    "base/stun_port.h",
69    "base/stun_request.cc",
70    "base/stun_request.h",
71    "base/tcp_port.cc",
72    "base/tcp_port.h",
73    "base/transport_description.cc",
74    "base/transport_description.h",
75    "base/transport_description_factory.cc",
76    "base/transport_description_factory.h",
77    "base/transport_info.h",
78    "base/turn_port.cc",
79    "base/turn_port.h",
80    "base/udp_port.h",
81    "client/basic_port_allocator.cc",
82    "client/basic_port_allocator.h",
83    "client/relay_port_factory_interface.h",
84    "client/turn_port_factory.cc",
85    "client/turn_port_factory.h",
86  ]
87
88  deps = [
89    "../api:libjingle_peerconnection_api",
90    "../api:packet_socket_factory",
91    "../api:rtc_error",
92    "../api:scoped_refptr",
93    "../api/crypto:options",
94    "../api/rtc_event_log",
95    "../api/transport:enums",
96    "../api/transport:stun_types",
97    "../logging:ice_log",
98    "../rtc_base",
99    "../rtc_base:checks",
100    "../rtc_base:rtc_numerics",
101    "../rtc_base/experiments:field_trial_parser",
102
103    # Needed by pseudo_tcp, which should move to a separate target.
104    "../rtc_base:safe_minmax",
105    "../rtc_base:weak_ptr",
106    "../rtc_base/memory:fifo_buffer",
107    "../rtc_base/network:sent_packet",
108    "../rtc_base/system:rtc_export",
109    "../rtc_base/task_utils:to_queued_task",
110    "../rtc_base/third_party/base64",
111    "../rtc_base/third_party/sigslot",
112    "../system_wrappers:field_trial",
113    "../system_wrappers:metrics",
114  ]
115  absl_deps = [
116    "//third_party/abseil-cpp/absl/algorithm:container",
117    "//third_party/abseil-cpp/absl/memory",
118    "//third_party/abseil-cpp/absl/strings",
119    "//third_party/abseil-cpp/absl/types:optional",
120  ]
121}
122
123if (rtc_include_tests) {
124  rtc_library("fake_ice_transport") {
125    testonly = true
126    visibility = [ "*" ]
127    sources = [ "base/fake_ice_transport.h" ]
128    deps = [
129      ":rtc_p2p",
130      "../api:libjingle_peerconnection_api",
131      "../rtc_base",
132      "../rtc_base:rtc_base_approved",
133    ]
134    absl_deps = [
135      "//third_party/abseil-cpp/absl/algorithm:container",
136      "//third_party/abseil-cpp/absl/types:optional",
137    ]
138  }
139
140  rtc_library("fake_port_allocator") {
141    testonly = true
142    visibility = [ "*" ]
143    sources = [ "base/fake_port_allocator.h" ]
144    deps = [
145      ":rtc_p2p",
146      "../rtc_base",
147    ]
148  }
149
150  rtc_library("p2p_test_utils") {
151    testonly = true
152    sources = [
153      "base/fake_dtls_transport.h",
154      "base/fake_packet_transport.h",
155      "base/mock_async_resolver.h",
156      "base/mock_ice_transport.h",
157      "base/test_stun_server.cc",
158      "base/test_stun_server.h",
159      "base/test_turn_customizer.h",
160      "base/test_turn_server.h",
161    ]
162    deps = [
163      ":fake_ice_transport",
164      ":fake_port_allocator",
165      ":p2p_server_utils",
166      ":rtc_p2p",
167      "../api:libjingle_peerconnection_api",
168      "../api:packet_socket_factory",
169      "../api/crypto:options",
170      "../api/transport:stun_types",
171      "../rtc_base",
172      "../rtc_base:gunit_helpers",
173      "../rtc_base:rtc_base_approved",
174      "../rtc_base:rtc_base_tests_utils",
175      "../rtc_base/third_party/sigslot",
176      "../test:test_support",
177    ]
178    absl_deps = [
179      "//third_party/abseil-cpp/absl/algorithm:container",
180      "//third_party/abseil-cpp/absl/types:optional",
181    ]
182  }
183
184  rtc_library("rtc_p2p_unittests") {
185    testonly = true
186
187    sources = [
188      "base/async_stun_tcp_socket_unittest.cc",
189      "base/basic_async_resolver_factory_unittest.cc",
190      "base/dtls_transport_unittest.cc",
191      "base/ice_credentials_iterator_unittest.cc",
192      "base/mdns_message_unittest.cc",
193      "base/p2p_transport_channel_unittest.cc",
194      "base/port_allocator_unittest.cc",
195      "base/port_unittest.cc",
196      "base/pseudo_tcp_unittest.cc",
197      "base/regathering_controller_unittest.cc",
198      "base/stun_port_unittest.cc",
199      "base/stun_request_unittest.cc",
200      "base/stun_server_unittest.cc",
201      "base/tcp_port_unittest.cc",
202      "base/transport_description_factory_unittest.cc",
203      "base/transport_description_unittest.cc",
204      "base/turn_port_unittest.cc",
205      "base/turn_server_unittest.cc",
206      "client/basic_port_allocator_unittest.cc",
207    ]
208    deps = [
209      ":fake_ice_transport",
210      ":fake_port_allocator",
211      ":p2p_server_utils",
212      ":p2p_test_utils",
213      ":rtc_p2p",
214      "../api:libjingle_peerconnection_api",
215      "../api:packet_socket_factory",
216      "../api:scoped_refptr",
217      "../api/transport:stun_types",
218      "../api/units:time_delta",
219      "../rtc_base",
220      "../rtc_base:checks",
221      "../rtc_base:gunit_helpers",
222      "../rtc_base:rtc_base_approved",
223      "../rtc_base:rtc_base_tests_utils",
224      "../rtc_base:testclient",
225      "../rtc_base/network:sent_packet",
226      "../rtc_base/third_party/sigslot",
227      "../system_wrappers:metrics",
228      "../test:field_trial",
229      "../test:test_support",
230      "//testing/gtest",
231    ]
232    absl_deps = [
233      "//third_party/abseil-cpp/absl/algorithm:container",
234      "//third_party/abseil-cpp/absl/memory",
235      "//third_party/abseil-cpp/absl/types:optional",
236    ]
237  }
238}
239
240rtc_library("p2p_server_utils") {
241  testonly = true
242  sources = [
243    "base/stun_server.cc",
244    "base/stun_server.h",
245    "base/turn_server.cc",
246    "base/turn_server.h",
247  ]
248  deps = [
249    ":rtc_p2p",
250    "../api:packet_socket_factory",
251    "../api/transport:stun_types",
252    "../rtc_base",
253    "../rtc_base:checks",
254    "../rtc_base:rtc_base_tests_utils",
255    "../rtc_base/third_party/sigslot",
256  ]
257  absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
258}
259
260rtc_library("libstunprober") {
261  visibility = [ "*" ]
262  sources = [
263    "stunprober/stun_prober.cc",
264    "stunprober/stun_prober.h",
265  ]
266
267  deps = [
268    ":rtc_p2p",
269    "../api:packet_socket_factory",
270    "../api/transport:stun_types",
271    "../rtc_base",
272    "../rtc_base:checks",
273    "../rtc_base/system:rtc_export",
274  ]
275}
276
277if (rtc_include_tests) {
278  rtc_library("libstunprober_unittests") {
279    testonly = true
280
281    sources = [ "stunprober/stun_prober_unittest.cc" ]
282    deps = [
283      ":libstunprober",
284      ":p2p_test_utils",
285      ":rtc_p2p",
286      "../rtc_base",
287      "../rtc_base:checks",
288      "../rtc_base:gunit_helpers",
289      "../rtc_base:rtc_base_tests_utils",
290      "../test:test_support",
291      "//testing/gtest",
292    ]
293  }
294}
295