# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("../webrtc.gni") group("p2p") { public_deps = [ ":libstunprober", ":rtc_p2p", ] } config("rtc_p2p_inherited_config") { defines = [ "FEATURE_ENABLE_VOICEMAIL" ] } rtc_static_library("rtc_p2p") { sources = [ "base/asyncstuntcpsocket.cc", "base/asyncstuntcpsocket.h", "base/basicpacketsocketfactory.cc", "base/basicpacketsocketfactory.h", "base/candidate.h", "base/common.h", "base/dtlstransport.cc", "base/dtlstransport.h", "base/dtlstransportinternal.h", "base/icetransportinternal.h", "base/jseptransport.cc", "base/jseptransport.h", "base/p2pconstants.cc", "base/p2pconstants.h", "base/p2ptransportchannel.cc", "base/p2ptransportchannel.h", "base/packetlossestimator.cc", "base/packetlossestimator.h", "base/packetsocketfactory.h", "base/packettransportinterface.h", "base/packettransportinternal.h", "base/port.cc", "base/port.h", "base/portallocator.cc", "base/portallocator.h", "base/portinterface.h", "base/pseudotcp.cc", "base/pseudotcp.h", "base/relayport.cc", "base/relayport.h", "base/session.cc", "base/session.h", "base/sessiondescription.cc", "base/sessiondescription.h", "base/stun.cc", "base/stun.h", "base/stunport.cc", "base/stunport.h", "base/stunrequest.cc", "base/stunrequest.h", "base/tcpport.cc", "base/tcpport.h", "base/transport.h", "base/transportdescription.cc", "base/transportdescription.h", "base/transportdescriptionfactory.cc", "base/transportdescriptionfactory.h", "base/transportinfo.h", "base/turnport.cc", "base/turnport.h", "base/udpport.h", "base/udptransport.cc", "base/udptransport.h", "client/basicportallocator.cc", "client/basicportallocator.h", "client/socketmonitor.cc", "client/socketmonitor.h", ] defines = [] deps = [ "../api:libjingle_peerconnection_api", "../api:optional", "../api:ortc_api", "../rtc_base:rtc_base", "../system_wrappers:field_trial_api", ] public_configs = [ ":rtc_p2p_inherited_config" ] if (build_with_chromium) { if (is_nacl) { deps += [ "//native_client_sdk/src/libraries/nacl_io" ] } } else { sources += [ "base/relayserver.cc", "base/relayserver.h", "base/stunserver.cc", "base/stunserver.h", "base/turnserver.cc", "base/turnserver.h", ] defines += [ "FEATURE_ENABLE_VOICEMAIL", "FEATURE_ENABLE_PSTN", ] if (!build_with_chromium && is_clang) { # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] } } if (rtc_use_quic) { deps = [ "//third_party/libquic", ] sources += [ "quic/quicconnectionhelper.cc", "quic/quicconnectionhelper.h", "quic/quicsession.cc", "quic/quicsession.h", "quic/quictransport.cc", "quic/quictransport.h", "quic/quictransportchannel.cc", "quic/quictransportchannel.h", "quic/reliablequicstream.cc", "quic/reliablequicstream.h", ] public_deps += [ "//third_party/libquic" ] } } if (rtc_include_tests) { rtc_source_set("p2p_test_utils") { testonly = true sources = [ "base/fakecandidatepair.h", "base/fakedtlstransport.h", "base/fakeicetransport.h", "base/fakepackettransport.h", "base/fakeportallocator.h", "base/mockicetransport.h", "base/testrelayserver.h", "base/teststunserver.h", "base/testturncustomizer.h", "base/testturnserver.h", ] deps = [ ":rtc_p2p", "../api:ortc_api", "../rtc_base:rtc_base", "../rtc_base:rtc_base_approved", "../rtc_base:rtc_base_tests_utils", "../test:test_support", "//testing/gmock", ] } rtc_source_set("rtc_p2p_unittests") { testonly = true # Skip restricting visibility on mobile platforms since the tests on those # gets additional generated targets which would require many lines here to # cover (which would be confusing to read and hard to maintain). if (!is_android && !is_ios) { visibility = [ "..:rtc_unittests" ] } sources = [ "base/asyncstuntcpsocket_unittest.cc", "base/dtlstransport_unittest.cc", "base/jseptransport_unittest.cc", "base/p2ptransportchannel_unittest.cc", "base/packetlossestimator_unittest.cc", "base/port_unittest.cc", "base/portallocator_unittest.cc", "base/pseudotcp_unittest.cc", "base/relayport_unittest.cc", "base/relayserver_unittest.cc", "base/stun_unittest.cc", "base/stunport_unittest.cc", "base/stunrequest_unittest.cc", "base/stunserver_unittest.cc", "base/tcpport_unittest.cc", "base/transportdescriptionfactory_unittest.cc", "base/turnport_unittest.cc", "base/turnserver_unittest.cc", "base/udptransport_unittest.cc", "client/basicportallocator_unittest.cc", ] if (rtc_use_quic) { sources += [ "quic/quicconnectionhelper_unittest.cc", "quic/quicsession_unittest.cc", "quic/quictransport_unittest.cc", "quic/quictransportchannel_unittest.cc", "quic/reliablequicstream_unittest.cc", ] } deps = [ ":p2p_test_utils", ":rtc_p2p", "../api:fakemetricsobserver", "../api:ortc_api", "../rtc_base:rtc_base", "../rtc_base:rtc_base_approved", "../rtc_base:rtc_base_tests_utils", "../test:test_support", "//testing/gmock", "//testing/gtest", ] if (!build_with_chromium && is_clang) { # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] } defines = [ "GTEST_RELATIVE_PATH" ] } } rtc_static_library("libstunprober") { sources = [ "stunprober/stunprober.cc", ] if (!build_with_chromium && is_clang) { # Suppress warnings from Chrome's Clang plugins. # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] } deps = [ ":rtc_p2p", "..:webrtc_common", "../rtc_base:rtc_base", ] } if (rtc_include_tests) { rtc_source_set("libstunprober_unittests") { testonly = true # Skip restricting visibility on mobile platforms since the tests on those # gets additional generated targets which would require many lines here to # cover (which would be confusing to read and hard to maintain). if (!is_android && !is_ios) { visibility = [ "..:rtc_unittests" ] } sources = [ "stunprober/stunprober_unittest.cc", ] deps = [ ":libstunprober", ":p2p_test_utils", ":rtc_p2p", "../rtc_base:rtc_base", "../rtc_base:rtc_base_tests_utils", "//testing/gmock", "//testing/gtest", ] if (!build_with_chromium && is_clang) { # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] } defines = [ "GTEST_RELATIVE_PATH" ] } }