Stop using public_deps to depend on libyuv.

A lot of WebRTC targets were depending on //third_party/libyuv using
public_deps instead of deps. This causes issues because a the
inclusion of libyuv headers is not declared to the build system and
this creates hidden dependencies that put the modularity of the project
at risk.

Bug: webrtc:8603
Change-Id: Ide0ceb84eb5640ae664dc782f3a722b55c3b601a
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/28120
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21039}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 27673142..8e8b44e 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -225,18 +225,6 @@
   deps = [
     "../rtc_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" ]
-  }
 }
 
 rtc_source_set("video_frame_api_i420") {
@@ -246,6 +234,7 @@
   ]
   deps = [
     ":video_frame_api",
+    "$rtc_libyuv_dir",
     "../rtc_base:rtc_base_approved",
     "../system_wrappers",
   ]
diff --git a/common_video/BUILD.gn b/common_video/BUILD.gn
index c4b810e..6c14100 100644
--- a/common_video/BUILD.gn
+++ b/common_video/BUILD.gn
@@ -9,10 +9,7 @@
 import("../webrtc.gni")
 
 config("common_video_config") {
-  include_dirs = [
-    "include",
-    "$rtc_libyuv_dir/include",
-  ]
+  include_dirs = [ "include" ]
 }
 
 rtc_static_library("common_video") {
@@ -63,6 +60,7 @@
   }
 
   deps = [
+    "$rtc_libyuv_dir",
     "..:webrtc_common",
     "../api:optional",
     "../api:video_frame_api_i420",
@@ -75,14 +73,6 @@
   public_deps = [
     "../api:video_frame_api",
   ]
-
-  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) {
@@ -123,6 +113,7 @@
 
     deps = [
       ":common_video",
+      "$rtc_libyuv_dir",
       "../api:video_frame_api_i420",
       "../modules/video_capture:video_capture",
       "../rtc_base:rtc_base",
diff --git a/media/BUILD.gn b/media/BUILD.gn
index e24c8cf..b78f55d 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -98,16 +98,8 @@
     suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
   }
 
-  include_dirs = []
-  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" ]
-  }
-
   deps += [
+    "$rtc_libyuv_dir",
     "..:webrtc_common",
     "../api:libjingle_peerconnection_api",
     "../api:optional",
@@ -213,15 +205,6 @@
   }
 
   include_dirs = []
-  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" ]
-  }
 
   public_configs = []
   if (build_with_chromium) {
@@ -237,6 +220,7 @@
   }
   deps += [
     ":rtc_media_base",
+    "$rtc_libyuv_dir",
     "..:webrtc_common",
     "../api:call_api",
     "../api:libjingle_peerconnection_api",
@@ -370,14 +354,6 @@
 
     configs += [ ":rtc_unittest_main_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 (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
       suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
@@ -386,6 +362,7 @@
     deps += [
       ":rtc_media",
       ":rtc_media_base",
+      "$rtc_libyuv_dir",
       "..:webrtc_common",
       "../api:call_api",
       "../api:video_frame_api",
diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn
index 9a44967..ca945e2 100644
--- a/modules/video_capture/BUILD.gn
+++ b/modules/video_capture/BUILD.gn
@@ -26,6 +26,7 @@
   ]
 
   deps = [
+    "$rtc_libyuv_dir",
     "..:module_api",
     "../..:webrtc_common",
     "../../api:video_frame_api_i420",
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index c2b9cce..3e3cedc 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -232,6 +232,7 @@
 
   deps = [
     ":video_coding_utility",
+    "$rtc_libyuv_dir",
     "../..:webrtc_common",
     "../../api:video_frame_api_i420",
     "../../common_video:common_video",
@@ -291,6 +292,7 @@
 
   deps = [
     ":video_coding_utility",
+    "$rtc_libyuv_dir",
     "..:module_api",
     "../..:webrtc_common",
     "../../api:optional",
diff --git a/modules/video_processing/BUILD.gn b/modules/video_processing/BUILD.gn
index fb4888b..9c0afbd 100644
--- a/modules/video_processing/BUILD.gn
+++ b/modules/video_processing/BUILD.gn
@@ -26,6 +26,7 @@
 
   deps = [
     ":denoiser_filter",
+    "$rtc_libyuv_dir",
     "..:module_api",
     "../../common_audio",
     "../../common_video",
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 1ed3756..595cc31 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -63,9 +63,8 @@
     "frame_analyzer/video_quality_analysis.cc",
     "frame_analyzer/video_quality_analysis.h",
   ]
-
-  public_deps = [
-    "../common_video",
+  deps = [
+    "$rtc_libyuv_dir",
   ]
 }
 
@@ -77,6 +76,7 @@
   deps = [
     ":command_line_parser",
     ":video_quality_analysis",
+    "$rtc_libyuv_dir",
     "//build/win:default_exe_manifest",
   ]
 }
@@ -92,6 +92,7 @@
     deps = [
       ":command_line_parser",
       ":video_quality_analysis",
+      "$rtc_libyuv_dir",
       "//build/win:default_exe_manifest",
     ]
   }
@@ -104,6 +105,7 @@
 
     deps = [
       ":video_quality_analysis",
+      "$rtc_libyuv_dir",
     ]
   }
 
@@ -128,6 +130,7 @@
 
     deps = [
       ":command_line_parser",
+      "$rtc_libyuv_dir",
       "../common_video",
       "//build/win:default_exe_manifest",
     ]
@@ -322,6 +325,8 @@
       ":frame_editing_lib",
       ":reference_less_video_analysis_lib",
       ":video_quality_analysis",
+      "$rtc_libyuv_dir",
+      "../common_video:common_video",
       "../rtc_base",
       "../test:test_main",
       "//testing/gtest",
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 35ac38b..0b0a56f 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -132,6 +132,7 @@
 
       deps = [
         ":common_objc",
+        "$rtc_libyuv_dir",
         "../api:libjingle_peerconnection_api",
         "../api:video_frame_api",
         "../api:video_frame_api_i420",
@@ -299,6 +300,7 @@
         ":corevideoframebuffer_objc",
         ":peerconnectionfactory_objc",
         ":video_objc",
+        "$rtc_libyuv_dir",
         "../api:video_frame_api",
         "../media:rtc_media_base",
         "../pc:libjingle_peerconnection",
@@ -308,13 +310,6 @@
       if (rtc_use_metal_rendering) {
         deps += [ ":metal_objc" ]
       }
-
-      if (rtc_build_libyuv) {
-        deps += [ "$rtc_libyuv_dir" ]
-        public_deps = [
-          "$rtc_libyuv_dir",
-        ]
-      }
     }
 
     rtc_static_library("peerconnectionfactory_objc") {
@@ -770,6 +765,7 @@
       ]
 
       deps = [
+        "$rtc_libyuv_dir",
         "../api:video_frame_api_i420",
         "../common_video",
         "../rtc_base:rtc_base_approved",
@@ -823,6 +819,7 @@
         ":video_objc",
         ":video_toolbox_cc",
         ":videotracksource_objc",
+        "$rtc_libyuv_dir",
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../media:rtc_media",
@@ -846,16 +843,6 @@
         # (bugs.webrtc.org/163).
         suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
       }
-
-      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" ]
-      }
     }
   }
 }
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index cfaf0a4..5d5c330 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -205,6 +205,7 @@
     ":base_jni",
     ":generated_video_jni",
     ":peerconnection_jni",
+    "$rtc_libyuv_dir",
     "../..:webrtc_common",
     "../../api:libjingle_peerconnection_api",
     "../../api:video_frame_api",
@@ -225,16 +226,6 @@
     "../../rtc_base:weak_ptr",
     "../../system_wrappers:system_wrappers",
   ]
-
-  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" ]
-  }
 }
 
 rtc_static_library("null_video_jni") {
diff --git a/test/BUILD.gn b/test/BUILD.gn
index c9f8cfc..e54228d 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -211,6 +211,7 @@
     deps = [
       ":test_support",
       ":video_test_common",
+      "$rtc_libyuv_dir",
       "..:webrtc_common",
       "../api:video_frame_api",
       "../api:video_frame_api_i420",