| # 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") |
| if (is_android) { |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| } |
| |
| group("api") { |
| public_deps = [ |
| ":libjingle_peerconnection", |
| ] |
| } |
| |
| rtc_source_set("call_api") { |
| sources = [ |
| "call/audio_sink.h", |
| ] |
| |
| deps = [ |
| # TODO(kjellander): Add remaining dependencies when webrtc:4243 is done. |
| ":audio_mixer_api", |
| ":transport_api", |
| "..:webrtc_common", |
| "../base:rtc_base_approved", |
| "../modules/audio_coding:audio_decoder_factory_interface", |
| "../modules/audio_coding:audio_encoder_interface", |
| ] |
| } |
| |
| 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. |
| } |
| } |
| |
| rtc_static_library("libjingle_peerconnection") { |
| check_includes = false # TODO(kjellander): Remove (bugs.webrtc.org/6828) |
| cflags = [] |
| sources = [ |
| "audiotrack.cc", |
| "audiotrack.h", |
| "datachannel.cc", |
| "datachannel.h", |
| "datachannelinterface.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", |
| "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", |
| "rtcstatscollector.cc", |
| "rtcstatscollector.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 += [ ":libjingle_peerconnection_warnings_config" ] |
| |
| 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" ] |
| } |
| |
| deps = [ |
| ":call_api", |
| ":rtc_stats_api", |
| "../call", |
| "../media", |
| "../pc", |
| "../stats", |
| ] |
| |
| if (rtc_use_quic) { |
| sources += [ |
| "quicdatachannel.cc", |
| "quicdatachannel.h", |
| "quicdatatransport.cc", |
| "quicdatatransport.h", |
| ] |
| deps += [ "//third_party/libquic" ] |
| public_deps = [ |
| "//third_party/libquic", |
| ] |
| } |
| } |
| |
| rtc_source_set("rtc_stats_api") { |
| cflags = [] |
| sources = [ |
| "stats/rtcstats.h", |
| "stats/rtcstats_objects.h", |
| "stats/rtcstatsreport.h", |
| ] |
| |
| deps = [ |
| "../base:rtc_base_approved", |
| ] |
| } |
| |
| rtc_source_set("audio_mixer_api") { |
| sources = [ |
| "audio/audio_mixer.h", |
| ] |
| |
| deps = [ |
| "../base:rtc_base_approved", |
| ] |
| } |
| |
| rtc_source_set("transport_api") { |
| sources = [ |
| "call/transport.h", |
| ] |
| } |
| |
| rtc_source_set("video_frame_api") { |
| sources = [ |
| "video/video_rotation.h", |
| ] |
| |
| deps = [ |
| "../base:rtc_base_approved", |
| ] |
| |
| # TODO(nisse): This logic is duplicated in multiple places. |
| # Define in a single place. |
| 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 = [ |
| # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6267 |
| # for -Wno-sign-compare |
| "-Wno-sign-compare", |
| "-Wno-unused-function", |
| ] |
| } |
| |
| if (!is_win) { |
| cflags = [ "-Wno-sign-compare" ] |
| } |
| } |
| |
| rtc_test("peerconnection_unittests") { |
| check_includes = false # TODO(kjellander): Remove (bugs.webrtc.org/6828) |
| testonly = true |
| sources = [ |
| "datachannel_unittest.cc", |
| "dtmfsender_unittest.cc", |
| "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", |
| "rtcstats_integrationtest.cc", |
| "rtcstatscollector_unittest.cc", |
| "rtpsenderreceiver_unittest.cc", |
| "sctputils_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/mock_datachannel.h", |
| "test/mock_peerconnection.h", |
| "test/mock_webrtcsession.h", |
| "test/mockpeerconnectionobservers.h", |
| "test/peerconnectiontestwrapper.cc", |
| "test/peerconnectiontestwrapper.h", |
| "test/rtcstatsobtainer.h", |
| "test/testsdpstrings.h", |
| "videocapturertracksource_unittest.cc", |
| "videotrack_unittest.cc", |
| "webrtcsdp_unittest.cc", |
| "webrtcsession_unittest.cc", |
| ] |
| |
| if (rtc_enable_sctp) { |
| defines = [ "HAVE_SCTP" ] |
| } |
| |
| configs += [ ":peerconnection_unittests_config" ] |
| |
| 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" ] |
| } |
| |
| # 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 += [ |
| "//testing/android/native_test:native_test_support", |
| "//webrtc/sdk/android:libjingle_peerconnection_java", |
| "//webrtc/sdk/android:libjingle_peerconnection_jni", |
| ] |
| } |
| |
| deps += [ |
| ":fakemetricsobserver", |
| ":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" ] |
| |
| shard_timeout = 900 |
| } |
| } |
| |
| rtc_source_set("mock_audio_mixer") { |
| testonly = true |
| sources = [ |
| "test/mock_audio_mixer.h", |
| ] |
| |
| public_deps = [ |
| ":audio_mixer_api", |
| ] |
| |
| deps = [ |
| "//testing/gmock", |
| "//webrtc/test:test_support", |
| ] |
| } |
| |
| rtc_source_set("fakemetricsobserver") { |
| testonly = true |
| sources = [ |
| "fakemetricsobserver.cc", |
| "fakemetricsobserver.h", |
| ] |
| deps = [ |
| ":libjingle_peerconnection", |
| "../base:rtc_base_approved", |
| ] |
| 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" ] |
| } |
| } |
| } |