
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}
113 lines
3.2 KiB
Plaintext
113 lines
3.2 KiB
Plaintext
# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
import("../../webrtc.gni")
|
|
|
|
rtc_library("task_queue") {
|
|
visibility = [ "*" ]
|
|
public = [
|
|
"queued_task.h",
|
|
"task_queue_base.h",
|
|
"task_queue_factory.h",
|
|
]
|
|
sources = [
|
|
"task_queue_base.cc",
|
|
]
|
|
|
|
deps = [
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:macromagic",
|
|
"../../rtc_base/system:rtc_export",
|
|
"//third_party/abseil-cpp/absl/base:config",
|
|
"//third_party/abseil-cpp/absl/base:core_headers",
|
|
"//third_party/abseil-cpp/absl/strings",
|
|
]
|
|
}
|
|
|
|
rtc_library("task_queue_test") {
|
|
visibility = [ "*" ]
|
|
testonly = true
|
|
sources = [
|
|
"task_queue_test.cc",
|
|
"task_queue_test.h",
|
|
]
|
|
|
|
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 = [
|
|
"../../../webrtc_overrides:webrtc_component",
|
|
"../../test:test_support",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/strings",
|
|
]
|
|
} else {
|
|
deps = [
|
|
":task_queue",
|
|
"../../rtc_base:refcount",
|
|
"../../rtc_base:rtc_event",
|
|
"../../rtc_base:timeutils",
|
|
"../../rtc_base/task_utils:to_queued_task",
|
|
"../../test:test_support",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
"//third_party/abseil-cpp/absl/strings",
|
|
]
|
|
}
|
|
}
|
|
|
|
rtc_library("default_task_queue_factory") {
|
|
visibility = [ "*" ]
|
|
if (!is_ios && !is_android) {
|
|
poisonous = [ "default_task_queue" ]
|
|
}
|
|
sources = [
|
|
"default_task_queue_factory.h",
|
|
]
|
|
deps = [
|
|
":task_queue",
|
|
]
|
|
|
|
if (rtc_enable_libevent) {
|
|
sources += [ "default_task_queue_factory_libevent.cc" ]
|
|
deps += [ "../../rtc_base:rtc_task_queue_libevent" ]
|
|
} else if (is_mac || is_ios) {
|
|
sources += [ "default_task_queue_factory_gcd.cc" ]
|
|
deps += [ "../../rtc_base:rtc_task_queue_gcd" ]
|
|
} else if (is_win && current_os != "winuwp") {
|
|
sources += [ "default_task_queue_factory_win.cc" ]
|
|
deps += [ "../../rtc_base:rtc_task_queue_win" ]
|
|
} else {
|
|
sources += [ "default_task_queue_factory_stdlib.cc" ]
|
|
deps += [ "../../rtc_base:rtc_task_queue_stdlib" ]
|
|
}
|
|
}
|
|
|
|
if (rtc_include_tests) {
|
|
rtc_library("task_queue_default_factory_unittests") {
|
|
testonly = true
|
|
sources = [
|
|
"default_task_queue_factory_unittest.cc",
|
|
]
|
|
deps = [
|
|
":default_task_queue_factory",
|
|
":task_queue_test",
|
|
"../../test:test_support",
|
|
]
|
|
}
|
|
}
|