Merge rtc_task_queue(_api|_impl)? build targets into one

Ignore rtc_link_task_queue_impl flag,
instead use build_with_chromium for custom chromium implementation injection

This changes TaskQueue implementation used in webrtc fuzzers in chromium:
from own webrtc implementation to chromium's.

Bug: webrtc:10191
Change-Id: I63be28b680ae8ea8ee1dbf0c699263c392ce29d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125196
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26977}
This commit is contained in:
Danil Chapovalov 2019-03-05 19:58:28 +01:00 committed by Commit Bot
parent 445070818c
commit 07a4f2b267
8 changed files with 32 additions and 88 deletions

View File

@ -59,44 +59,17 @@ rtc_source_set("default_task_queue_factory") {
":task_queue",
]
# TODO(bugs.webrtc.org/10284): Include implementation unconditionally when
# global task queue factory is removed.
if (rtc_link_task_queue_impl) {
deps += [ ":default_task_queue_factory_impl" ]
}
}
# TODO(bugs.webrtc.org/10191): Merge back to default_task_queue_factory when
# rtc_task_queue_impl build target is removed.
rtc_source_set("default_task_queue_factory_impl") {
# Include the implementation when rtc_link_task_queue_impl is set to default
# value of true or when explicit dependency on "rtc_task_queue_impl" is added.
visibility = [
":default_task_queue_factory",
"../../rtc_base:rtc_task_queue_impl",
]
deps = [
":task_queue",
]
if (rtc_enable_libevent) {
sources = [
"default_task_queue_factory_libevent.cc",
]
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",
]
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",
]
sources += [ "default_task_queue_factory_win.cc" ]
deps += [ "../../rtc_base:rtc_task_queue_win" ]
} else {
sources = [
"default_task_queue_factory_stdlib.cc",
]
sources += [ "default_task_queue_factory_stdlib.cc" ]
deps += [ "../../rtc_base:rtc_task_queue_stdlib" ]
}
}
@ -115,8 +88,6 @@ if (rtc_include_tests) {
}
}
# Linking with global_task_queue_factory adds link-time implementation of the
# rtc::TaskQueue that allows run-time injection of the TaskQueue implementaion.
rtc_source_set("global_task_queue_factory") {
# TODO(bugs.webrtc.org/10284): Remove this target when task queue factory
# propagated to all components that create TaskQueues.
@ -124,16 +95,16 @@ rtc_source_set("global_task_queue_factory") {
sources = [
"global_task_queue_factory.cc",
"global_task_queue_factory.h",
# TODO(bugs.webrtc.org/10191): Move task_queue.cc to private build
# "rtc_task_queue" when "rtc_task_queue_api", "rtc_task_queue",
# and "rtc_task_queue_impl" can be joined.
"task_queue.cc",
]
deps = [
":default_task_queue_factory",
":task_queue",
"../../rtc_base:checks",
"../../rtc_base:rtc_task_queue_api",
]
if (build_with_chromium) {
# Chromium uses link-time injection of the CreateDefaultTaskQueueFactory
sources += [ "default_task_queue_factory.h" ]
} else {
deps += [ ":default_task_queue_factory" ]
}
}

View File

@ -468,46 +468,33 @@ if (is_mac && !build_with_chromium) {
rtc_source_set("rtc_task_queue") {
visibility = [ "*" ]
deps = []
public_deps = [
":rtc_task_queue_api",
]
if (rtc_link_task_queue_impl) {
deps += [ ":rtc_task_queue_impl" ]
}
}
# WebRTC targets must not directly depend on rtc_task_queue_api or
# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
# to the default implemenation in rtc_task_queue_impl or if an externally
# provided implementation should be used. An external implementation should
# depend on rtc_task_queue_api.
rtc_source_set("rtc_task_queue_api") {
# The visibility list is commented out so that we won't break external
# implementations, but left here to manually test as well as for sake of what
# targets we expect to depend on rtc_task_queue_api.
# visibility = [
# ":rtc_task_queue",
# ":rtc_task_queue_impl",
# ":sequenced_task_checker",
# ]
sources = [
"task_queue.cc",
"task_queue.h",
]
deps = [
":macromagic",
"../api/task_queue",
"../api/task_queue:global_task_queue_factory",
"system:rtc_export",
"task_utils:to_queued_task",
"//third_party/abseil-cpp/absl/memory",
]
# TODO(danilchap): Move this conditional dependency to global_task_queue_factory
# after removing task_queue_impl -> global_task_queue_factory dependency in chromium.
if (build_with_chromium) {
deps += [ "../../webrtc_overrides:task_queue_impl" ]
}
}
rtc_source_set("rtc_task_queue_api") {
visibility = [ "*" ]
}
if (rtc_enable_libevent) {
rtc_source_set("rtc_task_queue_libevent") {
visibility = [ "../api/task_queue:default_task_queue_factory_impl" ]
visibility = [ "../api/task_queue:default_task_queue_factory" ]
sources = [
"task_queue_libevent.cc",
"task_queue_libevent.h",
@ -533,7 +520,7 @@ if (rtc_enable_libevent) {
if (is_mac || is_ios) {
rtc_source_set("rtc_task_queue_gcd") {
visibility = [ "../api/task_queue:default_task_queue_factory_impl" ]
visibility = [ "../api/task_queue:default_task_queue_factory" ]
sources = [
"task_queue_gcd.cc",
"task_queue_gcd.h",
@ -550,7 +537,7 @@ if (is_mac || is_ios) {
if (is_win) {
rtc_source_set("rtc_task_queue_win") {
visibility = [ "../api/task_queue:default_task_queue_factory_impl" ]
visibility = [ "../api/task_queue:default_task_queue_factory" ]
sources = [
"task_queue_win.cc",
"task_queue_win.h",
@ -562,7 +549,6 @@ if (is_win) {
":macromagic",
":platform_thread",
":rtc_event",
":rtc_task_queue_api",
":safe_conversions",
":timeutils",
"../api/task_queue",
@ -573,7 +559,7 @@ if (is_win) {
}
rtc_source_set("rtc_task_queue_stdlib") {
visibility = [ "../api/task_queue:default_task_queue_factory_impl" ]
visibility = [ "../api/task_queue:default_task_queue_factory" ]
sources = [
"task_queue_stdlib.cc",
"task_queue_stdlib.h",
@ -585,7 +571,6 @@ rtc_source_set("rtc_task_queue_stdlib") {
":macromagic",
":platform_thread",
":rtc_event",
":rtc_task_queue_api",
":safe_conversions",
":timeutils",
"../api/task_queue",
@ -594,14 +579,6 @@ rtc_source_set("rtc_task_queue_stdlib") {
]
}
rtc_source_set("rtc_task_queue_impl") {
visibility = [ "*" ]
deps = [
"../api/task_queue:default_task_queue_factory_impl",
"../api/task_queue:global_task_queue_factory",
]
}
rtc_source_set("sequenced_task_checker") {
sources = [
"sequenced_task_checker.h",

View File

@ -15,7 +15,7 @@ rtc_source_set("repeating_task") {
]
deps = [
"..:logging",
"..:rtc_task_queue_api",
"..:rtc_task_queue",
"..:sequenced_task_checker",
"..:thread_checker",
"..:timeutils",

View File

@ -629,7 +629,7 @@ if (is_android) {
"../../modules/video_coding:video_coding_utility",
"../../rtc_base:checks",
"../../rtc_base:rtc_base",
"../../rtc_base:rtc_task_queue_api",
"../../rtc_base:rtc_task_queue",
"../../rtc_base:sequenced_task_checker",
"../../rtc_base:weak_ptr",
"../../system_wrappers:field_trial",
@ -690,7 +690,7 @@ if (is_android) {
"../../modules/video_coding:video_coding_utility",
"../../rtc_base:checks",
"../../rtc_base:rtc_base",
"../../rtc_base:rtc_task_queue_api",
"../../rtc_base:rtc_task_queue",
"//third_party/libyuv",
]
}

View File

@ -47,10 +47,6 @@ template("webrtc_fuzzer_test") {
deps += [
":fuzz_data_helper",
":webrtc_fuzzer_main",
# Link unconditionally with webrtc's TaskQueue, regardless of
# rtc_link_task_queue_impl flag.
"../../rtc_base:rtc_task_queue_impl",
]
if (!build_with_chromium && is_clang) {
suppressed_configs = [ "//build/config/clang:find_bad_constructs" ]

View File

@ -32,7 +32,7 @@ rtc_source_set("emulated_network") {
"../../../api/units:time_delta",
"../../../api/units:timestamp",
"../../../rtc_base:rtc_base",
"../../../rtc_base:rtc_task_queue_api",
"../../../rtc_base:rtc_task_queue",
"../../../rtc_base:safe_minmax",
"../../../rtc_base/task_utils:repeating_task",
"../../../rtc_base/third_party/sigslot:sigslot",

View File

@ -132,7 +132,7 @@ rtc_source_set("video_stream_decoder_impl") {
"../api/video_codecs:video_codecs_api",
"../modules/video_coding:video_coding",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_task_queue_api",
"../rtc_base:rtc_task_queue",
"../system_wrappers:system_wrappers",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",