Force Chromium deps on the WebRTC component.
This CL adds a visibility check to the rtc_* GN templates in order to force Chromium to depend only on publicly visible targets from //third_party/webrtc_overrides and not from //third_party/webrtc. This is required in order to ensure that the Chromium's component builds continues to work correctly without introducing direct dependency paths on WebRTC that would statically link it in multiple shared libraries. Bug: webrtc:9419 Change-Id: Ib89f4fc571512f99678ee4f61696b316374346d9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154344 Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29806}
This commit is contained in:

committed by
Commit Bot

parent
bb55c5e2ec
commit
53e157d25c
@ -39,6 +39,15 @@ rtc_library("task_queue_test") {
|
||||
|
||||
check_includes = false # no-presubmit-check TODO(bugs.webrtc.org/9419)
|
||||
if (build_with_chromium) {
|
||||
visibility = []
|
||||
visibility = webrtc_default_visibility
|
||||
visibility += [
|
||||
# This is the only Chromium target that can depend on this. The reason
|
||||
# behind this is the fact that this is a 'testonly' target and as such
|
||||
# it cannot be part of the WebRTC component.
|
||||
"//third_party/blink/renderer/platform:blink_platform_unittests_sources",
|
||||
]
|
||||
|
||||
# Don't depend on WebRTC code outside of webrtc_overrides:webrtc_component
|
||||
# because this will break the WebRTC component build in Chromium.
|
||||
deps = [
|
||||
|
30
webrtc.gni
30
webrtc.gni
@ -471,6 +471,21 @@ template("rtc_source_set") {
|
||||
}
|
||||
}
|
||||
|
||||
# Chromium should only depend on the WebRTC component in order to
|
||||
# avoid to statically link WebRTC in a component build.
|
||||
if (build_with_chromium) {
|
||||
publicly_visible = false
|
||||
foreach(v, visibility) {
|
||||
if (v == "*") {
|
||||
publicly_visible = true
|
||||
}
|
||||
}
|
||||
if (publicly_visible) {
|
||||
visibility = []
|
||||
visibility = webrtc_default_visibility
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined(testonly) || !testonly) {
|
||||
configs += rtc_prod_configs
|
||||
}
|
||||
@ -643,6 +658,21 @@ template("rtc_library") {
|
||||
}
|
||||
}
|
||||
|
||||
# Chromium should only depend on the WebRTC component in order to
|
||||
# avoid to statically link WebRTC in a component build.
|
||||
if (build_with_chromium) {
|
||||
publicly_visible = false
|
||||
foreach(v, visibility) {
|
||||
if (v == "*") {
|
||||
publicly_visible = true
|
||||
}
|
||||
}
|
||||
if (publicly_visible) {
|
||||
visibility = []
|
||||
visibility = webrtc_default_visibility
|
||||
}
|
||||
}
|
||||
|
||||
if (!defined(testonly) || !testonly) {
|
||||
configs += rtc_prod_configs
|
||||
}
|
||||
|
Reference in New Issue
Block a user