blob: c30340aa4d6ded3fc900e1b882f0b04cd5155c93 [file] [log] [blame]
Henrik Kjellanderc0362762017-06-29 06:03:041# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
Henrik Kjellander73e21802017-06-20 06:38:582#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
Andrey Logvin5e227ab2021-01-29 10:34:559import("//third_party/google_benchmark/buildconfig.gni")
Henrik Kjellander73e21802017-06-20 06:38:5810import("../webrtc.gni")
11
12if (is_android) {
13 import("//build/config/android/config.gni")
14 import("//build/config/android/rules.gni")
15}
16
Dan Minor9cdd8762018-01-16 15:40:3917if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 06:03:0418 config("external_ssl_library") {
19 assert(rtc_ssl_root != "",
20 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
21 include_dirs = [ rtc_ssl_root ]
22 }
23}
24
Oleh Prypindd214742018-07-17 11:49:4625rtc_source_set("protobuf_utils") {
Mirko Bonadeiccbe95f2020-01-21 11:10:1026 sources = [ "protobuf_utils.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:0427 if (rtc_enable_protobuf) {
Mirko Bonadeid8661a02018-08-13 13:04:2528 public_configs = [ "//third_party/protobuf:protobuf_config" ]
Mirko Bonadeiccbe95f2020-01-21 11:10:1029 deps = [ "//third_party/protobuf:protobuf_lite" ]
Henrik Kjellanderc0362762017-06-29 06:03:0430 }
31}
32
Danil Chapovalov5af152c2021-08-31 13:27:5133rtc_source_set("bitstream_reader") {
34 sources = [
35 "bitstream_reader.cc",
36 "bitstream_reader.h",
37 ]
38 deps = [
39 ":checks",
40 ":safe_conversions",
41 "../api:array_view",
42 ]
43 absl_deps = [
44 "//third_party/abseil-cpp/absl/base:core_headers",
45 "//third_party/abseil-cpp/absl/numeric:bits",
46 "//third_party/abseil-cpp/absl/strings",
47 ]
48}
49
Oleh Prypindd214742018-07-17 11:49:4650rtc_source_set("compile_assert_c") {
Mirko Bonadeiccbe95f2020-01-21 11:10:1051 sources = [ "compile_assert_c.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:0452}
53
Mirko Bonadei3663ed32019-10-19 10:03:2354rtc_source_set("ignore_wundef") {
Mirko Bonadeiccbe95f2020-01-21 11:10:1055 sources = [ "ignore_wundef.h" ]
Mirko Bonadei3663ed32019-10-19 10:03:2356}
57
Karl Wiberg70026f92020-09-18 08:03:1658rtc_source_set("untyped_function") {
59 sources = [ "untyped_function.h" ]
Karl Wiberg3d452cf2020-09-11 14:09:4660 deps = [ "system:assume" ]
61}
62
Mirko Bonadei3d259352020-10-23 10:04:4063rtc_source_set("callback_list") {
Karl Wiberg3d452cf2020-09-11 14:09:4664 sources = [
Mirko Bonadei3d259352020-10-23 10:04:4065 "callback_list.cc",
66 "callback_list.h",
Karl Wiberg3d452cf2020-09-11 14:09:4667 ]
68 deps = [
Karl Wiberg01a36f32020-11-11 10:48:0469 ":checks",
Karl Wiberg70026f92020-09-18 08:03:1670 ":untyped_function",
Karl Wiberg3d452cf2020-09-11 14:09:4671 "../api:function_view",
72 "system:assume",
Karl Wibergd2c69672020-09-29 11:55:1373 "system:inline",
Tomas Gunnarsson9797dcd2022-04-10 11:27:1374 "system:rtc_export",
Karl Wiberg3d452cf2020-09-11 14:09:4675 ]
76}
77
Mirko Bonadeica270912018-10-10 13:51:0378# The subset of rtc_base approved for use outside of libjingle.
Ilya Nikolaevskiy26341992018-11-05 11:55:1879# TODO(bugs.webrtc.org/9838): Create small and focused build targets and remove
Mirko Bonadeica270912018-10-10 13:51:0380# the old concept of rtc_base and rtc_base_approved.
Mirko Bonadei86d053c2019-10-17 19:32:0481rtc_library("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:5382 visibility = [ "*" ]
Mirko Bonadeica270912018-10-10 13:51:0383 deps = [
Florent Castellibddfe022022-04-04 13:03:1084 ":atomicops",
Mirko Bonadeica270912018-10-10 13:51:0385 ":checks",
Florent Castelli0af55ba2022-04-04 13:06:3086 ":logging",
Florent Castelli4467ad72022-04-04 13:18:4687 ":macromagic",
Florent Castellif86f6f92022-04-05 00:54:1288 ":refcount",
Florent Castelli33d31fb2022-04-04 14:57:5289 ":rtc_event",
Mirko Bonadeica270912018-10-10 13:51:0390 ":rtc_task_queue",
91 ":safe_compare",
Florent Castellie10a9f62022-04-04 15:04:3792 ":safe_conversions",
Florent Castelli57aa81b2022-04-04 15:14:0293 ":stringutils",
Florent Castellidd837e22022-04-04 15:16:1594 ":timeutils",
Mirko Bonadeica270912018-10-10 13:51:0395 ":type_traits",
Mirko Bonadeica270912018-10-10 13:51:0396 "../api:array_view",
Mirko Bonadeid9708072019-01-25 19:26:4897 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:2498 "../api:sequence_checker",
Markus Handell18523c32020-07-08 15:55:5899 "synchronization:mutex",
Mirko Bonadeica270912018-10-10 13:51:03100 "system:arch",
Mirko Bonadei20e4c802020-11-23 10:07:42101 "system:no_unique_address",
Mirko Bonadei35214fc2019-09-23 12:54:28102 "system:rtc_export",
Mirko Bonadeica270912018-10-10 13:51:03103 "third_party/base64",
Mirko Bonadeica270912018-10-10 13:51:03104 ]
Danil Chapovalov098da172021-01-14 15:15:31105 absl_deps = [
106 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov09fb7872021-08-20 10:46:14107 "//third_party/abseil-cpp/absl/numeric:bits",
Ali Tofigh7fa90572022-03-17 14:47:49108 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov098da172021-01-14 15:15:31109 "//third_party/abseil-cpp/absl/types:optional",
110 ]
Mirko Bonadeia7d8f192019-03-29 12:34:46111 public_deps = [] # no-presubmit-check TODO(webrtc:8603)
Mirko Bonadeica270912018-10-10 13:51:03112
113 sources = [
Steve Anton10542f22019-01-11 17:11:00114 "bit_buffer.cc",
115 "bit_buffer.h",
Mirko Bonadeica270912018-10-10 13:51:03116 "buffer.h",
Steve Anton10542f22019-01-11 17:11:00117 "buffer_queue.cc",
118 "buffer_queue.h",
119 "byte_buffer.cc",
120 "byte_buffer.h",
121 "byte_order.h",
122 "copy_on_write_buffer.cc",
123 "copy_on_write_buffer.h",
Mirko Bonadeica270912018-10-10 13:51:03124 "event_tracer.cc",
125 "event_tracer.h",
Mirko Bonadeica270912018-10-10 13:51:03126 "location.cc",
127 "location.h",
Mirko Bonadeica270912018-10-10 13:51:03128 "numerics/histogram_percentile_counter.cc",
129 "numerics/histogram_percentile_counter.h",
130 "numerics/mod_ops.h",
131 "numerics/moving_max_counter.h",
132 "numerics/sample_counter.cc",
133 "numerics/sample_counter.h",
Steve Anton10542f22019-01-11 17:11:00134 "one_time_event.h",
Mirko Bonadeica270912018-10-10 13:51:03135 "race_checker.cc",
136 "race_checker.h",
137 "random.cc",
138 "random.h",
139 "rate_statistics.cc",
140 "rate_statistics.h",
Steve Anton10542f22019-01-11 17:11:00141 "rate_tracker.cc",
142 "rate_tracker.h",
Victor Boivieb9182302021-09-21 12:51:05143 "strong_alias.h",
Mirko Bonadeica270912018-10-10 13:51:03144 "swap_queue.h",
Steve Anton10542f22019-01-11 17:11:00145 "timestamp_aligner.cc",
146 "timestamp_aligner.h",
Mirko Bonadeica270912018-10-10 13:51:03147 "trace_event.h",
148 "zero_memory.cc",
149 "zero_memory.h",
150 ]
151
Mirko Bonadeica270912018-10-10 13:51:03152 if (is_win) {
153 sources += [
Austin Orion0bb354c2020-10-29 18:30:10154 "win/get_activation_factory.cc",
155 "win/get_activation_factory.h",
156 "win/hstring.cc",
157 "win/hstring.h",
158 "win/scoped_com_initializer.cc",
159 "win/scoped_com_initializer.h",
Mirko Bonadeica270912018-10-10 13:51:03160 "win/windows_version.cc",
161 "win/windows_version.h",
162 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10163 data_deps = [ "//build/win:runtime_libs" ]
Mirko Bonadeica270912018-10-10 13:51:03164 }
165
Austin Oriond19d0cf2021-01-27 17:40:21166 # These files add a dependency on the Win10 SDK v10.0.10240.
167 if (rtc_enable_win_wgc) {
168 sources += [
169 "win/create_direct3d_device.cc",
170 "win/create_direct3d_device.h",
171 ]
172 }
173
Mirko Bonadeica270912018-10-10 13:51:03174 if (is_nacl) {
Harald Alvestrand13799132020-03-09 18:39:36175 public_deps += # no-presubmit-check TODO(webrtc:8603)
176 [ "//native_client_sdk/src/libraries/nacl_io" ]
Mirko Bonadeica270912018-10-10 13:51:03177 }
178
179 if (is_android) {
180 libs = [ "log" ]
181 }
182
Mirko Bonadeia7d8f192019-03-29 12:34:46183 public_deps += [ # no-presubmit-check TODO(webrtc:8603)
Tommi8d2c5a82018-03-19 10:12:48184 ":platform_thread",
185 ":platform_thread_types",
mbonadeibc378472017-09-11 10:43:34186 ]
mbonadeibc378472017-09-11 10:43:34187}
188
Tommi8d2c5a82018-03-19 10:12:48189rtc_source_set("macromagic") {
190 sources = [
191 "arraysize.h",
Tommi8d2c5a82018-03-19 10:12:48192 "format_macros.h",
Tommi8d2c5a82018-03-19 10:12:48193 "thread_annotations.h",
194 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10195 deps = [ "system:arch" ]
Tommi8d2c5a82018-03-19 10:12:48196}
197
Mirko Bonadei86d053c2019-10-17 19:32:04198rtc_library("platform_thread_types") {
Tommi8d2c5a82018-03-19 10:12:48199 sources = [
200 "platform_thread_types.cc",
201 "platform_thread_types.h",
202 ]
Tommicf8460782020-05-17 12:51:10203 deps = [ ":macromagic" ]
Tommi8d2c5a82018-03-19 10:12:48204}
205
Tommi8d2c5a82018-03-19 10:12:48206rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 07:47:12207 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48208 sources = [
Steve Anton10542f22019-01-11 17:11:00209 "ref_count.h",
210 "ref_counted_object.h",
211 "ref_counter.h",
Tommi8d2c5a82018-03-19 10:12:48212 ]
Tomas Gunnarssond7842002021-04-22 15:41:33213 deps = [
214 ":macromagic",
215 "../api:scoped_refptr",
216 ]
Tommi8d2c5a82018-03-19 10:12:48217}
218
Mirko Bonadei86d053c2019-10-17 19:32:04219rtc_library("criticalsection") {
Tommi8d2c5a82018-03-19 10:12:48220 sources = [
Markus Handell3cb525b2020-07-16 14:16:09221 "deprecated/recursive_critical_section.cc",
222 "deprecated/recursive_critical_section.h",
Tommi8d2c5a82018-03-19 10:12:48223 ]
224 deps = [
225 ":atomicops",
226 ":checks",
227 ":macromagic",
228 ":platform_thread_types",
Markus Handellf70fbc82020-06-03 22:41:20229 "synchronization:yield",
Niels Möllera12c42a2018-07-25 14:05:48230 "system:unused",
Tommi8d2c5a82018-03-19 10:12:48231 ]
232}
233
Mirko Bonadei86d053c2019-10-17 19:32:04234rtc_library("platform_thread") {
Tommi8d2c5a82018-03-19 10:12:48235 visibility = [
236 ":rtc_base_approved",
Tommi8d2c5a82018-03-19 10:12:48237 ":rtc_task_queue_libevent",
Robin Raymond22027b92018-11-23 14:07:50238 ":rtc_task_queue_stdlib",
Artem Titov9d777622020-09-18 16:23:08239 ":rtc_task_queue_win",
Artem Titovd15a5752021-02-10 13:31:24240 "../api:sequence_checker",
Markus Handell2d27b1a2020-06-09 15:34:41241 "synchronization:mutex",
Tommi8d2c5a82018-03-19 10:12:48242 ]
243 sources = [
244 "platform_thread.cc",
245 "platform_thread.h",
246 ]
247 deps = [
248 ":atomicops",
249 ":checks",
250 ":macromagic",
251 ":platform_thread_types",
252 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48253 ":timeutils",
Artem Titovd15a5752021-02-10 13:31:24254 "../api:sequence_checker",
Tommi8d2c5a82018-03-19 10:12:48255 ]
Markus Handell97c44582021-04-20 15:41:54256 absl_deps = [
257 "//third_party/abseil-cpp/absl/memory",
258 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:36259 "//third_party/abseil-cpp/absl/types:optional",
Markus Handell97c44582021-04-20 15:41:54260 ]
Tommi8d2c5a82018-03-19 10:12:48261}
262
Mirko Bonadei86d053c2019-10-17 19:32:04263rtc_library("rtc_event") {
Tommi8d2c5a82018-03-19 10:12:48264 if (build_with_chromium) {
265 sources = [
266 "../../webrtc_overrides/rtc_base/event.cc",
267 "../../webrtc_overrides/rtc_base/event.h",
268 ]
Karl Wiberg98417032019-03-24 18:12:40269 deps = [
270 ":checks",
Mirko Bonadeid4002a72019-11-12 19:11:48271 "system:rtc_export", # Only Chromium's rtc::Event use RTC_EXPORT.
Karl Wiberg98417032019-03-24 18:12:40272 "//base", # Dependency on chromium's waitable_event.
273 ]
Tommi8d2c5a82018-03-19 10:12:48274 } else {
275 sources = [
276 "event.cc",
277 "event.h",
278 ]
Karl Wiberg98417032019-03-24 18:12:40279 deps = [
280 ":checks",
281 "synchronization:yield_policy",
282 "system:warn_current_thread_is_deadlocked",
283 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41284 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Tommi8d2c5a82018-03-19 10:12:48285 }
Tommi8d2c5a82018-03-19 10:12:48286}
287
Mirko Bonadeicb03e382022-02-10 13:27:57288config("chromium_logging_config") {
Danil Chapovalove6106102022-02-16 11:29:02289 defines = [ "LOGGING_INSIDE_WEBRTC" ]
Mirko Bonadeicb03e382022-02-10 13:27:57290}
291
Mirko Bonadei86d053c2019-10-17 19:32:04292rtc_library("logging") {
Mirko Bonadei2ad8c432018-08-09 08:54:40293 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51294 libs = []
Tommi8d2c5a82018-03-19 10:12:48295 deps = [
Yves Gerey988cc082018-10-23 10:03:01296 ":checks",
Tommi8d2c5a82018-03-19 10:12:48297 ":macromagic",
298 ":platform_thread_types",
299 ":stringutils",
300 ":timeutils",
Markus Handellde8a9352020-06-10 13:40:42301 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41302 ]
303 absl_deps = [
Danil Chapovalovef98ae62019-10-11 15:18:29304 "//third_party/abseil-cpp/absl/base:core_headers",
Sebastian Janssonf4e085a2019-05-20 16:34:07305 "//third_party/abseil-cpp/absl/meta:type_traits",
Jonas Olssonf2ce37c2018-09-12 13:32:47306 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48307 ]
308
309 if (build_with_chromium) {
310 # Dependency on chromium's logging (in //base).
Artem Titov94b57c02019-03-21 12:35:10311 deps += [ "//base" ]
Tommi8d2c5a82018-03-19 10:12:48312 sources = [
313 "../../webrtc_overrides/rtc_base/logging.cc",
314 "../../webrtc_overrides/rtc_base/logging.h",
315 ]
Danil Chapovalove6106102022-02-16 11:29:02316
Mirko Bonadeicb03e382022-02-10 13:27:57317 # This macro needs to be both present in all WebRTC targets (see its
318 # definition in //BUILD.gn but also propagated to all the targets
319 # depending on the Chromium component defined in
320 # //third_party/webrtc_overrides:webrtc_component. This public_config
321 # allows GN to propagate the macro accordingly.
Danil Chapovalove6106102022-02-16 11:29:02322 public_configs = [ ":chromium_logging_config" ]
Tommi8d2c5a82018-03-19 10:12:48323 } else {
324 sources = [
325 "logging.cc",
326 "logging.h",
327 ]
Karl Wibergcefc4652018-05-23 21:20:38328 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 10:12:48329
Mirko Bonadei99a70a22018-10-09 14:45:14330 if (is_mac) {
Sylvain Defresnec7f0dff2020-07-03 08:19:30331 frameworks = [ "Foundation.framework" ]
Mirko Bonadei99a70a22018-10-09 14:45:14332 }
333
Patrik Höglund77301932018-10-09 13:09:51334 if (is_android) {
335 libs += [ "log" ]
336 }
Tommi8d2c5a82018-03-19 10:12:48337 }
338}
339
Tommi8d2c5a82018-03-19 10:12:48340rtc_source_set("atomicops") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10341 sources = [ "atomic_ops.h" ]
Tommi8d2c5a82018-03-19 10:12:48342}
343
Mirko Bonadei86d053c2019-10-17 19:32:04344rtc_library("checks") {
Mirko Bonadei2ad8c432018-08-09 08:54:40345 # TODO(bugs.webrtc.org/9607): This should not be public.
346 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51347 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:42348 sources = [
349 "checks.cc",
350 "checks.h",
351 ]
352 deps = [
353 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 11:14:22354 "system:inline",
Mirko Bonadei35214fc2019-09-23 12:54:28355 "system:rtc_export",
Mirko Bonadei2dcf3482020-06-05 12:30:41356 ]
357 absl_deps = [
Sebastian Janssonf4e085a2019-05-20 16:34:07358 "//third_party/abseil-cpp/absl/meta:type_traits",
Mirko Bonadeid4a37a62019-03-11 09:31:22359 "//third_party/abseil-cpp/absl/strings",
Patrik Höglunda8005cf2017-12-13 15:05:42360 ]
Patrik Höglund77301932018-10-09 13:09:51361 if (is_android) {
362 libs += [ "log" ]
363 }
Patrik Höglunda8005cf2017-12-13 15:05:42364}
365
Mirko Bonadei86d053c2019-10-17 19:32:04366rtc_library("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 15:05:42367 sources = [
Patrik Höglund3e113432017-12-15 13:40:10368 "rate_limiter.cc",
369 "rate_limiter.h",
370 ]
371 deps = [
Florent Castelli4467ad72022-04-04 13:18:46372 ":macromagic",
Patrik Höglund3e113432017-12-15 13:40:10373 ":rtc_base_approved",
374 "../system_wrappers",
Markus Handell18523c32020-07-08 15:55:58375 "synchronization:mutex",
Patrik Höglunda8005cf2017-12-13 15:05:42376 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41377 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Patrik Höglunda8005cf2017-12-13 15:05:42378}
379
380rtc_source_set("sanitizer") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10381 sources = [ "sanitizer.h" ]
Mirko Bonadei2dcf3482020-06-05 12:30:41382 absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42383}
384
Karl Wibergc1269372020-03-02 19:23:41385rtc_source_set("bounded_inline_vector") {
386 public = [ "bounded_inline_vector.h" ]
387 sources = [ "bounded_inline_vector_impl.h" ]
388 deps = [ ":checks" ]
389}
390
Danil Chapovalov33b83fd2019-09-18 13:48:23391rtc_source_set("divide_round") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10392 sources = [ "numerics/divide_round.h" ]
Danil Chapovalov33b83fd2019-09-18 13:48:23393 deps = [
394 ":checks",
395 ":safe_compare",
396 ]
397}
398
Patrik Höglunda8005cf2017-12-13 15:05:42399rtc_source_set("safe_compare") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10400 sources = [ "numerics/safe_compare.h" ]
401 deps = [ ":type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42402}
403
Karl Wiberg12edf4c2018-03-07 13:18:56404rtc_source_set("safe_minmax") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10405 sources = [ "numerics/safe_minmax.h" ]
Karl Wiberg12edf4c2018-03-07 13:18:56406 deps = [
407 ":checks",
408 ":safe_compare",
409 ":type_traits",
410 ]
411}
412
Tommi8d2c5a82018-03-19 10:12:48413rtc_source_set("safe_conversions") {
414 sources = [
415 "numerics/safe_conversions.h",
416 "numerics/safe_conversions_impl.h",
417 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10418 deps = [ ":checks" ]
Tommi8d2c5a82018-03-19 10:12:48419}
420
Mirko Bonadei86d053c2019-10-17 19:32:04421rtc_library("timeutils") {
Mirko Bonadei2ad8c432018-08-09 08:54:40422 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48423 sources = [
Johannes Kronb73c9f02021-02-15 12:29:45424 "system_time.cc",
425 "system_time.h",
Steve Anton10542f22019-01-11 17:11:00426 "time_utils.cc",
427 "time_utils.h",
Tommi8d2c5a82018-03-19 10:12:48428 ]
429 deps = [
430 ":checks",
431 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 11:41:30432 ":stringutils",
Mirko Bonadei35214fc2019-09-23 12:54:28433 "system:rtc_export",
Tommi8d2c5a82018-03-19 10:12:48434 ]
Johannes Kronbb52bdf2021-02-25 09:10:08435 if (rtc_exclude_system_time) {
436 defines = [ "WEBRTC_EXCLUDE_SYSTEM_TIME" ]
437 }
438
Noah Richards342989d2019-03-18 20:50:20439 libs = []
440 if (is_win) {
441 libs += [ "winmm.lib" ]
442 }
Tommi8d2c5a82018-03-19 10:12:48443}
444
Mirko Bonadei86d053c2019-10-17 19:32:04445rtc_library("stringutils") {
Patrik Höglunda8005cf2017-12-13 15:05:42446 sources = [
Steve Anton10542f22019-01-11 17:11:00447 "string_encode.cc",
448 "string_encode.h",
Jonas Olsson6b1985d2018-07-05 09:59:48449 "string_to_number.cc",
450 "string_to_number.h",
Steve Anton10542f22019-01-11 17:11:00451 "string_utils.cc",
452 "string_utils.h",
Karl Wiberg881f1682018-03-08 14:03:23453 "strings/string_builder.cc",
Tommifef05002018-02-27 12:51:08454 "strings/string_builder.h",
henrikaf0dc5c52020-04-09 16:46:00455 "strings/string_format.cc",
456 "strings/string_format.h",
Patrik Höglunda8005cf2017-12-13 15:05:42457 ]
458 deps = [
Patrik Höglund3e113432017-12-15 13:40:10459 ":checks",
Jonas Olsson6b1985d2018-07-05 09:59:48460 ":macromagic",
Karl Wiberg881f1682018-03-08 14:03:23461 ":safe_minmax",
462 "../api:array_view",
Mirko Bonadei2dcf3482020-06-05 12:30:41463 ]
464 absl_deps = [
Artem Titov94b57c02019-03-21 12:35:10465 "//third_party/abseil-cpp/absl/strings",
Jonas Olsson6b1985d2018-07-05 09:59:48466 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 13:40:10467 ]
468}
469
Mirko Bonadei86d053c2019-10-17 19:32:04470rtc_library("audio_format_to_string") {
Jonas Olsson74395342018-04-03 10:22:07471 sources = [
472 "strings/audio_format_to_string.cc",
473 "strings/audio_format_to_string.h",
474 ]
475 deps = [
476 ":stringutils",
477 "../api/audio_codecs:audio_codecs_api",
478 ]
479}
480
Patrik Höglund3e113432017-12-15 13:40:10481rtc_source_set("type_traits") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10482 sources = [ "type_traits.h" ]
Patrik Höglund3e113432017-12-15 13:40:10483}
484
Mirko Bonadei86d053c2019-10-17 19:32:04485rtc_library("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53486 visibility = [ "*" ]
nisse75dd6d42017-09-19 15:28:00487 sources = [
Danil Chapovalov07a4f2b2019-03-05 18:58:28488 "task_queue.cc",
nisse75dd6d42017-09-19 15:28:00489 "task_queue.h",
490 ]
perkj650fdae2017-08-25 12:00:11491 deps = [
Tommi8d2c5a82018-03-19 10:12:48492 ":macromagic",
Danil Chapovalov959e9b62019-01-14 13:29:18493 "../api/task_queue",
Mirko Bonadei3d255302018-10-11 08:50:45494 "system:rtc_export",
Danil Chapovalov3b548dd2019-03-01 13:58:44495 "task_utils:to_queued_task",
perkj650fdae2017-08-25 12:00:11496 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41497 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Danil Chapovalov07a4f2b2019-03-05 18:58:28498}
499
Henrik Boström27c29362019-10-21 13:21:55500rtc_source_set("rtc_operations_chain") {
501 visibility = [ "*" ]
502 sources = [
503 "operations_chain.cc",
504 "operations_chain.h",
505 ]
506 deps = [
507 ":checks",
508 ":macromagic",
509 ":refcount",
Niels Möller95129102022-01-13 10:00:05510 "../api:refcountedbase",
Henrik Boström27c29362019-10-21 13:21:55511 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24512 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42513 "system:no_unique_address",
Henrik Boström27c29362019-10-21 13:21:55514 ]
Henrik Boströme574a312020-08-25 08:20:11515 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Henrik Boström27c29362019-10-21 13:21:55516}
517
Tommi8d2c5a82018-03-19 10:12:48518if (rtc_enable_libevent) {
Mirko Bonadei86d053c2019-10-17 19:32:04519 rtc_library("rtc_task_queue_libevent") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28520 visibility = [ "../api/task_queue:default_task_queue_factory" ]
perkj650fdae2017-08-25 12:00:11521 sources = [
Niels Möller15c9cf72017-10-19 10:38:09522 "task_queue_libevent.cc",
Danil Chapovaloveb175242019-02-12 09:44:38523 "task_queue_libevent.h",
perkj650fdae2017-08-25 12:00:11524 ]
Tommi8d2c5a82018-03-19 10:12:48525 deps = [
526 ":checks",
Tommi8d2c5a82018-03-19 10:12:48527 ":logging",
Yves Gerey2e00abc2018-10-05 13:39:24528 ":macromagic",
Tommi8d2c5a82018-03-19 10:12:48529 ":platform_thread",
Yves Gerey2e00abc2018-10-05 13:39:24530 ":platform_thread_types",
Tommi8d2c5a82018-03-19 10:12:48531 ":safe_conversions",
532 ":timeutils",
Danil Chapovaloveb175242019-02-12 09:44:38533 "../api/task_queue",
Markus Handell18523c32020-07-08 15:55:58534 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41535 ]
536 absl_deps = [
Steve Anton9a83dd72020-01-09 19:03:25537 "//third_party/abseil-cpp/absl/container:inlined_vector",
Danil Chapovaloveb175242019-02-12 09:44:38538 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48539 ]
540 if (rtc_build_libevent) {
541 deps += [ "//base/third_party/libevent" ]
542 }
543 }
544}
545
546if (is_mac || is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04547 rtc_library("rtc_task_queue_gcd") {
Byoungchan Lee08438fc2021-10-12 13:53:35548 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48549 sources = [
550 "task_queue_gcd.cc",
Danil Chapovalov47cf5ea2019-02-19 19:20:16551 "task_queue_gcd.h",
Tommi8d2c5a82018-03-19 10:12:48552 ]
553 deps = [
554 ":checks",
555 ":logging",
Danil Chapovalov47cf5ea2019-02-19 19:20:16556 "../api/task_queue",
Markus Handell18523c32020-07-08 15:55:58557 "synchronization:mutex",
Yura Yaroshevichebf739b2020-03-16 15:00:59558 "system:gcd_helpers",
Tommi8d2c5a82018-03-19 10:12:48559 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41560 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Tommi8d2c5a82018-03-19 10:12:48561 }
562}
563
564if (is_win) {
Mirko Bonadei86d053c2019-10-17 19:32:04565 rtc_library("rtc_task_queue_win") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28566 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48567 sources = [
568 "task_queue_win.cc",
Danil Chapovalov826f2e72019-02-20 17:13:09569 "task_queue_win.h",
Tommi8d2c5a82018-03-19 10:12:48570 ]
571 deps = [
572 ":checks",
Tommi8d2c5a82018-03-19 10:12:48573 ":logging",
574 ":macromagic",
575 ":platform_thread",
Tommi8d2c5a82018-03-19 10:12:48576 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48577 ":safe_conversions",
578 ":timeutils",
Danil Chapovalov826f2e72019-02-20 17:13:09579 "../api/task_queue",
Markus Handell18523c32020-07-08 15:55:58580 "synchronization:mutex",
Tommi8d2c5a82018-03-19 10:12:48581 ]
Markus Handellad5037b2021-05-07 13:02:36582 absl_deps = [
583 "//third_party/abseil-cpp/absl/strings",
584 "//third_party/abseil-cpp/absl/types:optional",
585 ]
Tommi8d2c5a82018-03-19 10:12:48586 }
587}
588
Mirko Bonadei86d053c2019-10-17 19:32:04589rtc_library("rtc_task_queue_stdlib") {
Robin Raymond22027b92018-11-23 14:07:50590 sources = [
591 "task_queue_stdlib.cc",
Danil Chapovalovfa52efa2019-02-21 10:13:58592 "task_queue_stdlib.h",
Robin Raymond22027b92018-11-23 14:07:50593 ]
594 deps = [
595 ":checks",
Robin Raymond22027b92018-11-23 14:07:50596 ":logging",
597 ":macromagic",
598 ":platform_thread",
Robin Raymond22027b92018-11-23 14:07:50599 ":rtc_event",
Robin Raymond22027b92018-11-23 14:07:50600 ":safe_conversions",
601 ":timeutils",
Danil Chapovalovfa52efa2019-02-21 10:13:58602 "../api/task_queue",
Markus Handell18523c32020-07-08 15:55:58603 "synchronization:mutex",
Robin Raymond22027b92018-11-23 14:07:50604 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41605 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Robin Raymond22027b92018-11-23 14:07:50606}
607
Mirko Bonadei86d053c2019-10-17 19:32:04608rtc_library("weak_ptr") {
Henrik Kjellanderc0362762017-06-29 06:03:04609 sources = [
610 "weak_ptr.cc",
611 "weak_ptr.h",
612 ]
613 deps = [
Tommi8d2c5a82018-03-19 10:12:48614 ":refcount",
Mirko Bonadeid9708072019-01-25 19:26:48615 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24616 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42617 "system:no_unique_address",
Henrik Kjellanderc0362762017-06-29 06:03:04618 ]
619}
620
Mirko Bonadei86d053c2019-10-17 19:32:04621rtc_library("rtc_numerics") {
Henrik Kjellanderc0362762017-06-29 06:03:04622 sources = [
Jonas Oreland63dced92019-11-25 12:00:15623 "numerics/event_based_exponential_moving_average.cc",
624 "numerics/event_based_exponential_moving_average.h",
Henrik Kjellanderc0362762017-06-29 06:03:04625 "numerics/exp_filter.cc",
626 "numerics/exp_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48627 "numerics/math_utils.h",
Ilya Nikolaevskiy26341992018-11-05 11:55:18628 "numerics/moving_average.cc",
629 "numerics/moving_average.h",
Ilya Nikolaevskiyb9685752017-11-01 13:01:00630 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 06:03:04631 "numerics/percentile_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48632 "numerics/running_statistics.h",
Bjorn Tereliusa194e582017-10-25 11:07:09633 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 06:03:04634 ]
635 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42636 ":checks",
Henrik Kjellanderc0362762017-06-29 06:03:04637 ":rtc_base_approved",
Artem Titov9d777622020-09-18 16:23:08638 ]
639 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
640}
641
642rtc_library("rtc_stats_counters") {
643 sources = [
644 "numerics/event_rate_counter.cc",
645 "numerics/event_rate_counter.h",
646 "numerics/sample_stats.cc",
647 "numerics/sample_stats.h",
648 ]
649 deps = [
650 "../api/numerics",
Sebastian Janssonefa3f762019-12-02 06:19:55651 "../api/units:data_rate",
652 "../api/units:time_delta",
Artem Titov6fcdbc12019-09-11 09:45:40653 "../api/units:timestamp",
Mirko Bonadei2dcf3482020-06-05 12:30:41654 ]
Artem Titov9d777622020-09-18 16:23:08655 absl_deps = []
Henrik Kjellanderc0362762017-06-29 06:03:04656}
657
Mirko Bonadei65643662019-07-12 11:29:30658config("rtc_json_suppressions") {
Mirko Bonadei94077762019-06-27 09:24:25659 if (!is_win || is_clang) {
Mirko Bonadei65643662019-07-12 11:29:30660 cflags_cc = [
Mirko Bonadei1cd6f322019-07-12 19:47:47661 # TODO(bugs.webrtc.org/10814): Remove -Wno-undef as soon as it get
Mirko Bonadei65643662019-07-12 11:29:30662 # removed upstream.
663 "-Wno-undef",
664 ]
Mirko Bonadei94077762019-06-27 09:24:25665 }
666}
667
Mirko Bonadei86d053c2019-10-17 19:32:04668rtc_library("rtc_json") {
Mirko Bonadei65643662019-07-12 11:29:30669 public_configs = [ ":rtc_json_suppressions" ]
Sam Zackrisson492fdf42019-10-25 08:45:58670 poisonous = [ "rtc_json" ]
Henrik Kjellanderc0362762017-06-29 06:03:04671 defines = []
672 sources = [
Sam Zackrissonb45bdb52018-10-02 14:25:59673 "strings/json.cc",
674 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 06:03:04675 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10676 deps = [ ":stringutils" ]
Mirko Bonadeia0e29fc2018-01-26 15:50:02677 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 06:03:04678 if (rtc_build_json) {
Harald Alvestrand13799132020-03-09 18:39:36679 public_deps = # no-presubmit-check TODO(webrtc:8603)
680 [ "//third_party/jsoncpp" ]
Henrik Kjellanderc0362762017-06-29 06:03:04681 } else {
682 include_dirs = [ "$rtc_jsoncpp_root" ]
683
684 # When defined changes the include path for json.h to where it is
685 # expected to be when building json outside of the standalone build.
686 defines += [ "WEBRTC_EXTERNAL_JSON" ]
687 }
Ali Tofigh7fa90572022-03-17 14:47:49688 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Henrik Kjellanderc0362762017-06-29 06:03:04689}
690
Mirko Bonadeie5f4c6b2021-01-15 09:41:01691rtc_library("net_helpers") {
692 sources = [
693 "net_helpers.cc",
694 "net_helpers.h",
695 ]
696 deps = []
697 if (is_android) {
698 deps += [ ":ifaddrs_android" ]
699 }
700 if (is_win) {
Nico Weber79bd4f12021-10-05 19:01:26701 deps += [
702 ":rtc_base_approved",
703 ":win32",
704 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01705 }
Ali Tofigh2ab914c2022-04-13 10:55:15706 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45707}
708
Mirko Bonadeie5f4c6b2021-01-15 09:41:01709rtc_library("async_resolver_interface") {
Karl Wiberg02f4e322019-02-10 23:43:43710 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01711 sources = [
712 "async_resolver_interface.cc",
713 "async_resolver_interface.h",
714 ]
715 deps = [
716 ":socket_address",
717 "system:rtc_export",
718 "third_party/sigslot",
719 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45720}
721
Mirko Bonadeie5f4c6b2021-01-15 09:41:01722rtc_library("ip_address") {
Karl Wiberg02f4e322019-02-10 23:43:43723 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01724 sources = [
725 "ip_address.cc",
726 "ip_address.h",
727 ]
728 deps = [
729 ":net_helpers",
730 ":rtc_base_approved",
731 ":stringutils",
732 "system:rtc_export",
733 ]
734 if (is_win) {
735 deps += [ ":win32" ]
736 }
Ali Tofigh7fa90572022-03-17 14:47:49737 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45738}
739
Mirko Bonadeie5f4c6b2021-01-15 09:41:01740rtc_library("socket_address") {
Karl Wiberg02f4e322019-02-10 23:43:43741 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01742 sources = [
743 "socket_address.cc",
744 "socket_address.h",
745 ]
746 deps = [
747 ":checks",
748 ":ip_address",
749 ":logging",
750 ":net_helpers",
751 ":rtc_base_approved",
752 ":safe_conversions",
753 ":stringutils",
754 "system:rtc_export",
755 ]
756 if (is_win) {
757 deps += [ ":win32" ]
758 }
Ali Tofigh7fa90572022-03-17 14:47:49759 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45760}
761
Mirko Bonadeie5f4c6b2021-01-15 09:41:01762rtc_library("null_socket_server") {
763 sources = [
764 "null_socket_server.cc",
765 "null_socket_server.h",
766 ]
767 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:01768 ":checks",
769 ":rtc_event",
770 ":socket",
771 ":socket_server",
772 "system:rtc_export",
773 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45774}
775
Karl Wiberg28522dc2019-01-22 16:54:34776rtc_source_set("socket_server") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01777 sources = [ "socket_server.h" ]
778 deps = [ ":socket_factory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45779}
780
Mirko Bonadeie5f4c6b2021-01-15 09:41:01781rtc_library("threading") {
Karl Wiberg02f4e322019-02-10 23:43:43782 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01783
Mirko Bonadeie5f4c6b2021-01-15 09:41:01784 sources = [
785 "async_resolver.cc",
786 "async_resolver.h",
787 "internal/default_socket_server.cc",
788 "internal/default_socket_server.h",
789 "message_handler.cc",
790 "message_handler.h",
791 "network_monitor.cc",
792 "network_monitor.h",
793 "network_monitor_factory.cc",
794 "network_monitor_factory.h",
795 "physical_socket_server.cc",
796 "physical_socket_server.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01797 "thread.cc",
798 "thread.h",
799 "thread_message.h",
800 ]
Henrik Boström2deee4b2022-01-20 10:58:05801 absl_deps = [
802 "//third_party/abseil-cpp/absl/algorithm:container",
803 "//third_party/abseil-cpp/absl/base:core_headers",
Ali Tofigh7fa90572022-03-17 14:47:49804 "//third_party/abseil-cpp/absl/strings",
Henrik Boström2deee4b2022-01-20 10:58:05805 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01806 deps = [
807 ":async_resolver_interface",
808 ":atomicops",
809 ":checks",
810 ":criticalsection",
811 ":ip_address",
812 ":logging",
813 ":macromagic",
814 ":network_constants",
815 ":null_socket_server",
816 ":platform_thread_types",
Florent Castellif86f6f92022-04-05 00:54:12817 ":refcount",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01818 ":rtc_base_approved",
819 ":rtc_event",
820 ":rtc_task_queue",
821 ":socket_address",
822 ":socket_server",
823 ":timeutils",
824 "../api:function_view",
Markus Handell1366b0f2021-04-21 08:22:34825 "../api:refcountedbase",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01826 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24827 "../api:sequence_checker",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01828 "../api/task_queue",
Niels Möller6d176022021-02-09 13:44:48829 "synchronization:mutex",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01830 "system:no_unique_address",
831 "system:rtc_export",
832 "task_utils:pending_task_safety_flag",
833 "task_utils:to_queued_task",
834 "third_party/sigslot",
835 ]
836 if (is_android) {
837 deps += [ ":ifaddrs_android" ]
838 }
839 if (is_win) {
840 deps += [ ":win32" ]
841 }
842 if (is_mac || is_ios) {
Byoungchan Lee08438fc2021-10-12 13:53:35843 deps += [ "system:cocoa_threading" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01844 }
Karl Wiberg0b6d0e62018-12-06 13:50:45845}
846
Karl Wiberg28522dc2019-01-22 16:54:34847rtc_source_set("socket_factory") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01848 sources = [ "socket_factory.h" ]
Niels Möllerd0b88792021-08-12 08:32:30849 deps = [ ":socket" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45850}
851
Mirko Bonadeie5f4c6b2021-01-15 09:41:01852rtc_library("async_socket") {
853 sources = [
854 "async_socket.cc",
855 "async_socket.h",
856 ]
857 deps = [
858 ":checks",
859 ":socket",
860 ":socket_address",
861 "third_party/sigslot",
862 ]
Niels Möller8729d782021-08-11 09:22:44863 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45864}
865
Mirko Bonadeie5f4c6b2021-01-15 09:41:01866rtc_library("socket") {
867 sources = [
868 "socket.cc",
869 "socket.h",
870 ]
871 deps = [
872 ":macromagic",
873 ":socket_address",
Niels Möllerd0b88792021-08-12 08:32:30874 "third_party/sigslot",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01875 ]
876 if (is_win) {
877 deps += [ ":win32" ]
878 }
Karl Wiberg0b6d0e62018-12-06 13:50:45879}
880
881rtc_source_set("network_constants") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01882 sources = [
883 "network_constants.cc",
884 "network_constants.h",
885 ]
886 deps = [ ":checks" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45887}
888
889if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01890 rtc_library("ifaddrs_android") {
891 sources = [
892 "ifaddrs_android.cc",
893 "ifaddrs_android.h",
894 ]
895 libs = [
896 "log",
897 "GLESv2",
898 ]
Danil Chapovalove6106102022-02-16 11:29:02899 absl_deps = [ "//third_party/abseil-cpp/absl/cleanup" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45900 }
901}
902
903if (is_win) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01904 rtc_library("win32") {
Tommi16db7ff2020-09-26 09:57:26905 sources = [
906 "win32.cc",
907 "win32.h",
908 "win32_window.cc",
909 "win32_window.h",
910 ]
911
912 deps = [
913 ":checks",
Florent Castelli0af55ba2022-04-04 13:06:30914 ":logging",
Tommi16db7ff2020-09-26 09:57:26915 ":macromagic",
916 ":rtc_base_approved",
Florent Castelli57aa81b2022-04-04 15:14:02917 ":stringutils",
Tommi16db7ff2020-09-26 09:57:26918 ]
919
920 libs = [
921 "crypt32.lib",
922 "iphlpapi.lib",
923 "secur32.lib",
924 ]
925
926 defines = [ "_CRT_NONSTDC_NO_DEPRECATE" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45927 }
928}
929
Mirko Bonadei86d053c2019-10-17 19:32:04930rtc_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53931 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 06:03:04932 cflags = []
933 cflags_cc = []
934 libs = []
935 defines = []
936 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:01937 ":async_resolver_interface",
938 ":async_socket",
Tomas Gunnarssonf15189d2022-04-13 09:03:52939 ":callback_list",
Patrik Höglunda8005cf2017-12-13 15:05:42940 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01941 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:30942 ":logging",
Florent Castelli4467ad72022-04-04 13:18:46943 ":macromagic",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01944 ":network_constants",
945 ":null_socket_server",
Florent Castellif86f6f92022-04-05 00:54:12946 ":refcount",
Florent Castelli33d31fb2022-04-04 14:57:52947 ":rtc_event",
Markus Handellfbf4ad22020-05-26 16:43:55948 ":rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:37949 ":safe_conversions",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01950 ":socket",
951 ":socket_address",
952 ":socket_factory",
953 ":socket_server",
Patrik Höglund3e113432017-12-15 13:40:10954 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01955 ":threading",
Florent Castellidd837e22022-04-04 15:16:15956 ":timeutils",
Joachim Bauch58daf402017-12-21 21:00:34957 "../api:array_view",
Jonas Orelande62c2f22022-03-29 09:04:48958 "../api:field_trials_view",
Danil Chapovalov89313452019-11-29 11:56:43959 "../api:function_view",
Tommi86ee89f2021-04-20 14:58:01960 "../api:refcountedbase",
Mirko Bonadeid9708072019-01-25 19:26:48961 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24962 "../api:sequence_checker",
Artem Titov9d777622020-09-18 16:23:08963 "../api/numerics",
Danil Chapovalov912b3b82019-11-22 14:52:40964 "../api/task_queue",
Jonas Orelandc06fe8b2022-03-28 12:58:26965 "../api/transport:field_trial_based_config",
Harald Alvestrand13799132020-03-09 18:39:36966 "../system_wrappers:field_trial",
Jonas Orelandc06fe8b2022-03-28 12:58:26967 "memory:always_valid_pointer",
Sebastian Janssone07864e2018-10-15 07:28:15968 "network:sent_packet",
Markus Handell18523c32020-07-08 15:55:58969 "synchronization:mutex",
Niels Möller23213d92019-01-22 10:01:24970 "system:file_wrapper",
Jonas Oreland71fda362020-03-20 15:11:56971 "system:inline",
Mirko Bonadei20e4c802020-11-23 10:07:42972 "system:no_unique_address",
Mirko Bonadei35214fc2019-09-23 12:54:28973 "system:rtc_export",
Markus Handellfbf4ad22020-05-26 16:43:55974 "task_utils:pending_task_safety_flag",
Tommi04482982020-10-05 12:43:53975 "task_utils:repeating_task",
Sebastian Janssonda7267a2020-03-03 09:48:05976 "task_utils:to_queued_task",
Artem Titova76af0c2018-07-23 15:38:12977 "third_party/base64",
Artem Titove41c4332018-07-25 13:04:28978 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:41979 ]
980 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:30981 "//third_party/abseil-cpp/absl/algorithm:container",
Taylor Brandstetter7b69a442020-08-20 23:43:13982 "//third_party/abseil-cpp/absl/container:flat_hash_map",
Karl Wiberg918f50c2018-07-05 09:40:33983 "//third_party/abseil-cpp/absl/memory",
Niels Möller3c7d5992018-10-19 13:29:54984 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0a1d1892018-06-21 09:48:25985 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 06:03:04986 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10987 public_deps = [ ":rtc_base_approved" ] # no-presubmit-check TODO(webrtc:8603)
Henrik Kjellanderc0362762017-06-29 06:03:04988 public_configs = []
989
Henrik Kjellanderc0362762017-06-29 06:03:04990 sources = [
Steve Anton10542f22019-01-11 17:11:00991 "async_invoker.cc",
992 "async_invoker.h",
993 "async_invoker_inl.h",
994 "async_packet_socket.cc",
995 "async_packet_socket.h",
Steve Anton10542f22019-01-11 17:11:00996 "async_tcp_socket.cc",
997 "async_tcp_socket.h",
998 "async_udp_socket.cc",
999 "async_udp_socket.h",
Henrik Kjellanderc0362762017-06-29 06:03:041000 "crc32.cc",
1001 "crc32.h",
Steve Anton10542f22019-01-11 17:11:001002 "crypt_string.cc",
1003 "crypt_string.h",
Sebastian Janssonf9c5cf62018-02-28 15:04:261004 "data_rate_limiter.cc",
1005 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 10:50:211006 "dscp.h",
Steve Anton10542f22019-01-11 17:11:001007 "file_rotating_stream.cc",
1008 "file_rotating_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041009 "helpers.cc",
1010 "helpers.h",
Steve Anton10542f22019-01-11 17:11:001011 "http_common.cc",
1012 "http_common.h",
Qingsi Wang09619332018-09-13 05:51:551013 "mdns_responder_interface.h",
Steve Anton10542f22019-01-11 17:11:001014 "message_digest.cc",
1015 "message_digest.h",
Steve Anton10542f22019-01-11 17:11:001016 "net_helper.cc",
1017 "net_helper.h",
Henrik Kjellanderc0362762017-06-29 06:03:041018 "network.cc",
1019 "network.h",
henrikaf0dc5c52020-04-09 16:46:001020 "network_route.cc",
Steve Anton10542f22019-01-11 17:11:001021 "network_route.h",
Henrik Kjellanderc0362762017-06-29 06:03:041022 "openssl.h",
Steve Anton10542f22019-01-11 17:11:001023 "openssl_adapter.cc",
1024 "openssl_adapter.h",
Steve Anton10542f22019-01-11 17:11:001025 "openssl_digest.cc",
1026 "openssl_digest.h",
Taylor Brandstetter165c6182020-12-11 00:23:031027 "openssl_key_pair.cc",
1028 "openssl_key_pair.h",
Steve Anton10542f22019-01-11 17:11:001029 "openssl_session_cache.cc",
1030 "openssl_session_cache.h",
1031 "openssl_stream_adapter.cc",
1032 "openssl_stream_adapter.h",
1033 "openssl_utility.cc",
1034 "openssl_utility.h",
Steve Anton10542f22019-01-11 17:11:001035 "proxy_info.cc",
1036 "proxy_info.h",
1037 "rtc_certificate.cc",
1038 "rtc_certificate.h",
1039 "rtc_certificate_generator.cc",
1040 "rtc_certificate_generator.h",
Steve Anton10542f22019-01-11 17:11:001041 "sigslot_repeater.h",
Steve Anton10542f22019-01-11 17:11:001042 "socket_adapters.cc",
1043 "socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001044 "socket_address_pair.cc",
1045 "socket_address_pair.h",
Steve Anton10542f22019-01-11 17:11:001046 "ssl_adapter.cc",
1047 "ssl_adapter.h",
1048 "ssl_certificate.cc",
1049 "ssl_certificate.h",
1050 "ssl_fingerprint.cc",
1051 "ssl_fingerprint.h",
1052 "ssl_identity.cc",
1053 "ssl_identity.h",
1054 "ssl_stream_adapter.cc",
1055 "ssl_stream_adapter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041056 "stream.cc",
1057 "stream.h",
Amit Hilbuchdbb49df2019-01-23 22:54:241058 "unique_id_generator.cc",
1059 "unique_id_generator.h",
Henrik Kjellanderc0362762017-06-29 06:03:041060 ]
1061
Taylor Brandstetterc70bd182020-12-11 19:30:431062 # If we are building the SSL library ourselves, we know it's BoringSSL.
1063 if (rtc_build_ssl) {
Taylor Brandstetter165c6182020-12-11 00:23:031064 sources += [
1065 "boringssl_certificate.cc",
1066 "boringssl_certificate.h",
1067 "boringssl_identity.cc",
1068 "boringssl_identity.h",
1069 ]
1070 } else {
1071 sources += [
1072 "openssl_certificate.cc",
1073 "openssl_certificate.h",
1074 "openssl_identity.cc",
1075 "openssl_identity.h",
1076 ]
1077 }
1078
Henrik Kjellanderc0362762017-06-29 06:03:041079 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 06:03:041080 include_dirs = [ "../../boringssl/src/include" ]
Henrik Kjellanderc0362762017-06-29 06:03:041081 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041082 sources += [
Steve Anton10542f22019-01-11 17:11:001083 "log_sinks.cc",
1084 "log_sinks.h",
Steve Anton10542f22019-01-11 17:11:001085 "rolling_accumulator.h",
1086 "ssl_roots.h",
Henrik Kjellanderc0362762017-06-29 06:03:041087 ]
1088
Yves Gerey3dfb6802019-05-13 15:01:321089 deps += [ ":rtc_numerics" ]
1090
Henrik Kjellanderc0362762017-06-29 06:03:041091 if (is_win) {
Steve Antonf3802842019-01-25 03:07:401092 sources += [ "win32_socket_init.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041093 }
1094 } # !build_with_chromium
1095
1096 if (rtc_build_ssl) {
1097 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 15:40:391098 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041099 configs += [ ":external_ssl_library" ]
1100 }
1101
1102 if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011103 deps += [ ":ifaddrs_android" ]
Henrik Kjellanderc0362762017-06-29 06:03:041104 }
1105
1106 if (is_ios || is_mac) {
Steve Anton10542f22019-01-11 17:11:001107 sources += [ "mac_ifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 06:03:041108 }
1109
Hidehiko Abef264e702020-09-10 09:10:111110 if (is_linux || is_chromeos) {
Henrik Kjellanderc0362762017-06-29 06:03:041111 libs += [
1112 "dl",
1113 "rt",
1114 ]
1115 }
1116
Oleh Prypinb3f78de2019-07-18 20:25:481117 if (is_ios) {
Sylvain Defresnec7f0dff2020-07-03 08:19:301118 frameworks = [
Oleh Prypinb3f78de2019-07-18 20:25:481119 "CFNetwork.framework",
1120 "Foundation.framework",
1121 "Security.framework",
1122 "SystemConfiguration.framework",
1123 "UIKit.framework",
1124 ]
Henrik Kjellanderc0362762017-06-29 06:03:041125 }
1126
1127 if (is_win) {
Tommi16db7ff2020-09-26 09:57:261128 deps += [ ":win32" ]
Henrik Kjellanderc0362762017-06-29 06:03:041129 }
1130
Fabrice de Gans-Riberi09a6cd52018-03-30 17:38:061131 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 06:03:041132 sources += [
1133 "ifaddrs_converter.cc",
1134 "ifaddrs_converter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041135 ]
1136 }
1137
1138 if (is_nacl) {
Harald Alvestrand13799132020-03-09 18:39:361139 public_deps += # no-presubmit-check TODO(webrtc:8603)
1140 [ "//native_client_sdk/src/libraries/nacl_io" ]
1141
Henrik Kjellanderc0362762017-06-29 06:03:041142 defines += [ "timezone=_timezone" ]
1143 sources -= [ "ifaddrs_converter.cc" ]
1144 }
Henrik Kjellanderc0362762017-06-29 06:03:041145}
1146
1147rtc_source_set("gtest_prod") {
Mirko Bonadeiccbe95f2020-01-21 11:10:101148 sources = [ "gtest_prod_util.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041149}
1150
Mirko Bonadei86d053c2019-10-17 19:32:041151rtc_library("gunit_helpers") {
Mirko Bonadeie3abb812018-11-23 12:15:081152 testonly = true
1153 sources = [
1154 "gunit.cc",
1155 "gunit.h",
1156 ]
1157 deps = [
1158 ":logging",
1159 ":rtc_base",
1160 ":rtc_base_tests_utils",
1161 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011162 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081163 "../test:test_support",
1164 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411165 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Mirko Bonadeie3abb812018-11-23 12:15:081166}
1167
Mirko Bonadei86d053c2019-10-17 19:32:041168rtc_library("testclient") {
Mirko Bonadeie3abb812018-11-23 12:15:081169 testonly = true
1170 sources = [
Steve Anton10542f22019-01-11 17:11:001171 "test_client.cc",
1172 "test_client.h",
Mirko Bonadeie3abb812018-11-23 12:15:081173 ]
1174 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081175 ":gunit_helpers",
Mirko Bonadeie3abb812018-11-23 12:15:081176 ":rtc_base",
1177 ":rtc_base_tests_utils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011178 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081179 ":timeutils",
Markus Handell18523c32020-07-08 15:55:581180 "synchronization:mutex",
Mirko Bonadeie3abb812018-11-23 12:15:081181 ]
1182}
1183
Mirko Bonadei3d259352020-10-23 10:04:401184rtc_library("callback_list_unittests") {
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211185 testonly = true
1186
Mirko Bonadei3d259352020-10-23 10:04:401187 sources = [ "callback_list_unittest.cc" ]
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211188 deps = [
Mirko Bonadei3d259352020-10-23 10:04:401189 ":callback_list",
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211190 ":gunit_helpers",
1191 ":rtc_base",
1192 "../api:function_view",
1193 "../test:test_support",
1194 ]
1195}
1196
Mirko Bonadei86d053c2019-10-17 19:32:041197rtc_library("rtc_base_tests_utils") {
Henrik Kjellanderc0362762017-06-29 06:03:041198 testonly = true
1199 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041200 "cpu_time.cc",
1201 "cpu_time.h",
Steve Anton10542f22019-01-11 17:11:001202 "fake_clock.cc",
1203 "fake_clock.h",
Qingsi Wang09619332018-09-13 05:51:551204 "fake_mdns_responder.h",
Steve Anton10542f22019-01-11 17:11:001205 "fake_network.h",
1206 "fake_ssl_identity.cc",
1207 "fake_ssl_identity.h",
1208 "firewall_socket_server.cc",
1209 "firewall_socket_server.h",
Niels Möllere7547d52018-11-01 08:33:081210 "memory_stream.cc",
1211 "memory_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041212 "memory_usage.cc",
1213 "memory_usage.h",
Steve Anton10542f22019-01-11 17:11:001214 "nat_server.cc",
1215 "nat_server.h",
1216 "nat_socket_factory.cc",
1217 "nat_socket_factory.h",
1218 "nat_types.cc",
1219 "nat_types.h",
1220 "proxy_server.cc",
1221 "proxy_server.h",
Niels Möller44153152018-12-17 13:04:051222 "server_socket_adapters.cc",
1223 "server_socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001224 "sigslot_tester.h",
Steve Anton10542f22019-01-11 17:11:001225 "socket_stream.cc",
1226 "socket_stream.h",
1227 "test_base64.h",
1228 "test_certificate_verifier.h",
1229 "test_echo_server.cc",
1230 "test_echo_server.h",
1231 "test_utils.cc",
1232 "test_utils.h",
1233 "virtual_socket_server.cc",
1234 "virtual_socket_server.h",
Henrik Kjellanderc0362762017-06-29 06:03:041235 ]
Henrik Kjellanderc0362762017-06-29 06:03:041236 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011237 ":async_socket",
Patrik Höglunda8005cf2017-12-13 15:05:421238 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011239 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301240 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461241 ":macromagic",
Henrik Kjellanderc0362762017-06-29 06:03:041242 ":rtc_base",
Florent Castelli33d31fb2022-04-04 14:57:521243 ":rtc_event",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011244 ":socket",
1245 ":socket_address",
1246 ":socket_factory",
1247 ":socket_server",
Florent Castelli57aa81b2022-04-04 15:14:021248 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011249 ":threading",
Florent Castellidd837e22022-04-04 15:16:151250 ":timeutils",
Sebastian Jansson5f83cf02018-05-08 12:52:221251 "../api/units:time_delta",
Sebastian Janssond624c392019-04-17 08:36:031252 "../api/units:timestamp",
Jonas Orelandc06fe8b2022-03-28 12:58:261253 "../test:scoped_key_value_config",
1254 "memory:always_valid_pointer",
Niels Möller13339482019-03-28 12:30:151255 "memory:fifo_buffer",
Markus Handell18523c32020-07-08 15:55:581256 "synchronization:mutex",
Niels Möllerc964d802021-03-25 08:31:261257 "task_utils:to_queued_task",
Artem Titove41c4332018-07-25 13:04:281258 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411259 ]
1260 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301261 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:331262 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:491263 "//third_party/abseil-cpp/absl/strings",
Henrik Kjellanderc0362762017-06-29 06:03:041264 ]
Henrik Kjellanderc0362762017-06-29 06:03:041265}
1266
Mirko Bonadei86d053c2019-10-17 19:32:041267rtc_library("task_queue_for_test") {
Tommida8781f2018-02-19 11:41:431268 testonly = true
1269
1270 sources = [
1271 "task_queue_for_test.cc",
1272 "task_queue_for_test.h",
1273 ]
1274 deps = [
1275 ":checks",
Florent Castelli4467ad72022-04-04 13:18:461276 ":macromagic",
Danil Chapovaloveb90e6f2019-10-15 08:04:571277 ":rtc_base_approved",
Danil Chapovalovd26a9162019-03-19 17:08:371278 ":rtc_event",
Tommida8781f2018-02-19 11:41:431279 ":rtc_task_queue",
Danil Chapovaloveb90e6f2019-10-15 08:04:571280 "../api/task_queue",
Danil Chapovalovd26a9162019-03-19 17:08:371281 "../api/task_queue:default_task_queue_factory",
Danil Chapovalov1aa75812019-03-05 10:11:351282 "task_utils:to_queued_task",
Tommida8781f2018-02-19 11:41:431283 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411284 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Tommida8781f2018-02-19 11:41:431285}
1286
Henrik Kjellanderc0362762017-06-29 06:03:041287if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:041288 rtc_library("sigslot_unittest") {
Artem Titove41c4332018-07-25 13:04:281289 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:101290 sources = [ "sigslot_unittest.cc" ]
Artem Titove41c4332018-07-25 13:04:281291 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081292 ":gunit_helpers",
Artem Titove41c4332018-07-25 13:04:281293 ":rtc_base",
1294 ":rtc_base_tests_utils",
Yves Gerey3e707812018-11-28 15:47:491295 "../test:test_support",
Markus Handell18523c32020-07-08 15:55:581296 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281297 "third_party/sigslot",
1298 ]
1299 }
1300
Karl Wiberg70026f92020-09-18 08:03:161301 rtc_library("untyped_function_unittest") {
Karl Wiberg78e9acd2020-09-15 09:06:341302 testonly = true
Karl Wiberg70026f92020-09-18 08:03:161303 sources = [ "untyped_function_unittest.cc" ]
Karl Wiberg78e9acd2020-09-15 09:06:341304 deps = [
Karl Wiberg70026f92020-09-18 08:03:161305 ":untyped_function",
Karl Wiberg78e9acd2020-09-15 09:06:341306 "../test:test_support",
1307 ]
1308 }
1309
Henrik Boström27c29362019-10-21 13:21:551310 rtc_library("rtc_operations_chain_unittests") {
1311 testonly = true
1312
Mirko Bonadeiccbe95f2020-01-21 11:10:101313 sources = [ "operations_chain_unittest.cc" ]
Henrik Boström27c29362019-10-21 13:21:551314 deps = [
Henrik Boströme8b00a12020-08-25 15:11:201315 ":gunit_helpers",
Henrik Boström27c29362019-10-21 13:21:551316 ":rtc_base",
1317 ":rtc_base_approved",
1318 ":rtc_event",
1319 ":rtc_operations_chain",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011320 ":threading",
Henrik Boström27c29362019-10-21 13:21:551321 "../test:test_support",
1322 ]
1323 }
1324
Andrey Logvine7c79fd2021-02-01 09:56:371325 if (!build_with_chromium) {
1326 rtc_library("rtc_base_nonparallel_tests") {
1327 testonly = true
Henrik Kjellanderc0362762017-06-29 06:03:041328
Andrey Logvine7c79fd2021-02-01 09:56:371329 sources = [
1330 "cpu_time_unittest.cc",
1331 "file_rotating_stream_unittest.cc",
1332 "null_socket_server_unittest.cc",
1333 "physical_socket_server_unittest.cc",
1334 "socket_address_unittest.cc",
1335 "socket_unittest.cc",
1336 "socket_unittest.h",
Tommi16db7ff2020-09-26 09:57:261337 ]
Andrey Logvine7c79fd2021-02-01 09:56:371338 deps = [
Andrey Logvine7c79fd2021-02-01 09:56:371339 ":checks",
1340 ":gunit_helpers",
1341 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301342 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461343 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371344 ":net_helpers",
1345 ":null_socket_server",
1346 ":rtc_base",
1347 ":rtc_base_tests_utils",
1348 ":socket",
1349 ":socket_address",
1350 ":socket_server",
1351 ":testclient",
1352 ":threading",
Florent Castellidd837e22022-04-04 15:16:151353 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371354 "../system_wrappers",
1355 "../test:fileutils",
1356 "../test:test_main",
1357 "../test:test_support",
1358 "third_party/sigslot",
1359 "//testing/gtest",
1360 ]
Ali Tofigh7fa90572022-03-17 14:47:491361 absl_deps = [
1362 "//third_party/abseil-cpp/absl/memory",
1363 "//third_party/abseil-cpp/absl/strings",
1364 ]
Tommi16db7ff2020-09-26 09:57:261365 }
Andrey Logvine7c79fd2021-02-01 09:56:371366
1367 rtc_library("rtc_base_approved_unittests") {
1368 testonly = true
1369 sources = [
1370 "atomic_ops_unittest.cc",
1371 "base64_unittest.cc",
1372 "bit_buffer_unittest.cc",
Danil Chapovalov5af152c2021-08-31 13:27:511373 "bitstream_reader_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371374 "bounded_inline_vector_unittest.cc",
1375 "buffer_queue_unittest.cc",
1376 "buffer_unittest.cc",
1377 "byte_buffer_unittest.cc",
1378 "byte_order_unittest.cc",
1379 "checks_unittest.cc",
1380 "copy_on_write_buffer_unittest.cc",
1381 "deprecated/recursive_critical_section_unittest.cc",
1382 "event_tracer_unittest.cc",
1383 "event_unittest.cc",
1384 "logging_unittest.cc",
1385 "numerics/divide_round_unittest.cc",
1386 "numerics/histogram_percentile_counter_unittest.cc",
1387 "numerics/mod_ops_unittest.cc",
1388 "numerics/moving_max_counter_unittest.cc",
1389 "numerics/safe_compare_unittest.cc",
1390 "numerics/safe_minmax_unittest.cc",
1391 "numerics/sample_counter_unittest.cc",
1392 "one_time_event_unittest.cc",
1393 "platform_thread_unittest.cc",
1394 "random_unittest.cc",
1395 "rate_limiter_unittest.cc",
1396 "rate_statistics_unittest.cc",
1397 "rate_tracker_unittest.cc",
1398 "ref_counted_object_unittest.cc",
1399 "sanitizer_unittest.cc",
1400 "string_encode_unittest.cc",
1401 "string_to_number_unittest.cc",
1402 "string_utils_unittest.cc",
1403 "strings/string_builder_unittest.cc",
1404 "strings/string_format_unittest.cc",
Victor Boivieb9182302021-09-21 12:51:051405 "strong_alias_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371406 "swap_queue_unittest.cc",
1407 "thread_annotations_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371408 "time_utils_unittest.cc",
1409 "timestamp_aligner_unittest.cc",
1410 "virtual_socket_unittest.cc",
1411 "zero_memory_unittest.cc",
1412 ]
1413 if (is_win) {
1414 sources += [ "win/windows_version_unittest.cc" ]
1415 }
1416 deps = [
Florent Castellibddfe022022-04-04 13:03:101417 ":atomicops",
Danil Chapovalov5af152c2021-08-31 13:27:511418 ":bitstream_reader",
Andrey Logvine7c79fd2021-02-01 09:56:371419 ":bounded_inline_vector",
1420 ":checks",
Niels Möller9233af32021-06-22 09:24:061421 ":criticalsection",
Andrey Logvine7c79fd2021-02-01 09:56:371422 ":divide_round",
1423 ":gunit_helpers",
1424 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301425 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461426 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371427 ":null_socket_server",
1428 ":rate_limiter",
Florent Castellif86f6f92022-04-05 00:54:121429 ":refcount",
Andrey Logvine7c79fd2021-02-01 09:56:371430 ":rtc_base",
1431 ":rtc_base_approved",
1432 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521433 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371434 ":rtc_numerics",
1435 ":rtc_task_queue",
1436 ":safe_compare",
1437 ":safe_minmax",
1438 ":sanitizer",
1439 ":socket",
1440 ":socket_address",
1441 ":socket_server",
1442 ":stringutils",
1443 ":testclient",
1444 ":threading",
Florent Castellidd837e22022-04-04 15:16:151445 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371446 "../api:array_view",
1447 "../api:scoped_refptr",
1448 "../api/numerics",
1449 "../api/units:time_delta",
1450 "../system_wrappers",
1451 "../test:fileutils",
1452 "../test:test_main",
1453 "../test:test_support",
Nico Weber79bd4f12021-10-05 19:01:261454 "containers:flat_map",
Victor Boiviefd954fc2021-06-29 07:21:111455 "containers:unittests",
Andrey Logvine7c79fd2021-02-01 09:56:371456 "memory:unittests",
1457 "synchronization:mutex",
1458 "task_utils:to_queued_task",
1459 "third_party/base64",
1460 "third_party/sigslot",
1461 ]
1462 absl_deps = [
1463 "//third_party/abseil-cpp/absl/base:core_headers",
1464 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov5af152c2021-08-31 13:27:511465 "//third_party/abseil-cpp/absl/numeric:bits",
Ali Tofigh6364d082022-03-14 12:32:041466 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:361467 "//third_party/abseil-cpp/absl/types:optional",
Tommi16db7ff2020-09-26 09:57:261468 ]
1469 }
Andrey Logvine7c79fd2021-02-01 09:56:371470
1471 rtc_library("rtc_task_queue_unittests") {
1472 testonly = true
1473
1474 sources = [ "task_queue_unittest.cc" ]
1475 deps = [
1476 ":gunit_helpers",
1477 ":rtc_base_approved",
1478 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521479 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371480 ":rtc_task_queue",
1481 ":task_queue_for_test",
Florent Castellidd837e22022-04-04 15:16:151482 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371483 "../test:test_main",
1484 "../test:test_support",
1485 ]
1486 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Diogo Real1dca9d52017-08-29 19:18:321487 }
Andrey Logvine7c79fd2021-02-01 09:56:371488
1489 rtc_library("weak_ptr_unittests") {
1490 testonly = true
1491
1492 sources = [ "weak_ptr_unittest.cc" ]
1493 deps = [
1494 ":gunit_helpers",
1495 ":rtc_base_approved",
1496 ":rtc_base_tests_utils",
1497 ":rtc_event",
1498 ":task_queue_for_test",
1499 ":weak_ptr",
1500 "../test:test_main",
1501 "../test:test_support",
1502 ]
1503 }
1504
1505 rtc_library("rtc_numerics_unittests") {
1506 testonly = true
1507
1508 sources = [
1509 "numerics/event_based_exponential_moving_average_unittest.cc",
1510 "numerics/exp_filter_unittest.cc",
1511 "numerics/moving_average_unittest.cc",
1512 "numerics/moving_median_filter_unittest.cc",
1513 "numerics/percentile_filter_unittest.cc",
1514 "numerics/running_statistics_unittest.cc",
1515 "numerics/sequence_number_util_unittest.cc",
1516 ]
1517 deps = [
1518 ":rtc_base_approved",
1519 ":rtc_numerics",
1520 "../test:test_main",
1521 "../test:test_support",
1522 ]
1523 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
1524 }
1525
1526 rtc_library("rtc_json_unittests") {
1527 testonly = true
1528
1529 sources = [ "strings/json_unittest.cc" ]
1530 deps = [
1531 ":gunit_helpers",
1532 ":rtc_base_tests_utils",
1533 ":rtc_json",
1534 "../test:test_main",
1535 "../test:test_support",
1536 ]
1537 }
1538
1539 rtc_library("rtc_base_unittests") {
1540 testonly = true
1541 defines = []
1542
1543 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371544 "crc32_unittest.cc",
1545 "data_rate_limiter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371546 "fake_clock_unittest.cc",
1547 "helpers_unittest.cc",
1548 "ip_address_unittest.cc",
1549 "memory_usage_unittest.cc",
1550 "message_digest_unittest.cc",
1551 "nat_unittest.cc",
1552 "network_route_unittest.cc",
1553 "network_unittest.cc",
1554 "proxy_unittest.cc",
1555 "rolling_accumulator_unittest.cc",
1556 "rtc_certificate_generator_unittest.cc",
1557 "rtc_certificate_unittest.cc",
1558 "sigslot_tester_unittest.cc",
1559 "test_client_unittest.cc",
1560 "thread_unittest.cc",
1561 "unique_id_generator_unittest.cc",
1562 ]
1563 deps = [
Florent Castellibddfe022022-04-04 13:03:101564 ":atomicops",
Andrey Logvine7c79fd2021-02-01 09:56:371565 ":checks",
1566 ":gunit_helpers",
1567 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301568 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461569 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371570 ":net_helpers",
1571 ":null_socket_server",
Florent Castellif86f6f92022-04-05 00:54:121572 ":refcount",
Andrey Logvine7c79fd2021-02-01 09:56:371573 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521574 ":rtc_event",
Florent Castellie10a9f62022-04-04 15:04:371575 ":safe_conversions",
Niels Möllerd0b88792021-08-12 08:32:301576 ":socket",
Andrey Logvine7c79fd2021-02-01 09:56:371577 ":socket_address",
1578 ":socket_factory",
1579 ":socket_server",
1580 ":stringutils",
1581 ":testclient",
1582 ":threading",
Florent Castellidd837e22022-04-04 15:16:151583 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371584 "../api:array_view",
1585 "../api/task_queue",
1586 "../api/task_queue:task_queue_test",
1587 "../test:field_trial",
1588 "../test:fileutils",
1589 "../test:rtc_expect_death",
Jonas Orelandc06fe8b2022-03-28 12:58:261590 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:371591 "../test:test_main",
1592 "../test:test_support",
1593 "memory:fifo_buffer",
1594 "synchronization:mutex",
1595 "task_utils:pending_task_safety_flag",
1596 "task_utils:to_queued_task",
1597 "third_party/sigslot",
1598 ]
1599 if (enable_google_benchmarks) {
1600 deps += [ "synchronization:synchronization_unittests" ]
1601 }
1602 if (is_win) {
1603 sources += [
1604 "win32_unittest.cc",
1605 "win32_window_unittest.cc",
1606 ]
1607 deps += [ ":win32" ]
1608 }
1609 if (is_posix || is_fuchsia) {
1610 sources += [
1611 "openssl_adapter_unittest.cc",
1612 "openssl_session_cache_unittest.cc",
1613 "openssl_utility_unittest.cc",
1614 "ssl_adapter_unittest.cc",
1615 "ssl_identity_unittest.cc",
1616 "ssl_stream_adapter_unittest.cc",
1617 ]
1618 }
1619 absl_deps = [
1620 "//third_party/abseil-cpp/absl/algorithm:container",
1621 "//third_party/abseil-cpp/absl/memory",
1622 "//third_party/abseil-cpp/absl/strings",
1623 "//third_party/abseil-cpp/absl/types:optional",
1624 ]
1625 public_deps = [ ":rtc_base" ] # no-presubmit-check TODO(webrtc:8603)
1626 if (build_with_chromium) {
1627 include_dirs = [ "../../boringssl/src/include" ]
1628 }
1629 if (rtc_build_ssl) {
1630 deps += [ "//third_party/boringssl" ]
1631 } else {
1632 configs += [ ":external_ssl_library" ]
1633 }
Diogo Real1dca9d52017-08-29 19:18:321634 }
Henrik Kjellanderc0362762017-06-29 06:03:041635 }
1636}
1637
Henrik Kjellander73e21802017-06-20 06:38:581638if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:331639 rtc_android_library("base_java") {
Sami Kalliomäki51f599b2019-07-03 12:13:081640 visibility = [ "*" ]
Natalie Chouinard65bbcab2019-12-23 22:02:251641 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041642 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 12:31:381643 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 06:03:041644 "java/src/org/webrtc/Logging.java",
1645 "java/src/org/webrtc/Size.java",
1646 "java/src/org/webrtc/ThreadUtils.java",
1647 ]
Byoungchan Lee02334e02021-08-14 02:41:591648 deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
Henrik Kjellander73e21802017-06-20 06:38:581649 }
Jonas Orelandf7721fb2020-08-07 09:08:341650 java_cpp_enum("network_monitor_enums") {
1651 sources = [ "network_monitor.h" ]
Jonas Orelandfe4688e2020-08-07 12:08:331652 visibility = [ "*" ]
Jonas Orelandf7721fb2020-08-07 09:08:341653 }
Henrik Kjellander73e21802017-06-20 06:38:581654}