Using all_dependent_configs to pass libyuv_config around.

Using public_configs, client projects must rely on public_deps to
propagate configurations up in the build graph. This is bad because
public_deps allows the exposition of headers that live in another
target. This can lead to a really unhealthy build.

On the other side, all_dependent_configs is automatically propagated
up in the build graph but if a target includes a libyuv header it is
forced by GN to declare the dependency (and this will propagate
libyuv_config).

Bug: webrtc:8605, webrtc:8603
Change-Id: I4d71bb5de0b5b62a4ec110349223614f0b98e655
No-Try: True
Reviewed-on: https://chromium-review.googlesource.com/822112
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
This commit is contained in:
Mirko Bonadei 2017-12-12 10:54:58 +01:00 committed by Commit Bot
parent 11dd1b956f
commit d94a4867bf

View File

@ -42,7 +42,7 @@ group("default") {
} }
group("libyuv") { group("libyuv") {
public_configs = [ ":libyuv_config" ] all_dependent_configs = [ ":libyuv_config" ]
if (is_win && target_cpu == "x64") { if (is_win && target_cpu == "x64") {
# Compile with clang in order to get inline assembly # Compile with clang in order to get inline assembly
@ -152,6 +152,7 @@ static_library("libyuv_internal") {
# crbug.com/538243). # crbug.com/538243).
if (!is_debug || is_nacl) { if (!is_debug || is_nacl) {
configs -= [ "//build/config/compiler:default_optimization" ] configs -= [ "//build/config/compiler:default_optimization" ]
# Enable optimize for speed (-O2) over size (-Os). # Enable optimize for speed (-O2) over size (-Os).
configs += [ "//build/config/compiler:optimize_max" ] configs += [ "//build/config/compiler:optimize_max" ]
} }