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