| Index: webrtc/media/BUILD.gn
 | 
| diff --git a/webrtc/media/BUILD.gn b/webrtc/media/BUILD.gn
 | 
| index c245d6ee3e67a9412e22b756f1e94c0b9cf83a42..b47a18882cd6d0c45e28ade4c4dff92cb343ef12 100644
 | 
| --- a/webrtc/media/BUILD.gn
 | 
| +++ b/webrtc/media/BUILD.gn
 | 
| @@ -8,6 +8,7 @@
 | 
|  
 | 
|  import("//build/config/linux/pkg_config.gni")
 | 
|  import("../build/webrtc.gni")
 | 
| +import("//testing/test.gni")
 | 
|  
 | 
|  group("media") {
 | 
|    deps = [
 | 
| @@ -125,10 +126,11 @@ source_set("rtc_media") {
 | 
|    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" ]
 | 
| -    configs -= [ "//build/config/clang:find_bad_constructs" ]
 | 
| +    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
 | 
| +    configs -= [
 | 
| +      "//build/config/clang:extra_warnings",
 | 
| +      "//build/config/clang:find_bad_constructs",
 | 
| +    ]
 | 
|    }
 | 
|  
 | 
|    if (is_win) {
 | 
| @@ -161,7 +163,6 @@ source_set("rtc_media") {
 | 
|    if (build_with_chromium) {
 | 
|      deps += [ "../modules/video_capture:video_capture" ]
 | 
|    } else {
 | 
| -    configs += [ ":rtc_media_defines_config" ]
 | 
|      public_configs += [ ":rtc_media_defines_config" ]
 | 
|      deps += [ "../modules/video_capture:video_capture_internal_impl" ]
 | 
|    }
 | 
| @@ -197,10 +198,166 @@ source_set("rtc_media") {
 | 
|    deps += [
 | 
|      "..:webrtc_common",
 | 
|      "../base:rtc_base_approved",
 | 
| +    "../call",
 | 
|      "../libjingle/xmllite",
 | 
|      "../libjingle/xmpp",
 | 
| +    "../modules/video_coding",
 | 
|      "../p2p",
 | 
|      "../system_wrappers",
 | 
| +    "../video",
 | 
|      "../voice_engine",
 | 
|    ]
 | 
|  }
 | 
| +
 | 
| +if (rtc_include_tests) {
 | 
| +  config("rtc_unittest_main_config") {
 | 
| +    # GN orders flags on a target before flags from configs. The default config
 | 
| +    # adds -Wall, and this flag have to be after -Wall -- so they need to
 | 
| +    # come from a config and can"t be on the target directly.
 | 
| +    if (is_clang && is_ios) {
 | 
| +      cflags = [ "-Wno-unused-variable" ]
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  source_set("rtc_unittest_main") {
 | 
| +    testonly = true
 | 
| +
 | 
| +    deps = []
 | 
| +    sources = [
 | 
| +      "base/fakemediaengine.h",
 | 
| +      "base/fakenetworkinterface.h",
 | 
| +      "base/fakertp.h",
 | 
| +      "base/fakevideocapturer.h",
 | 
| +      "base/fakevideorenderer.h",
 | 
| +      "base/testutils.cc",
 | 
| +      "base/testutils.h",
 | 
| +      "engine/fakewebrtccall.cc",
 | 
| +      "engine/fakewebrtccall.h",
 | 
| +      "engine/fakewebrtccommon.h",
 | 
| +      "engine/fakewebrtcdeviceinfo.h",
 | 
| +      "engine/fakewebrtcvcmfactory.h",
 | 
| +      "engine/fakewebrtcvideocapturemodule.h",
 | 
| +      "engine/fakewebrtcvideoengine.h",
 | 
| +      "engine/fakewebrtcvoiceengine.h",
 | 
| +    ]
 | 
| +
 | 
| +    configs += [
 | 
| +      "..:common_config",
 | 
| +      ":rtc_unittest_main_config",
 | 
| +    ]
 | 
| +    public_configs = [ "..:common_inherited_config" ]
 | 
| +
 | 
| +    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 (is_clang) {
 | 
| +      # Suppress warnings from the Chromium Clang plugin.
 | 
| +      # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
 | 
| +      configs -= [ "//build/config/clang:find_bad_constructs" ]
 | 
| +    }
 | 
| +
 | 
| +    deps += [
 | 
| +      "../base:rtc_base_tests_utils",
 | 
| +      "//testing/gtest",
 | 
| +    ]
 | 
| +    public_deps += [ "//testing/gmock" ]
 | 
| +  }
 | 
| +
 | 
| +  config("rtc_media_unittests_config") {
 | 
| +    # GN orders flags on a target before flags from configs. The default config
 | 
| +    # adds -Wall, and this flag have to be after -Wall -- so they need to
 | 
| +    # come from a config and can"t be on the target directly.
 | 
| +    # 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("rtc_media_unittests") {
 | 
| +    testonly = true
 | 
| +
 | 
| +    deps = []
 | 
| +    sources = [
 | 
| +      "base/codec_unittest.cc",
 | 
| +      "base/rtpdataengine_unittest.cc",
 | 
| +      "base/rtpdump_unittest.cc",
 | 
| +      "base/rtputils_unittest.cc",
 | 
| +      "base/streamparams_unittest.cc",
 | 
| +      "base/turnutils_unittest.cc",
 | 
| +      "base/videoadapter_unittest.cc",
 | 
| +      "base/videobroadcaster_unittest.cc",
 | 
| +      "base/videocapturer_unittest.cc",
 | 
| +      "base/videocommon_unittest.cc",
 | 
| +      "base/videoengine_unittest.h",
 | 
| +      "base/videoframe_unittest.h",
 | 
| +      "engine/nullwebrtcvideoengine_unittest.cc",
 | 
| +      "engine/simulcast_unittest.cc",
 | 
| +      "engine/webrtcmediaengine_unittest.cc",
 | 
| +      "engine/webrtcvideocapturer_unittest.cc",
 | 
| +      "engine/webrtcvideoengine2_unittest.cc",
 | 
| +      "engine/webrtcvideoframe_unittest.cc",
 | 
| +      "engine/webrtcvideoframefactory_unittest.cc",
 | 
| +      "engine/webrtcvoiceengine_unittest.cc",
 | 
| +      "sctp/sctpdataengine_unittest.cc",
 | 
| +    ]
 | 
| +
 | 
| +    configs += [
 | 
| +      "..:common_config",
 | 
| +      ":rtc_media_unittests_config",
 | 
| +    ]
 | 
| +    public_configs = [ "..:common_inherited_config" ]
 | 
| +
 | 
| +    if (is_win) {
 | 
| +      cflags = [
 | 
| +        "/wd4245",  # conversion from int to size_t, signed/unsigned mismatch.
 | 
| +        "/wd4373",  # virtual function override.
 | 
| +        "/wd4389",  # signed/unsigned mismatch.
 | 
| +      ]
 | 
| +    }
 | 
| +
 | 
| +    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",
 | 
| +      ]
 | 
| +    }
 | 
| +
 | 
| +    if (is_android) {
 | 
| +      deps += [ "//testing/android/native_test:native_test_support" ]
 | 
| +
 | 
| +      # This needs to be kept in sync with the rtc_media_unittests.isolate file.
 | 
| +      # TODO(kjellander); Move this to android_assets targets instead.
 | 
| +      data = [
 | 
| +        "//resources/media/captured-320x240-2s-48.frames",
 | 
| +        "//resources/media/faces.1280x720_P420.yuv",
 | 
| +        "//resources/media/faces_I420.jpg",
 | 
| +        "//resources/media/faces_I422.jpg",
 | 
| +        "//resources/media/faces_I444.jpg",
 | 
| +        "//resources/media/faces_I411.jpg",
 | 
| +        "//resources/media/faces_I400.jpg",
 | 
| +      ]
 | 
| +    }
 | 
| +
 | 
| +    deps += [
 | 
| +      # TODO(kjellander): Move as part of work in bugs.webrtc.org/4243.
 | 
| +      ":rtc_media",
 | 
| +      ":rtc_unittest_main",
 | 
| +      "../audio",
 | 
| +      "../base:rtc_base_tests_utils",
 | 
| +      "../system_wrappers:metrics_default",
 | 
| +    ]
 | 
| +  }
 | 
| +}
 | 
| 
 |