| # 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("../build/webrtc.gni") | 
 |  | 
 | group("pc") { | 
 |   deps = [ | 
 |     ":rtc_pc", | 
 |   ] | 
 | } | 
 |  | 
 | config("rtc_pc_config") { | 
 |   defines = [ | 
 |     "SRTP_RELATIVE_PATH", | 
 |     "HAVE_SCTP", | 
 |     "HAVE_SRTP", | 
 |   ] | 
 | } | 
 |  | 
 | rtc_source_set("rtc_pc") { | 
 |   defines = [] | 
 |   sources = [ | 
 |     "audiomonitor.cc", | 
 |     "audiomonitor.h", | 
 |     "bundlefilter.cc", | 
 |     "bundlefilter.h", | 
 |     "channel.cc", | 
 |     "channel.h", | 
 |     "channelmanager.cc", | 
 |     "channelmanager.h", | 
 |     "currentspeakermonitor.cc", | 
 |     "currentspeakermonitor.h", | 
 |     "mediamonitor.cc", | 
 |     "mediamonitor.h", | 
 |     "mediasession.cc", | 
 |     "mediasession.h", | 
 |     "mediasink.h", | 
 |     "rtcpmuxfilter.cc", | 
 |     "rtcpmuxfilter.h", | 
 |     "srtpfilter.cc", | 
 |     "srtpfilter.h", | 
 |     "voicechannel.h", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "../api:call_api", | 
 |     "../base:rtc_base", | 
 |     "../media", | 
 |   ] | 
 |  | 
 |   if (build_with_chromium) { | 
 |     sources += [ | 
 |       "externalhmac.cc", | 
 |       "externalhmac.h", | 
 |     ] | 
 |   } | 
 |   if (rtc_build_libsrtp) { | 
 |     deps += [ "//third_party/libsrtp" ] | 
 |   } | 
 |  | 
 |   public_configs = [ ":rtc_pc_config" ] | 
 |  | 
 |   if (is_clang) { | 
 |     # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
 |     suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
 |   } | 
 | } | 
 |  | 
 | if (rtc_include_tests) { | 
 |   config("rtc_pc_unittests_config") { | 
 |     # GN orders flags on a target before flags from configs. The default config | 
 |     # adds -Wall, and this flag have to be after -Wall -- so they need to | 
 |     # come from a config and can't be on the target directly. | 
 |     if (!is_win && !is_clang) { | 
 |       cflags = [ "-Wno-maybe-uninitialized" ]  # Only exists for GCC. | 
 |     } | 
 |   } | 
 |  | 
 |   rtc_test("rtc_pc_unittests") { | 
 |     testonly = true | 
 |  | 
 |     sources = [ | 
 |       "bundlefilter_unittest.cc", | 
 |       "channel_unittest.cc", | 
 |       "channelmanager_unittest.cc", | 
 |       "currentspeakermonitor_unittest.cc", | 
 |       "mediasession_unittest.cc", | 
 |       "rtcpmuxfilter_unittest.cc", | 
 |       "srtpfilter_unittest.cc", | 
 |     ] | 
 |  | 
 |     include_dirs = [ "//third_party/libsrtp/srtp" ] | 
 |  | 
 |     configs += [ ":rtc_pc_unittests_config" ] | 
 |  | 
 |     if (is_clang) { | 
 |       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
 |       suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
 |     } | 
 |  | 
 |     if (is_win) { | 
 |       libs = [ "strmiids.lib" ] | 
 |     } | 
 |  | 
 |     deps = [ | 
 |       ":rtc_pc", | 
 |       "../api:libjingle_peerconnection", | 
 |       "../base:rtc_base_tests_utils", | 
 |       "../media:rtc_unittest_main", | 
 |       "../system_wrappers:metrics_default", | 
 |     ] | 
 |  | 
 |     if (rtc_build_libsrtp) { | 
 |       deps += [ "//third_party/libsrtp" ] | 
 |     } | 
 |  | 
 |     if (is_android) { | 
 |       deps += [ "//testing/android/native_test:native_test_support" ] | 
 |     } | 
 |   } | 
 | } |