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