xref: /aosp_15_r20/external/webrtc/api/task_queue/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
2*d9f75844SAndroid Build Coastguard Worker#
3*d9f75844SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license
4*d9f75844SAndroid Build Coastguard Worker# that can be found in the LICENSE file in the root of the source
5*d9f75844SAndroid Build Coastguard Worker# tree. An additional intellectual property rights grant can be found
6*d9f75844SAndroid Build Coastguard Worker# in the file PATENTS.  All contributing project authors may
7*d9f75844SAndroid Build Coastguard Worker# be found in the AUTHORS file in the root of the source tree.
8*d9f75844SAndroid Build Coastguard Worker
9*d9f75844SAndroid Build Coastguard Workerimport("../../webrtc.gni")
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Workerrtc_library("task_queue") {
12*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
13*d9f75844SAndroid Build Coastguard Worker  public = [
14*d9f75844SAndroid Build Coastguard Worker    "task_queue_base.h",
15*d9f75844SAndroid Build Coastguard Worker    "task_queue_factory.h",
16*d9f75844SAndroid Build Coastguard Worker  ]
17*d9f75844SAndroid Build Coastguard Worker  sources = [ "task_queue_base.cc" ]
18*d9f75844SAndroid Build Coastguard Worker
19*d9f75844SAndroid Build Coastguard Worker  deps = [
20*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:checks",
21*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:macromagic",
22*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base/system:rtc_export",
23*d9f75844SAndroid Build Coastguard Worker    "../units:time_delta",
24*d9f75844SAndroid Build Coastguard Worker  ]
25*d9f75844SAndroid Build Coastguard Worker  absl_deps = [
26*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:config",
27*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:core_headers",
28*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/functional:any_invocable",
29*d9f75844SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
30*d9f75844SAndroid Build Coastguard Worker  ]
31*d9f75844SAndroid Build Coastguard Worker}
32*d9f75844SAndroid Build Coastguard Worker
33*d9f75844SAndroid Build Coastguard Workerrtc_library("task_queue_test") {
34*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
35*d9f75844SAndroid Build Coastguard Worker  testonly = true
36*d9f75844SAndroid Build Coastguard Worker  sources = [
37*d9f75844SAndroid Build Coastguard Worker    "task_queue_test.cc",
38*d9f75844SAndroid Build Coastguard Worker    "task_queue_test.h",
39*d9f75844SAndroid Build Coastguard Worker  ]
40*d9f75844SAndroid Build Coastguard Worker
41*d9f75844SAndroid Build Coastguard Worker  check_includes = false  # no-presubmit-check TODO(bugs.webrtc.org/9419)
42*d9f75844SAndroid Build Coastguard Worker  if (build_with_chromium) {
43*d9f75844SAndroid Build Coastguard Worker    visibility = []
44*d9f75844SAndroid Build Coastguard Worker    visibility = webrtc_default_visibility
45*d9f75844SAndroid Build Coastguard Worker    visibility += [
46*d9f75844SAndroid Build Coastguard Worker      # This is the only Chromium targets that can depend on this. The reason
47*d9f75844SAndroid Build Coastguard Worker      # behind this is the fact that these are 'testonly' targets and as such
48*d9f75844SAndroid Build Coastguard Worker      # it cannot be part of the WebRTC component.
49*d9f75844SAndroid Build Coastguard Worker      "//components/webrtc:unit_tests",
50*d9f75844SAndroid Build Coastguard Worker      "//third_party/blink/renderer/platform:blink_platform_unittests_sources",
51*d9f75844SAndroid Build Coastguard Worker    ]
52*d9f75844SAndroid Build Coastguard Worker
53*d9f75844SAndroid Build Coastguard Worker    # Don't depend on WebRTC code outside of webrtc_overrides:webrtc_component
54*d9f75844SAndroid Build Coastguard Worker    # because this will break the WebRTC component build in Chromium.
55*d9f75844SAndroid Build Coastguard Worker    deps = [
56*d9f75844SAndroid Build Coastguard Worker      "../../../webrtc_overrides:webrtc_component",
57*d9f75844SAndroid Build Coastguard Worker      "../../test:test_support",
58*d9f75844SAndroid Build Coastguard Worker    ]
59*d9f75844SAndroid Build Coastguard Worker    absl_deps = [
60*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/cleanup",
61*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings",
62*d9f75844SAndroid Build Coastguard Worker    ]
63*d9f75844SAndroid Build Coastguard Worker  } else {
64*d9f75844SAndroid Build Coastguard Worker    deps = [
65*d9f75844SAndroid Build Coastguard Worker      ":default_task_queue_factory",
66*d9f75844SAndroid Build Coastguard Worker      ":task_queue",
67*d9f75844SAndroid Build Coastguard Worker      "../../api:field_trials_view",
68*d9f75844SAndroid Build Coastguard Worker      "../../api/units:time_delta",
69*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:refcount",
70*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:rtc_event",
71*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:timeutils",
72*d9f75844SAndroid Build Coastguard Worker      "../../test:test_support",
73*d9f75844SAndroid Build Coastguard Worker    ]
74*d9f75844SAndroid Build Coastguard Worker    absl_deps = [
75*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/cleanup",
76*d9f75844SAndroid Build Coastguard Worker      "//third_party/abseil-cpp/absl/strings",
77*d9f75844SAndroid Build Coastguard Worker    ]
78*d9f75844SAndroid Build Coastguard Worker  }
79*d9f75844SAndroid Build Coastguard Worker}
80*d9f75844SAndroid Build Coastguard Worker
81*d9f75844SAndroid Build Coastguard Workerrtc_library("default_task_queue_factory") {
82*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
83*d9f75844SAndroid Build Coastguard Worker  if (!is_ios && !is_android) {
84*d9f75844SAndroid Build Coastguard Worker    poisonous = [ "default_task_queue" ]
85*d9f75844SAndroid Build Coastguard Worker  }
86*d9f75844SAndroid Build Coastguard Worker  sources = [ "default_task_queue_factory.h" ]
87*d9f75844SAndroid Build Coastguard Worker  deps = [
88*d9f75844SAndroid Build Coastguard Worker    ":task_queue",
89*d9f75844SAndroid Build Coastguard Worker    "../../api:field_trials_view",
90*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base/memory:always_valid_pointer",
91*d9f75844SAndroid Build Coastguard Worker  ]
92*d9f75844SAndroid Build Coastguard Worker
93*d9f75844SAndroid Build Coastguard Worker  if (rtc_enable_libevent) {
94*d9f75844SAndroid Build Coastguard Worker    if (is_android) {
95*d9f75844SAndroid Build Coastguard Worker      sources +=
96*d9f75844SAndroid Build Coastguard Worker          [ "default_task_queue_factory_stdlib_or_libevent_experiment.cc" ]
97*d9f75844SAndroid Build Coastguard Worker      deps += [
98*d9f75844SAndroid Build Coastguard Worker        "../../api/transport:field_trial_based_config",
99*d9f75844SAndroid Build Coastguard Worker        "../../rtc_base:logging",
100*d9f75844SAndroid Build Coastguard Worker        "../../rtc_base:rtc_task_queue_libevent",
101*d9f75844SAndroid Build Coastguard Worker        "../../rtc_base:rtc_task_queue_stdlib",
102*d9f75844SAndroid Build Coastguard Worker      ]
103*d9f75844SAndroid Build Coastguard Worker    } else {
104*d9f75844SAndroid Build Coastguard Worker      sources += [ "default_task_queue_factory_libevent.cc" ]
105*d9f75844SAndroid Build Coastguard Worker      deps += [ "../../rtc_base:rtc_task_queue_libevent" ]
106*d9f75844SAndroid Build Coastguard Worker    }
107*d9f75844SAndroid Build Coastguard Worker  } else if (is_mac || is_ios) {
108*d9f75844SAndroid Build Coastguard Worker    sources += [ "default_task_queue_factory_gcd.cc" ]
109*d9f75844SAndroid Build Coastguard Worker    deps += [ "../../rtc_base:rtc_task_queue_gcd" ]
110*d9f75844SAndroid Build Coastguard Worker  } else if (is_win && current_os != "winuwp") {
111*d9f75844SAndroid Build Coastguard Worker    sources += [ "default_task_queue_factory_win.cc" ]
112*d9f75844SAndroid Build Coastguard Worker    deps += [ "../../rtc_base:rtc_task_queue_win" ]
113*d9f75844SAndroid Build Coastguard Worker  } else {
114*d9f75844SAndroid Build Coastguard Worker    sources += [ "default_task_queue_factory_stdlib.cc" ]
115*d9f75844SAndroid Build Coastguard Worker    deps += [ "../../rtc_base:rtc_task_queue_stdlib" ]
116*d9f75844SAndroid Build Coastguard Worker  }
117*d9f75844SAndroid Build Coastguard Worker}
118*d9f75844SAndroid Build Coastguard Worker
119*d9f75844SAndroid Build Coastguard Workerrtc_library("pending_task_safety_flag") {
120*d9f75844SAndroid Build Coastguard Worker  visibility = [ "*" ]
121*d9f75844SAndroid Build Coastguard Worker  sources = [
122*d9f75844SAndroid Build Coastguard Worker    "pending_task_safety_flag.cc",
123*d9f75844SAndroid Build Coastguard Worker    "pending_task_safety_flag.h",
124*d9f75844SAndroid Build Coastguard Worker  ]
125*d9f75844SAndroid Build Coastguard Worker  deps = [
126*d9f75844SAndroid Build Coastguard Worker    "../../api:refcountedbase",
127*d9f75844SAndroid Build Coastguard Worker    "../../api:scoped_refptr",
128*d9f75844SAndroid Build Coastguard Worker    "../../api:sequence_checker",
129*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base:checks",
130*d9f75844SAndroid Build Coastguard Worker    "../../rtc_base/system:no_unique_address",
131*d9f75844SAndroid Build Coastguard Worker  ]
132*d9f75844SAndroid Build Coastguard Worker  absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ]
133*d9f75844SAndroid Build Coastguard Worker}
134*d9f75844SAndroid Build Coastguard Worker
135*d9f75844SAndroid Build Coastguard Workerif (rtc_include_tests) {
136*d9f75844SAndroid Build Coastguard Worker  rtc_library("task_queue_default_factory_unittests") {
137*d9f75844SAndroid Build Coastguard Worker    testonly = true
138*d9f75844SAndroid Build Coastguard Worker    sources = [ "default_task_queue_factory_unittest.cc" ]
139*d9f75844SAndroid Build Coastguard Worker    deps = [
140*d9f75844SAndroid Build Coastguard Worker      ":default_task_queue_factory",
141*d9f75844SAndroid Build Coastguard Worker      ":task_queue_test",
142*d9f75844SAndroid Build Coastguard Worker      "../../test:test_support",
143*d9f75844SAndroid Build Coastguard Worker    ]
144*d9f75844SAndroid Build Coastguard Worker  }
145*d9f75844SAndroid Build Coastguard Worker
146*d9f75844SAndroid Build Coastguard Worker  rtc_library("pending_task_safety_flag_unittests") {
147*d9f75844SAndroid Build Coastguard Worker    testonly = true
148*d9f75844SAndroid Build Coastguard Worker    sources = [ "pending_task_safety_flag_unittest.cc" ]
149*d9f75844SAndroid Build Coastguard Worker    deps = [
150*d9f75844SAndroid Build Coastguard Worker      ":pending_task_safety_flag",
151*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:logging",
152*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:rtc_event",
153*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:rtc_task_queue",
154*d9f75844SAndroid Build Coastguard Worker      "../../rtc_base:task_queue_for_test",
155*d9f75844SAndroid Build Coastguard Worker      "../../test:test_support",
156*d9f75844SAndroid Build Coastguard Worker    ]
157*d9f75844SAndroid Build Coastguard Worker  }
158*d9f75844SAndroid Build Coastguard Worker}
159