| # Copyright (c) 2015 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") |
| import("//testing/test.gni") |
| |
| group("api") { |
| deps = [ |
| ":libjingle_peerconnection", |
| ] |
| } |
| |
| config("libjingle_peerconnection_warnings_config") { |
| # GN orders flags on a target before flags from configs. The default config |
| # adds these flags so to cancel them out they need to come from a config and |
| # cannot be on the target directly. |
| if (!is_win && !is_clang) { |
| cflags = [ "-Wno-maybe-uninitialized" ] # Only exists for GCC. |
| } |
| } |
| |
| source_set("libjingle_peerconnection") { |
| cflags = [] |
| sources = [ |
| "audiotrack.cc", |
| "audiotrack.h", |
| "datachannel.cc", |
| "datachannel.h", |
| "datachannelinterface.h", |
| "dtlsidentitystore.h", |
| "dtmfsender.cc", |
| "dtmfsender.h", |
| "dtmfsenderinterface.h", |
| "jsep.h", |
| "jsepicecandidate.cc", |
| "jsepicecandidate.h", |
| "jsepsessiondescription.cc", |
| "jsepsessiondescription.h", |
| "localaudiosource.cc", |
| "localaudiosource.h", |
| "mediaconstraintsinterface.cc", |
| "mediaconstraintsinterface.h", |
| "mediacontroller.cc", |
| "mediacontroller.h", |
| "mediastream.cc", |
| "mediastream.h", |
| "mediastreaminterface.h", |
| "mediastreamobserver.cc", |
| "mediastreamobserver.h", |
| "mediastreamprovider.h", |
| "mediastreamproxy.h", |
| "mediastreamtrack.h", |
| "mediastreamtrackproxy.h", |
| "notifier.h", |
| "peerconnection.cc", |
| "peerconnection.h", |
| "peerconnectionfactory.cc", |
| "peerconnectionfactory.h", |
| "peerconnectionfactoryproxy.h", |
| "peerconnectioninterface.h", |
| "peerconnectionproxy.h", |
| "proxy.h", |
| "remoteaudiosource.cc", |
| "remoteaudiosource.h", |
| "rtpparameters.h", |
| "rtpreceiver.cc", |
| "rtpreceiver.h", |
| "rtpreceiverinterface.h", |
| "rtpsender.cc", |
| "rtpsender.h", |
| "rtpsenderinterface.h", |
| "sctputils.cc", |
| "sctputils.h", |
| "statscollector.cc", |
| "statscollector.h", |
| "statstypes.cc", |
| "statstypes.h", |
| "streamcollection.h", |
| "videocapturertracksource.cc", |
| "videocapturertracksource.h", |
| "videosourceproxy.h", |
| "videotrack.cc", |
| "videotrack.h", |
| "videotracksource.cc", |
| "videotracksource.h", |
| "webrtcsdp.cc", |
| "webrtcsdp.h", |
| "webrtcsession.cc", |
| "webrtcsession.h", |
| "webrtcsessiondescriptionfactory.cc", |
| "webrtcsessiondescriptionfactory.h", |
| ] |
| |
| configs += [ |
| "..:common_config", |
| ":libjingle_peerconnection_warnings_config", |
| ] |
| public_configs = [ "..:common_inherited_config" ] |
| |
| if (is_clang) { |
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
| configs -= [ "//build/config/clang:find_bad_constructs" ] |
| } |
| |
| deps = [ |
| "../call", |
| "../media", |
| "../pc", |
| ] |
| |
| if (rtc_use_quic) { |
| sources += [ |
| "quicdatachannel.cc", |
| "quicdatachannel.h", |
| "quicdatatransport.cc", |
| "quicdatatransport.h", |
| ] |
| deps += [ "//third_party/libquic" ] |
| public_deps = [ |
| "//third_party/libquic", |
| ] |
| } |
| } |
| |
| # Exclude the targets below from the Chromium build since they cannot be built |
| # due to incompability with Chromium's logging implementation. |
| if (is_android && !build_with_chromium) { |
| config("libjingle_peerconnection_jni_warnings_config") { |
| # The warnings below are enabled by default. Since GN orders compiler flags |
| # for a target before flags from configs, the only way to disable such |
| # warnings is by having them in a separate config, loaded from the target. |
| if (!is_win) { |
| cflags = [ |
| "-Wno-sign-compare", |
| "-Wno-unused-variable", |
| ] |
| } |
| } |
| |
| source_set("libjingle_peerconnection_jni") { |
| sources = [ |
| "androidvideocapturer.cc", |
| "androidvideocapturer.h", |
| "java/jni/androidmediacodeccommon.h", |
| "java/jni/androidmediadecoder_jni.cc", |
| "java/jni/androidmediadecoder_jni.h", |
| "java/jni/androidmediaencoder_jni.cc", |
| "java/jni/androidmediaencoder_jni.h", |
| "java/jni/androidmetrics_jni.cc", |
| "java/jni/androidnetworkmonitor_jni.cc", |
| "java/jni/androidnetworkmonitor_jni.h", |
| "java/jni/androidvideocapturer_jni.cc", |
| "java/jni/androidvideocapturer_jni.h", |
| "java/jni/classreferenceholder.cc", |
| "java/jni/classreferenceholder.h", |
| "java/jni/jni_helpers.cc", |
| "java/jni/jni_helpers.h", |
| "java/jni/native_handle_impl.cc", |
| "java/jni/native_handle_impl.h", |
| "java/jni/peerconnection_jni.cc", |
| "java/jni/surfacetexturehelper_jni.cc", |
| "java/jni/surfacetexturehelper_jni.h", |
| ] |
| |
| configs += [ |
| "..:common_config", |
| ":libjingle_peerconnection_jni_warnings_config", |
| ] |
| public_configs = [ "..:common_inherited_config" ] |
| |
| if (is_clang) { |
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
| configs -= [ |
| "//build/config/clang:extra_warnings", |
| "//build/config/clang:find_bad_constructs", |
| ] |
| } |
| |
| # TODO(jschuh): Bug 1348: fix this warning. |
| configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
| |
| if (is_win) { |
| cflags += [ |
| "/wd4245", # conversion from "int" to "size_t", signed/unsigned mismatch. |
| "/wd4389", # signed/unsigned mismatch. |
| ] |
| } |
| |
| deps = [ |
| ":libjingle_peerconnection", |
| "../system_wrappers:field_trial_default", |
| "../system_wrappers:metrics_default", |
| ] |
| |
| if (rtc_build_libyuv) { |
| deps += [ "$rtc_libyuv_dir" ] |
| public_deps = [ |
| "$rtc_libyuv_dir", |
| ] |
| } else { |
| # Need to add a directory normally exported by libyuv. |
| include_dirs += [ "$rtc_libyuv_dir/include" ] |
| } |
| } |
| } |
| |
| if (rtc_include_tests) { |
| config("peerconnection_unittests_config") { |
| # The warnings below are enabled by default. Since GN orders compiler flags |
| # for a target before flags from configs, the only way to disable such |
| # warnings is by having them in a separate config, loaded from the target. |
| # TODO(kjellander): Make the code compile without disabling these flags. |
| # See https://bugs.webrtc.org/3307. |
| if (is_clang && is_win) { |
| cflags = [ "-Wno-unused-function" ] |
| } |
| |
| if (!is_win) { |
| cflags = [ "-Wno-sign-compare" ] |
| cflags_cc = [ "-Wno-overloaded-virtual" ] |
| } |
| } |
| |
| test("peerconnection_unittests") { |
| testonly = true |
| sources = [ |
| "datachannel_unittest.cc", |
| "dtmfsender_unittest.cc", |
| "fakemetricsobserver.cc", |
| "fakemetricsobserver.h", |
| "jsepsessiondescription_unittest.cc", |
| "localaudiosource_unittest.cc", |
| "mediaconstraintsinterface_unittest.cc", |
| "mediastream_unittest.cc", |
| "peerconnection_unittest.cc", |
| "peerconnectionendtoend_unittest.cc", |
| "peerconnectionfactory_unittest.cc", |
| "peerconnectioninterface_unittest.cc", |
| "proxy_unittest.cc", |
| "rtpsenderreceiver_unittest.cc", |
| "statscollector_unittest.cc", |
| "test/fakeaudiocapturemodule.cc", |
| "test/fakeaudiocapturemodule.h", |
| "test/fakeaudiocapturemodule_unittest.cc", |
| "test/fakeconstraints.h", |
| "test/fakedatachannelprovider.h", |
| "test/fakeperiodicvideocapturer.h", |
| "test/fakertccertificategenerator.h", |
| "test/fakevideotrackrenderer.h", |
| "test/mockpeerconnectionobservers.h", |
| "test/peerconnectiontestwrapper.cc", |
| "test/peerconnectiontestwrapper.h", |
| "test/testsdpstrings.h", |
| "videocapturertracksource_unittest.cc", |
| "videotrack_unittest.cc", |
| "webrtcsdp_unittest.cc", |
| "webrtcsession_unittest.cc", |
| ] |
| |
| defines = [ "HAVE_SCTP" ] |
| |
| configs += [ |
| "..:common_config", |
| ":peerconnection_unittests_config", |
| ] |
| public_configs = [ "..:common_inherited_config" ] |
| |
| if (is_clang) { |
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
| configs -= [ "//build/config/clang:find_bad_constructs" ] |
| } |
| |
| # TODO(jschuh): Bug 1348: fix this warning. |
| configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
| |
| if (is_win) { |
| cflags = [ |
| "/wd4245", # conversion from int to size_t, signed/unsigned mismatch. |
| "/wd4389", # signed/unsigned mismatch. |
| ] |
| } |
| |
| if (rtc_use_quic) { |
| public_deps = [ |
| "//third_party/libquic", |
| ] |
| sources += [ |
| "quicdatachannel_unittest.cc", |
| "quicdatatransport_unittest.cc", |
| ] |
| } |
| |
| deps = [] |
| if (is_android) { |
| sources += [ |
| "test/androidtestinitializer.cc", |
| "test/androidtestinitializer.h", |
| ] |
| deps += [ |
| ":libjingle_peerconnection_jni", |
| "//testing/android/native_test:native_test_support", |
| ] |
| } |
| |
| deps += [ |
| ":libjingle_peerconnection", |
| "..:webrtc_common", |
| "../base:rtc_base_tests_utils", |
| "../media:rtc_unittest_main", |
| "../pc:rtc_pc", |
| "../system_wrappers:metrics_default", |
| "//testing/gmock", |
| ] |
| |
| if (is_android) { |
| deps += [ "//testing/android/native_test:native_test_support" ] |
| } |
| } |
| } |