Index: webrtc/api/BUILD.gn |
diff --git a/webrtc/api/BUILD.gn b/webrtc/api/BUILD.gn |
index ecef934a3e610e6b3db3071ae165bdfc149b08d3..cb3066eae69a3b0a580e4658a14b6cf76044d799 100644 |
--- a/webrtc/api/BUILD.gn |
+++ b/webrtc/api/BUILD.gn |
@@ -7,6 +7,7 @@ |
# be found in the AUTHORS file in the root of the source tree. |
import("../build/webrtc.gni") |
+import("//testing/test.gni") |
group("api") { |
deps = [ |
@@ -105,9 +106,7 @@ source_set("libjingle_peerconnection") { |
public_configs = [ "..:common_inherited_config" ] |
if (is_clang) { |
- # Suppress warnings from Chrome's Clang plugins. |
- # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. |
- configs -= [ "//build/config/clang:extra_warnings" ] |
+ # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
configs -= [ "//build/config/clang:find_bad_constructs" ] |
} |
@@ -134,3 +133,197 @@ source_set("libjingle_peerconnection") { |
] |
} |
} |
+ |
+if (is_android) { |
+ 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" ] |
+ } |
+ } |
+} |