325 lines
9.1 KiB
Plaintext
325 lines
9.1 KiB
Plaintext
|
# 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" ]
|
||
|
}
|
||
|
}
|
||
|
}
|