Index: webrtc/pc/BUILD.gn |
diff --git a/webrtc/pc/BUILD.gn b/webrtc/pc/BUILD.gn |
index f2bdbc3568ad800af5af95a296a6613bf6ff7800..5c4d87c677ee08fb48ffce2415f5f77160f8943c 100644 |
--- a/webrtc/pc/BUILD.gn |
+++ b/webrtc/pc/BUILD.gn |
@@ -7,6 +7,10 @@ |
# 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("pc") { |
public_deps = [ |
@@ -69,6 +73,100 @@ rtc_static_library("rtc_pc") { |
} |
} |
+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", |
+ "dtmfsender.cc", |
+ "dtmfsender.h", |
+ "jsepicecandidate.cc", |
+ "jsepsessiondescription.cc", |
+ "localaudiosource.cc", |
+ "localaudiosource.h", |
+ "mediacontroller.cc", |
+ "mediacontroller.h", |
+ "mediastream.cc", |
+ "mediastream.h", |
+ "mediastreamobserver.cc", |
+ "mediastreamobserver.h", |
+ "mediastreamtrack.h", |
+ "ortcfactory.cc", |
+ "ortcfactory.h", |
+ "peerconnection.cc", |
+ "peerconnection.h", |
+ "peerconnectionfactory.cc", |
+ "peerconnectionfactory.h", |
+ "remoteaudiosource.cc", |
+ "remoteaudiosource.h", |
+ "rtcstatscollector.cc", |
+ "rtcstatscollector.h", |
+ "rtpreceiver.cc", |
+ "rtpreceiver.h", |
+ "rtpsender.cc", |
+ "rtpsender.h", |
+ "sctputils.cc", |
+ "sctputils.h", |
+ "statscollector.cc", |
+ "statscollector.h", |
+ "streamcollection.h", |
+ "videocapturertracksource.cc", |
+ "videocapturertracksource.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 = [ |
+ ":rtc_pc", |
+ "../api:call_api", |
+ "../api:libjingle_peerconnection_api", |
+ "../api:rtc_stats_api", |
+ "../call", |
+ "../media", |
+ "../stats", |
+ ] |
+ |
+ if (rtc_use_quic) { |
+ sources += [ |
+ "quicdatachannel.cc", |
+ "quicdatachannel.h", |
+ "quicdatatransport.cc", |
+ "quicdatatransport.h", |
+ ] |
+ deps += [ "//third_party/libquic" ] |
+ public_deps = [ |
+ "//third_party/libquic", |
+ ] |
+ } |
+} |
+ |
if (rtc_include_tests) { |
config("rtc_pc_unittests_config") { |
# GN orders flags on a target before flags from configs. The default config |
@@ -106,8 +204,8 @@ if (rtc_include_tests) { |
} |
deps = [ |
+ ":libjingle_peerconnection", |
":rtc_pc", |
- "../api:libjingle_peerconnection", |
"../base:rtc_base_tests_utils", |
"../media:rtc_unittest_main", |
"../system_wrappers:metrics_default", |
@@ -121,4 +219,130 @@ if (rtc_include_tests) { |
deps += [ "//testing/android/native_test:native_test_support" ] |
} |
} |
+ |
+ 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", |
+ "fakemediacontroller.h", |
+ "jsepsessiondescription_unittest.cc", |
+ "localaudiosource_unittest.cc", |
+ "mediaconstraintsinterface_unittest.cc", |
+ "mediastream_unittest.cc", |
+ "ortcfactory_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/fakedatachannelprovider.h", |
+ "test/fakeperiodicvideocapturer.h", |
+ "test/fakertccertificategenerator.h", |
+ "test/fakevideotrackrenderer.h", |
+ "test/fakevideotracksource.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 += [ |
+ ":libjingle_peerconnection", |
+ "..:webrtc_common", |
+ "../api:fakemetricsobserver", |
+ "../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 |
+ } |
+ } |
} |