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",