blob: 80839cf8729b68dd171a2503c866aebbd18df184 [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
Florent Castellif9c59842022-04-19 15:07:2378rtc_source_set("buffer") {
79 visibility = [ "*" ]
80 sources = [ "buffer.h" ]
81 deps = [
82 ":checks",
83 ":type_traits",
84 ":zero_memory",
85 "../api:array_view",
86 ]
87 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
88}
89
Florent Castellia876a922022-04-19 15:18:3690rtc_source_set("byte_order") {
91 visibility = [ "*" ]
92 sources = [ "byte_order.h" ]
93 deps = [ "system:arch" ]
94}
95
Florent Castelli31764092022-04-14 11:41:5896rtc_source_set("mod_ops") {
97 visibility = [ "*" ]
98 sources = [ "numerics/mod_ops.h" ]
99 deps = [ ":checks" ]
100}
101
102rtc_source_set("moving_max_counter") {
103 visibility = [ "*" ]
104 sources = [ "numerics/moving_max_counter.h" ]
105 deps = [ ":checks" ]
106 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
107}
108
Florent Castelli6b608592022-04-14 11:18:04109rtc_source_set("one_time_event") {
110 visibility = [ "*" ]
111 sources = [ "one_time_event.h" ]
112 deps = [ "synchronization:mutex" ]
113}
114
Florent Castellia6c10e32022-04-14 11:08:44115rtc_source_set("strong_alias") {
116 visibility = [ "*" ]
117 sources = [ "strong_alias.h" ]
118}
119
Florent Castellid119b9e2022-04-14 11:23:51120rtc_source_set("swap_queue") {
121 visibility = [ "*" ]
122 sources = [ "swap_queue.h" ]
123 deps = [ ":checks" ]
124 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
125}
126
Tommi8d2c5a82018-03-19 10:12:48127rtc_source_set("macromagic") {
128 sources = [
129 "arraysize.h",
Tommi8d2c5a82018-03-19 10:12:48130 "thread_annotations.h",
131 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10132 deps = [ "system:arch" ]
Tommi8d2c5a82018-03-19 10:12:48133}
134
Florent Castelli7f623b02022-04-14 11:34:56135rtc_library("bit_buffer") {
136 visibility = [ "*" ]
137 sources = [
138 "bit_buffer.cc",
139 "bit_buffer.h",
140 ]
141 deps = [ ":checks" ]
142 absl_deps = [ "//third_party/abseil-cpp/absl/numeric:bits" ]
143}
144
Florent Castelliceb7b362022-04-19 15:35:04145rtc_library("byte_buffer") {
146 visibility = [ "*" ]
147 sources = [
148 "byte_buffer.cc",
149 "byte_buffer.h",
150 ]
151 deps = [
152 ":buffer",
153 ":byte_order",
154 ]
155 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
156}
157
Florent Castelli76063752022-04-19 15:14:26158rtc_library("buffer_queue") {
159 visibility = [ "*" ]
160 sources = [
161 "buffer_queue.cc",
162 "buffer_queue.h",
163 ]
164 deps = [
165 ":buffer",
166 ":macromagic",
167 "../api:sequence_checker",
168 "system:no_unique_address",
169 ]
170}
171
Florent Castellied4aadc2022-04-19 15:40:46172rtc_library("copy_on_write_buffer") {
173 visibility = [ "*" ]
174 sources = [
175 "copy_on_write_buffer.cc",
176 "copy_on_write_buffer.h",
177 ]
178 deps = [
179 ":buffer",
180 ":checks",
181 ":refcount",
182 ":type_traits",
183 "../api:scoped_refptr",
184 "system:rtc_export",
185 ]
Ali Tofighe00d7d02022-05-09 11:33:36186 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Florent Castellied4aadc2022-04-19 15:40:46187}
188
Florent Castellia30aef32022-04-19 15:47:13189rtc_library("event_tracer") {
190 visibility = [ "*" ]
191 sources = [
192 "event_tracer.cc",
193 "event_tracer.h",
194 "trace_event.h",
195 ]
196 deps = [
Florent Castellia30aef32022-04-19 15:47:13197 ":checks",
198 ":logging",
199 ":macromagic",
200 ":platform_thread",
201 ":platform_thread_types",
202 ":rtc_event",
203 ":timeutils",
204 "../api:sequence_checker",
205 "synchronization:mutex",
206 "system:rtc_export",
207 ]
208 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
209}
210
Florent Castelli17296422022-04-14 11:48:10211rtc_library("histogram_percentile_counter") {
212 visibility = [ "*" ]
213 sources = [
214 "numerics/histogram_percentile_counter.cc",
215 "numerics/histogram_percentile_counter.h",
216 ]
217 deps = [ ":checks" ]
218 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
219}
220
Florent Castelliaa6d05d2022-04-14 11:13:56221rtc_library("location") {
222 visibility = [ "*" ]
223 sources = [
224 "location.cc",
225 "location.h",
226 ]
227 deps = [ "system:rtc_export" ]
228}
229
Florent Castelli7f623b02022-04-14 11:34:56230rtc_library("race_checker") {
231 visibility = [ "*" ]
232 sources = [
233 "race_checker.cc",
234 "race_checker.h",
235 ]
236 deps = [
237 ":checks",
238 ":macromagic",
239 ":platform_thread_types",
240 ]
241}
242
Florent Castelli71337f32022-04-14 10:41:26243rtc_library("random") {
244 visibility = [ "*" ]
245 sources = [
246 "random.cc",
247 "random.h",
248 ]
249 deps = [
250 ":checks",
251 ":safe_conversions",
252 ]
253}
254
Florent Castelli6bb1fd32022-04-19 13:58:39255rtc_library("rate_statistics") {
256 visibility = [ "*" ]
257 sources = [
258 "rate_statistics.cc",
259 "rate_statistics.h",
260 ]
261 deps = [
262 ":checks",
263 ":logging",
264 ":safe_conversions",
265 "system:rtc_export",
266 ]
267 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
268}
269
Florent Castelli58cc4682022-04-19 13:50:28270rtc_library("rate_tracker") {
271 visibility = [ "*" ]
272 sources = [
273 "rate_tracker.cc",
274 "rate_tracker.h",
275 ]
276 deps = [
277 ":checks",
278 ":timeutils",
279 ]
280}
281
Florent Castelli83a36d42022-04-14 11:44:39282rtc_library("sample_counter") {
283 visibility = [ "*" ]
284 sources = [
285 "numerics/sample_counter.cc",
286 "numerics/sample_counter.h",
287 ]
288 deps = [
289 ":checks",
290 ":safe_conversions",
291 ]
292 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
293}
294
Florent Castellib1dc4e42022-04-14 11:20:12295rtc_library("timestamp_aligner") {
296 visibility = [ "*" ]
297 sources = [
298 "timestamp_aligner.cc",
299 "timestamp_aligner.h",
300 ]
301 deps = [
302 ":checks",
303 ":logging",
304 ":timeutils",
305 "system:rtc_export",
306 ]
307}
308
Florent Castellid119b9e2022-04-14 11:23:51309rtc_library("zero_memory") {
310 visibility = [ "*" ]
311 sources = [
312 "zero_memory.cc",
313 "zero_memory.h",
314 ]
315 deps = [
316 ":checks",
317 "../api:array_view",
318 ]
319}
320
Mirko Bonadei86d053c2019-10-17 19:32:04321rtc_library("platform_thread_types") {
Tommi8d2c5a82018-03-19 10:12:48322 sources = [
323 "platform_thread_types.cc",
324 "platform_thread_types.h",
325 ]
Tommicf8460782020-05-17 12:51:10326 deps = [ ":macromagic" ]
Tommi8d2c5a82018-03-19 10:12:48327}
328
Tommi8d2c5a82018-03-19 10:12:48329rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 07:47:12330 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48331 sources = [
Steve Anton10542f22019-01-11 17:11:00332 "ref_count.h",
333 "ref_counted_object.h",
334 "ref_counter.h",
Tommi8d2c5a82018-03-19 10:12:48335 ]
Tomas Gunnarssond7842002021-04-22 15:41:33336 deps = [
337 ":macromagic",
338 "../api:scoped_refptr",
339 ]
Tommi8d2c5a82018-03-19 10:12:48340}
341
Mirko Bonadei86d053c2019-10-17 19:32:04342rtc_library("criticalsection") {
Tommi8d2c5a82018-03-19 10:12:48343 sources = [
Markus Handell3cb525b2020-07-16 14:16:09344 "deprecated/recursive_critical_section.cc",
345 "deprecated/recursive_critical_section.h",
Tommi8d2c5a82018-03-19 10:12:48346 ]
347 deps = [
Tommi8d2c5a82018-03-19 10:12:48348 ":checks",
349 ":macromagic",
350 ":platform_thread_types",
Markus Handellf70fbc82020-06-03 22:41:20351 "synchronization:yield",
Niels Möllera12c42a2018-07-25 14:05:48352 "system:unused",
Tommi8d2c5a82018-03-19 10:12:48353 ]
354}
355
Mirko Bonadei86d053c2019-10-17 19:32:04356rtc_library("platform_thread") {
Tommi8d2c5a82018-03-19 10:12:48357 sources = [
358 "platform_thread.cc",
359 "platform_thread.h",
360 ]
361 deps = [
Tommi8d2c5a82018-03-19 10:12:48362 ":checks",
363 ":macromagic",
364 ":platform_thread_types",
365 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48366 ":timeutils",
Artem Titovd15a5752021-02-10 13:31:24367 "../api:sequence_checker",
Tommi8d2c5a82018-03-19 10:12:48368 ]
Markus Handell97c44582021-04-20 15:41:54369 absl_deps = [
370 "//third_party/abseil-cpp/absl/memory",
371 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:36372 "//third_party/abseil-cpp/absl/types:optional",
Markus Handell97c44582021-04-20 15:41:54373 ]
Tommi8d2c5a82018-03-19 10:12:48374}
375
Mirko Bonadei86d053c2019-10-17 19:32:04376rtc_library("rtc_event") {
Tommi8d2c5a82018-03-19 10:12:48377 if (build_with_chromium) {
378 sources = [
379 "../../webrtc_overrides/rtc_base/event.cc",
380 "../../webrtc_overrides/rtc_base/event.h",
381 ]
Karl Wiberg98417032019-03-24 18:12:40382 deps = [
383 ":checks",
Markus Handell211ecb42022-08-16 13:31:26384 "../api/units:time_delta",
Mirko Bonadeid4002a72019-11-12 19:11:48385 "system:rtc_export", # Only Chromium's rtc::Event use RTC_EXPORT.
Karl Wiberg98417032019-03-24 18:12:40386 "//base", # Dependency on chromium's waitable_event.
387 ]
Tommi8d2c5a82018-03-19 10:12:48388 } else {
389 sources = [
390 "event.cc",
391 "event.h",
392 ]
Karl Wiberg98417032019-03-24 18:12:40393 deps = [
394 ":checks",
Markus Handell1d5be492022-08-18 13:49:09395 ":timeutils",
396 "../api/units:time_delta",
Karl Wiberg98417032019-03-24 18:12:40397 "synchronization:yield_policy",
398 "system:warn_current_thread_is_deadlocked",
399 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41400 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Tommi8d2c5a82018-03-19 10:12:48401 }
Tommi8d2c5a82018-03-19 10:12:48402}
403
Mirko Bonadeicb03e382022-02-10 13:27:57404config("chromium_logging_config") {
Danil Chapovalove6106102022-02-16 11:29:02405 defines = [ "LOGGING_INSIDE_WEBRTC" ]
Mirko Bonadeicb03e382022-02-10 13:27:57406}
407
Mirko Bonadei86d053c2019-10-17 19:32:04408rtc_library("logging") {
Mirko Bonadei2ad8c432018-08-09 08:54:40409 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51410 libs = []
Tommi8d2c5a82018-03-19 10:12:48411 deps = [
Yves Gerey988cc082018-10-23 10:03:01412 ":checks",
Tommi8d2c5a82018-03-19 10:12:48413 ":macromagic",
414 ":platform_thread_types",
415 ":stringutils",
416 ":timeutils",
Mirko Bonadei96191f82022-08-03 08:12:33417 "../api/units:timestamp",
Markus Handellde8a9352020-06-10 13:40:42418 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41419 ]
420 absl_deps = [
Danil Chapovalovef98ae62019-10-11 15:18:29421 "//third_party/abseil-cpp/absl/base:core_headers",
Sebastian Janssonf4e085a2019-05-20 16:34:07422 "//third_party/abseil-cpp/absl/meta:type_traits",
Jonas Olssonf2ce37c2018-09-12 13:32:47423 "//third_party/abseil-cpp/absl/strings",
Mirko Bonadei96191f82022-08-03 08:12:33424 "//third_party/abseil-cpp/absl/types:optional",
Tommi8d2c5a82018-03-19 10:12:48425 ]
426
427 if (build_with_chromium) {
428 # Dependency on chromium's logging (in //base).
Artem Titov94b57c02019-03-21 12:35:10429 deps += [ "//base" ]
Tommi8d2c5a82018-03-19 10:12:48430 sources = [
431 "../../webrtc_overrides/rtc_base/logging.cc",
432 "../../webrtc_overrides/rtc_base/logging.h",
433 ]
Danil Chapovalove6106102022-02-16 11:29:02434
Mirko Bonadeicb03e382022-02-10 13:27:57435 # This macro needs to be both present in all WebRTC targets (see its
436 # definition in //BUILD.gn but also propagated to all the targets
437 # depending on the Chromium component defined in
438 # //third_party/webrtc_overrides:webrtc_component. This public_config
439 # allows GN to propagate the macro accordingly.
Danil Chapovalove6106102022-02-16 11:29:02440 public_configs = [ ":chromium_logging_config" ]
Tommi8d2c5a82018-03-19 10:12:48441 } else {
442 sources = [
443 "logging.cc",
444 "logging.h",
445 ]
Karl Wibergcefc4652018-05-23 21:20:38446 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 10:12:48447
Mirko Bonadei99a70a22018-10-09 14:45:14448 if (is_mac) {
Sylvain Defresnec7f0dff2020-07-03 08:19:30449 frameworks = [ "Foundation.framework" ]
Mirko Bonadei99a70a22018-10-09 14:45:14450 }
451
Patrik Höglund77301932018-10-09 13:09:51452 if (is_android) {
453 libs += [ "log" ]
454 }
Tommi8d2c5a82018-03-19 10:12:48455 }
456}
457
Mirko Bonadei86d053c2019-10-17 19:32:04458rtc_library("checks") {
Mirko Bonadei2ad8c432018-08-09 08:54:40459 # TODO(bugs.webrtc.org/9607): This should not be public.
460 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51461 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:42462 sources = [
463 "checks.cc",
464 "checks.h",
465 ]
466 deps = [
467 ":safe_compare",
Niels Möller94327682022-04-28 11:20:29468 "../api:scoped_refptr",
Jonas Olssonf8e5c112018-06-14 11:14:22469 "system:inline",
Mirko Bonadei35214fc2019-09-23 12:54:28470 "system:rtc_export",
Mirko Bonadei2dcf3482020-06-05 12:30:41471 ]
Peter Boströmd6e861d2022-07-29 20:44:21472 if (build_with_chromium) {
473 sources += [ "../../webrtc_overrides/rtc_base/checks_overrides.cc" ]
474 deps += [ "//base" ]
475 }
Mirko Bonadei2dcf3482020-06-05 12:30:41476 absl_deps = [
Sebastian Janssonf4e085a2019-05-20 16:34:07477 "//third_party/abseil-cpp/absl/meta:type_traits",
Mirko Bonadeid4a37a62019-03-11 09:31:22478 "//third_party/abseil-cpp/absl/strings",
Patrik Höglunda8005cf2017-12-13 15:05:42479 ]
Patrik Höglund77301932018-10-09 13:09:51480 if (is_android) {
481 libs += [ "log" ]
482 }
Patrik Höglunda8005cf2017-12-13 15:05:42483}
484
Mirko Bonadei86d053c2019-10-17 19:32:04485rtc_library("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 15:05:42486 sources = [
Patrik Höglund3e113432017-12-15 13:40:10487 "rate_limiter.cc",
488 "rate_limiter.h",
489 ]
490 deps = [
Florent Castelli4467ad72022-04-04 13:18:46491 ":macromagic",
Florent Castelli6bb1fd32022-04-19 13:58:39492 ":rate_statistics",
Patrik Höglund3e113432017-12-15 13:40:10493 "../system_wrappers",
Markus Handell18523c32020-07-08 15:55:58494 "synchronization:mutex",
Patrik Höglunda8005cf2017-12-13 15:05:42495 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41496 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Patrik Höglunda8005cf2017-12-13 15:05:42497}
498
499rtc_source_set("sanitizer") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10500 sources = [ "sanitizer.h" ]
Mirko Bonadei2dcf3482020-06-05 12:30:41501 absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42502}
503
Karl Wibergc1269372020-03-02 19:23:41504rtc_source_set("bounded_inline_vector") {
505 public = [ "bounded_inline_vector.h" ]
506 sources = [ "bounded_inline_vector_impl.h" ]
507 deps = [ ":checks" ]
508}
509
Danil Chapovalov33b83fd2019-09-18 13:48:23510rtc_source_set("divide_round") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10511 sources = [ "numerics/divide_round.h" ]
Danil Chapovalov33b83fd2019-09-18 13:48:23512 deps = [
513 ":checks",
514 ":safe_compare",
515 ]
516}
517
Patrik Höglunda8005cf2017-12-13 15:05:42518rtc_source_set("safe_compare") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10519 sources = [ "numerics/safe_compare.h" ]
520 deps = [ ":type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42521}
522
Karl Wiberg12edf4c2018-03-07 13:18:56523rtc_source_set("safe_minmax") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10524 sources = [ "numerics/safe_minmax.h" ]
Karl Wiberg12edf4c2018-03-07 13:18:56525 deps = [
526 ":checks",
527 ":safe_compare",
528 ":type_traits",
529 ]
530}
531
Tommi8d2c5a82018-03-19 10:12:48532rtc_source_set("safe_conversions") {
533 sources = [
534 "numerics/safe_conversions.h",
535 "numerics/safe_conversions_impl.h",
536 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10537 deps = [ ":checks" ]
Tommi8d2c5a82018-03-19 10:12:48538}
539
Mirko Bonadei86d053c2019-10-17 19:32:04540rtc_library("timeutils") {
Mirko Bonadei2ad8c432018-08-09 08:54:40541 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48542 sources = [
Johannes Kronb73c9f02021-02-15 12:29:45543 "system_time.cc",
544 "system_time.h",
Steve Anton10542f22019-01-11 17:11:00545 "time_utils.cc",
546 "time_utils.h",
Tommi8d2c5a82018-03-19 10:12:48547 ]
548 deps = [
549 ":checks",
550 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 11:41:30551 ":stringutils",
Mirko Bonadei35214fc2019-09-23 12:54:28552 "system:rtc_export",
Tommi8d2c5a82018-03-19 10:12:48553 ]
Johannes Kronbb52bdf2021-02-25 09:10:08554 if (rtc_exclude_system_time) {
555 defines = [ "WEBRTC_EXCLUDE_SYSTEM_TIME" ]
556 }
557
Noah Richards342989d2019-03-18 20:50:20558 libs = []
559 if (is_win) {
560 libs += [ "winmm.lib" ]
561 }
Tommi8d2c5a82018-03-19 10:12:48562}
563
Mirko Bonadei86d053c2019-10-17 19:32:04564rtc_library("stringutils") {
Patrik Höglunda8005cf2017-12-13 15:05:42565 sources = [
Steve Anton10542f22019-01-11 17:11:00566 "string_encode.cc",
567 "string_encode.h",
Jonas Olsson6b1985d2018-07-05 09:59:48568 "string_to_number.cc",
569 "string_to_number.h",
Steve Anton10542f22019-01-11 17:11:00570 "string_utils.cc",
571 "string_utils.h",
Karl Wiberg881f1682018-03-08 14:03:23572 "strings/string_builder.cc",
Tommifef05002018-02-27 12:51:08573 "strings/string_builder.h",
henrikaf0dc5c52020-04-09 16:46:00574 "strings/string_format.cc",
575 "strings/string_format.h",
Patrik Höglunda8005cf2017-12-13 15:05:42576 ]
577 deps = [
Patrik Höglund3e113432017-12-15 13:40:10578 ":checks",
Jonas Olsson6b1985d2018-07-05 09:59:48579 ":macromagic",
Karl Wiberg881f1682018-03-08 14:03:23580 ":safe_minmax",
581 "../api:array_view",
Mirko Bonadei2dcf3482020-06-05 12:30:41582 ]
583 absl_deps = [
Artem Titov94b57c02019-03-21 12:35:10584 "//third_party/abseil-cpp/absl/strings",
Jonas Olsson6b1985d2018-07-05 09:59:48585 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 13:40:10586 ]
587}
588
Mirko Bonadei86d053c2019-10-17 19:32:04589rtc_library("audio_format_to_string") {
Jonas Olsson74395342018-04-03 10:22:07590 sources = [
591 "strings/audio_format_to_string.cc",
592 "strings/audio_format_to_string.h",
593 ]
594 deps = [
595 ":stringutils",
596 "../api/audio_codecs:audio_codecs_api",
597 ]
598}
599
Patrik Höglund3e113432017-12-15 13:40:10600rtc_source_set("type_traits") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10601 sources = [ "type_traits.h" ]
Patrik Höglund3e113432017-12-15 13:40:10602}
603
Mirko Bonadei86d053c2019-10-17 19:32:04604rtc_library("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53605 visibility = [ "*" ]
nisse75dd6d42017-09-19 15:28:00606 sources = [
Danil Chapovalov07a4f2b2019-03-05 18:58:28607 "task_queue.cc",
nisse75dd6d42017-09-19 15:28:00608 "task_queue.h",
609 ]
perkj650fdae2017-08-25 12:00:11610 deps = [
Tommi8d2c5a82018-03-19 10:12:48611 ":macromagic",
Danil Chapovalov959e9b62019-01-14 13:29:18612 "../api/task_queue",
Mirko Bonadei3d255302018-10-11 08:50:45613 "system:rtc_export",
perkj650fdae2017-08-25 12:00:11614 ]
Danil Chapovalova7e15a22022-07-05 14:03:03615 absl_deps = [
616 "//third_party/abseil-cpp/absl/functional:any_invocable",
617 "//third_party/abseil-cpp/absl/memory",
618 ]
Danil Chapovalov07a4f2b2019-03-05 18:58:28619}
620
Henrik Boström27c29362019-10-21 13:21:55621rtc_source_set("rtc_operations_chain") {
622 visibility = [ "*" ]
623 sources = [
624 "operations_chain.cc",
625 "operations_chain.h",
626 ]
627 deps = [
628 ":checks",
629 ":macromagic",
630 ":refcount",
Niels Möller105711e2022-06-14 13:48:26631 "../api:make_ref_counted",
Niels Möller95129102022-01-13 10:00:05632 "../api:refcountedbase",
Henrik Boström27c29362019-10-21 13:21:55633 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24634 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42635 "system:no_unique_address",
Henrik Boström27c29362019-10-21 13:21:55636 ]
Henrik Boströme574a312020-08-25 08:20:11637 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Henrik Boström27c29362019-10-21 13:21:55638}
639
Tommi8d2c5a82018-03-19 10:12:48640if (rtc_enable_libevent) {
Mirko Bonadei86d053c2019-10-17 19:32:04641 rtc_library("rtc_task_queue_libevent") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28642 visibility = [ "../api/task_queue:default_task_queue_factory" ]
perkj650fdae2017-08-25 12:00:11643 sources = [
Niels Möller15c9cf72017-10-19 10:38:09644 "task_queue_libevent.cc",
Danil Chapovaloveb175242019-02-12 09:44:38645 "task_queue_libevent.h",
perkj650fdae2017-08-25 12:00:11646 ]
Tommi8d2c5a82018-03-19 10:12:48647 deps = [
648 ":checks",
Tommi8d2c5a82018-03-19 10:12:48649 ":logging",
Yves Gerey2e00abc2018-10-05 13:39:24650 ":macromagic",
Tommi8d2c5a82018-03-19 10:12:48651 ":platform_thread",
Yves Gerey2e00abc2018-10-05 13:39:24652 ":platform_thread_types",
Tommi8d2c5a82018-03-19 10:12:48653 ":safe_conversions",
654 ":timeutils",
Danil Chapovaloveb175242019-02-12 09:44:38655 "../api/task_queue",
Danil Chapovalov30c2a312022-07-19 12:12:43656 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58657 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41658 ]
659 absl_deps = [
Steve Anton9a83dd72020-01-09 19:03:25660 "//third_party/abseil-cpp/absl/container:inlined_vector",
Danil Chapovalov30c2a312022-07-19 12:12:43661 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovaloveb175242019-02-12 09:44:38662 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48663 ]
664 if (rtc_build_libevent) {
Byoungchan Leed69a7262022-06-23 13:06:00665 deps += [ "//third_party/libevent" ]
Tommi8d2c5a82018-03-19 10:12:48666 }
667 }
668}
669
670if (is_mac || is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04671 rtc_library("rtc_task_queue_gcd") {
Byoungchan Lee08438fc2021-10-12 13:53:35672 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48673 sources = [
674 "task_queue_gcd.cc",
Danil Chapovalov47cf5ea2019-02-19 19:20:16675 "task_queue_gcd.h",
Tommi8d2c5a82018-03-19 10:12:48676 ]
677 deps = [
678 ":checks",
679 ":logging",
Danil Chapovalov47cf5ea2019-02-19 19:20:16680 "../api/task_queue",
Danil Chapovalovfcfa80f2022-07-07 09:26:48681 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58682 "synchronization:mutex",
Yura Yaroshevichebf739b2020-03-16 15:00:59683 "system:gcd_helpers",
Tommi8d2c5a82018-03-19 10:12:48684 ]
Danil Chapovalovfcfa80f2022-07-07 09:26:48685 absl_deps = [
686 "//third_party/abseil-cpp/absl/functional:any_invocable",
687 "//third_party/abseil-cpp/absl/strings",
688 ]
Tommi8d2c5a82018-03-19 10:12:48689 }
690}
691
692if (is_win) {
Mirko Bonadei86d053c2019-10-17 19:32:04693 rtc_library("rtc_task_queue_win") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28694 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48695 sources = [
696 "task_queue_win.cc",
Danil Chapovalov826f2e72019-02-20 17:13:09697 "task_queue_win.h",
Tommi8d2c5a82018-03-19 10:12:48698 ]
699 deps = [
700 ":checks",
Tommi8d2c5a82018-03-19 10:12:48701 ":logging",
702 ":macromagic",
703 ":platform_thread",
Tommi8d2c5a82018-03-19 10:12:48704 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48705 ":safe_conversions",
706 ":timeutils",
Danil Chapovalov826f2e72019-02-20 17:13:09707 "../api/task_queue",
Danil Chapovalov3c06cfc2022-07-20 11:38:58708 "../api/units:time_delta",
709 "../api/units:timestamp",
Markus Handell18523c32020-07-08 15:55:58710 "synchronization:mutex",
Tommi8d2c5a82018-03-19 10:12:48711 ]
Markus Handellad5037b2021-05-07 13:02:36712 absl_deps = [
Danil Chapovalov3c06cfc2022-07-20 11:38:58713 "//third_party/abseil-cpp/absl/functional:any_invocable",
Markus Handellad5037b2021-05-07 13:02:36714 "//third_party/abseil-cpp/absl/strings",
715 "//third_party/abseil-cpp/absl/types:optional",
716 ]
Tommi8d2c5a82018-03-19 10:12:48717 }
718}
719
Mirko Bonadei86d053c2019-10-17 19:32:04720rtc_library("rtc_task_queue_stdlib") {
Robin Raymond22027b92018-11-23 14:07:50721 sources = [
722 "task_queue_stdlib.cc",
Danil Chapovalovfa52efa2019-02-21 10:13:58723 "task_queue_stdlib.h",
Robin Raymond22027b92018-11-23 14:07:50724 ]
725 deps = [
726 ":checks",
Danil Chapovalovba570012022-07-19 16:36:31727 ":divide_round",
Robin Raymond22027b92018-11-23 14:07:50728 ":logging",
729 ":macromagic",
730 ":platform_thread",
Robin Raymond22027b92018-11-23 14:07:50731 ":rtc_event",
Robin Raymond22027b92018-11-23 14:07:50732 ":safe_conversions",
733 ":timeutils",
Danil Chapovalovfa52efa2019-02-21 10:13:58734 "../api/task_queue",
Danil Chapovalovba570012022-07-19 16:36:31735 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58736 "synchronization:mutex",
Robin Raymond22027b92018-11-23 14:07:50737 ]
Danil Chapovalovba570012022-07-19 16:36:31738 absl_deps = [
739 "//third_party/abseil-cpp/absl/functional:any_invocable",
740 "//third_party/abseil-cpp/absl/strings",
741 ]
Robin Raymond22027b92018-11-23 14:07:50742}
743
Mirko Bonadei86d053c2019-10-17 19:32:04744rtc_library("weak_ptr") {
Henrik Kjellanderc0362762017-06-29 06:03:04745 sources = [
746 "weak_ptr.cc",
747 "weak_ptr.h",
748 ]
749 deps = [
Tommi8d2c5a82018-03-19 10:12:48750 ":refcount",
Mirko Bonadeid9708072019-01-25 19:26:48751 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24752 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42753 "system:no_unique_address",
Henrik Kjellanderc0362762017-06-29 06:03:04754 ]
755}
756
Mirko Bonadei86d053c2019-10-17 19:32:04757rtc_library("rtc_numerics") {
Henrik Kjellanderc0362762017-06-29 06:03:04758 sources = [
Jonas Oreland63dced92019-11-25 12:00:15759 "numerics/event_based_exponential_moving_average.cc",
760 "numerics/event_based_exponential_moving_average.h",
Henrik Kjellanderc0362762017-06-29 06:03:04761 "numerics/exp_filter.cc",
762 "numerics/exp_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48763 "numerics/math_utils.h",
Ilya Nikolaevskiy26341992018-11-05 11:55:18764 "numerics/moving_average.cc",
765 "numerics/moving_average.h",
Ilya Nikolaevskiyb9685752017-11-01 13:01:00766 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 06:03:04767 "numerics/percentile_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48768 "numerics/running_statistics.h",
Bjorn Tereliusa194e582017-10-25 11:07:09769 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 06:03:04770 ]
771 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42772 ":checks",
Florent Castelli31764092022-04-14 11:41:58773 ":mod_ops",
Artem Titov9d777622020-09-18 16:23:08774 ]
775 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
776}
777
778rtc_library("rtc_stats_counters") {
779 sources = [
780 "numerics/event_rate_counter.cc",
781 "numerics/event_rate_counter.h",
782 "numerics/sample_stats.cc",
783 "numerics/sample_stats.h",
784 ]
785 deps = [
786 "../api/numerics",
Sebastian Janssonefa3f762019-12-02 06:19:55787 "../api/units:data_rate",
788 "../api/units:time_delta",
Artem Titov6fcdbc12019-09-11 09:45:40789 "../api/units:timestamp",
Mirko Bonadei2dcf3482020-06-05 12:30:41790 ]
Artem Titov9d777622020-09-18 16:23:08791 absl_deps = []
Henrik Kjellanderc0362762017-06-29 06:03:04792}
793
Mirko Bonadei65643662019-07-12 11:29:30794config("rtc_json_suppressions") {
Mirko Bonadei94077762019-06-27 09:24:25795 if (!is_win || is_clang) {
Mirko Bonadei65643662019-07-12 11:29:30796 cflags_cc = [
Mirko Bonadei1cd6f322019-07-12 19:47:47797 # TODO(bugs.webrtc.org/10814): Remove -Wno-undef as soon as it get
Mirko Bonadei65643662019-07-12 11:29:30798 # removed upstream.
799 "-Wno-undef",
800 ]
Mirko Bonadei94077762019-06-27 09:24:25801 }
802}
803
Mirko Bonadei86d053c2019-10-17 19:32:04804rtc_library("rtc_json") {
Mirko Bonadei65643662019-07-12 11:29:30805 public_configs = [ ":rtc_json_suppressions" ]
Sam Zackrisson492fdf42019-10-25 08:45:58806 poisonous = [ "rtc_json" ]
Henrik Kjellanderc0362762017-06-29 06:03:04807 defines = []
808 sources = [
Sam Zackrissonb45bdb52018-10-02 14:25:59809 "strings/json.cc",
810 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 06:03:04811 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10812 deps = [ ":stringutils" ]
Mirko Bonadeia0e29fc2018-01-26 15:50:02813 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 06:03:04814 if (rtc_build_json) {
Florent Castellif35611a2022-04-14 09:55:57815 deps += [ "//third_party/jsoncpp" ]
Henrik Kjellanderc0362762017-06-29 06:03:04816 } else {
817 include_dirs = [ "$rtc_jsoncpp_root" ]
818
819 # When defined changes the include path for json.h to where it is
820 # expected to be when building json outside of the standalone build.
821 defines += [ "WEBRTC_EXTERNAL_JSON" ]
822 }
Ali Tofigh7fa90572022-03-17 14:47:49823 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Henrik Kjellanderc0362762017-06-29 06:03:04824}
825
Mirko Bonadeie5f4c6b2021-01-15 09:41:01826rtc_library("net_helpers") {
827 sources = [
828 "net_helpers.cc",
829 "net_helpers.h",
830 ]
831 deps = []
832 if (is_android) {
833 deps += [ ":ifaddrs_android" ]
834 }
835 if (is_win) {
Nico Weber79bd4f12021-10-05 19:01:26836 deps += [
Nico Weber79bd4f12021-10-05 19:01:26837 ":win32",
Florent Castelli15a3c3f2022-04-27 08:33:27838 "win:windows_version",
Nico Weber79bd4f12021-10-05 19:01:26839 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01840 }
Ali Tofigh2ab914c2022-04-13 10:55:15841 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45842}
843
Mirko Bonadeie5f4c6b2021-01-15 09:41:01844rtc_library("async_resolver_interface") {
Karl Wiberg02f4e322019-02-10 23:43:43845 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01846 sources = [
847 "async_resolver_interface.cc",
848 "async_resolver_interface.h",
849 ]
850 deps = [
Sameer Vijaykarb787e262022-08-11 09:52:57851 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01852 ":socket_address",
853 "system:rtc_export",
854 "third_party/sigslot",
855 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45856}
857
Mirko Bonadeie5f4c6b2021-01-15 09:41:01858rtc_library("ip_address") {
Karl Wiberg02f4e322019-02-10 23:43:43859 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01860 sources = [
861 "ip_address.cc",
862 "ip_address.h",
863 ]
864 deps = [
Florent Castellia876a922022-04-19 15:18:36865 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01866 ":net_helpers",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01867 ":stringutils",
868 "system:rtc_export",
869 ]
870 if (is_win) {
871 deps += [ ":win32" ]
872 }
Ali Tofigh7fa90572022-03-17 14:47:49873 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45874}
875
Mirko Bonadeie5f4c6b2021-01-15 09:41:01876rtc_library("socket_address") {
Karl Wiberg02f4e322019-02-10 23:43:43877 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01878 sources = [
879 "socket_address.cc",
880 "socket_address.h",
881 ]
882 deps = [
Florent Castellia876a922022-04-19 15:18:36883 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01884 ":checks",
885 ":ip_address",
886 ":logging",
887 ":net_helpers",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01888 ":safe_conversions",
889 ":stringutils",
890 "system:rtc_export",
891 ]
892 if (is_win) {
893 deps += [ ":win32" ]
894 }
Ali Tofigh7fa90572022-03-17 14:47:49895 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45896}
897
Mirko Bonadeie5f4c6b2021-01-15 09:41:01898rtc_library("null_socket_server") {
899 sources = [
900 "null_socket_server.cc",
901 "null_socket_server.h",
902 ]
903 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:01904 ":checks",
905 ":rtc_event",
906 ":socket",
907 ":socket_server",
Markus Handell2cfc1af2022-08-19 08:16:48908 "../api/units:time_delta",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01909 "system:rtc_export",
910 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45911}
912
Karl Wiberg28522dc2019-01-22 16:54:34913rtc_source_set("socket_server") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01914 sources = [ "socket_server.h" ]
915 deps = [ ":socket_factory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45916}
917
Mirko Bonadeie5f4c6b2021-01-15 09:41:01918rtc_library("threading") {
Karl Wiberg02f4e322019-02-10 23:43:43919 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01920
Mirko Bonadeie5f4c6b2021-01-15 09:41:01921 sources = [
922 "async_resolver.cc",
923 "async_resolver.h",
924 "internal/default_socket_server.cc",
925 "internal/default_socket_server.h",
926 "message_handler.cc",
927 "message_handler.h",
928 "network_monitor.cc",
929 "network_monitor.h",
930 "network_monitor_factory.cc",
931 "network_monitor_factory.h",
932 "physical_socket_server.cc",
933 "physical_socket_server.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01934 "thread.cc",
935 "thread.h",
936 "thread_message.h",
937 ]
Henrik Boström2deee4b2022-01-20 10:58:05938 absl_deps = [
939 "//third_party/abseil-cpp/absl/algorithm:container",
940 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov4bcf8092022-07-06 17:42:34941 "//third_party/abseil-cpp/absl/cleanup",
942 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovalov0bd16652022-08-24 16:35:45943 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:49944 "//third_party/abseil-cpp/absl/strings",
Henrik Boström2deee4b2022-01-20 10:58:05945 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01946 deps = [
947 ":async_resolver_interface",
Florent Castellia876a922022-04-19 15:18:36948 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01949 ":checks",
950 ":criticalsection",
Florent Castellia30aef32022-04-19 15:47:13951 ":event_tracer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01952 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:56953 ":location",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01954 ":logging",
955 ":macromagic",
956 ":network_constants",
957 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:28958 ":platform_thread",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01959 ":platform_thread_types",
Florent Castellif86f6f92022-04-05 00:54:12960 ":refcount",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01961 ":rtc_event",
962 ":rtc_task_queue",
963 ":socket_address",
964 ":socket_server",
965 ":timeutils",
966 "../api:function_view",
Markus Handell1366b0f2021-04-21 08:22:34967 "../api:refcountedbase",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01968 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24969 "../api:sequence_checker",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01970 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45971 "../api/task_queue:pending_task_safety_flag",
Danil Chapovalov4bcf8092022-07-06 17:42:34972 "../api/units:time_delta",
Niels Möller6d176022021-02-09 13:44:48973 "synchronization:mutex",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01974 "system:no_unique_address",
975 "system:rtc_export",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01976 "third_party/sigslot",
977 ]
978 if (is_android) {
979 deps += [ ":ifaddrs_android" ]
980 }
981 if (is_win) {
982 deps += [ ":win32" ]
983 }
984 if (is_mac || is_ios) {
Byoungchan Lee08438fc2021-10-12 13:53:35985 deps += [ "system:cocoa_threading" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01986 }
Karl Wiberg0b6d0e62018-12-06 13:50:45987}
988
Karl Wiberg28522dc2019-01-22 16:54:34989rtc_source_set("socket_factory") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01990 sources = [ "socket_factory.h" ]
Niels Möllerd0b88792021-08-12 08:32:30991 deps = [ ":socket" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45992}
993
Mirko Bonadeie5f4c6b2021-01-15 09:41:01994rtc_library("async_socket") {
995 sources = [
996 "async_socket.cc",
997 "async_socket.h",
998 ]
999 deps = [
1000 ":checks",
1001 ":socket",
1002 ":socket_address",
1003 "third_party/sigslot",
1004 ]
Niels Möller8729d782021-08-11 09:22:441005 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451006}
1007
Mirko Bonadeie5f4c6b2021-01-15 09:41:011008rtc_library("socket") {
1009 sources = [
1010 "socket.cc",
1011 "socket.h",
1012 ]
1013 deps = [
1014 ":macromagic",
1015 ":socket_address",
Niels Möllerd0b88792021-08-12 08:32:301016 "third_party/sigslot",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011017 ]
1018 if (is_win) {
1019 deps += [ ":win32" ]
1020 }
Karl Wiberg0b6d0e62018-12-06 13:50:451021}
1022
1023rtc_source_set("network_constants") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011024 sources = [
1025 "network_constants.cc",
1026 "network_constants.h",
1027 ]
1028 deps = [ ":checks" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451029}
1030
1031if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011032 rtc_library("ifaddrs_android") {
1033 sources = [
1034 "ifaddrs_android.cc",
1035 "ifaddrs_android.h",
1036 ]
1037 libs = [
1038 "log",
1039 "GLESv2",
1040 ]
Danil Chapovalove6106102022-02-16 11:29:021041 absl_deps = [ "//third_party/abseil-cpp/absl/cleanup" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451042 }
1043}
1044
1045if (is_win) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011046 rtc_library("win32") {
Tommi16db7ff2020-09-26 09:57:261047 sources = [
1048 "win32.cc",
1049 "win32.h",
1050 "win32_window.cc",
1051 "win32_window.h",
1052 ]
1053
1054 deps = [
Florent Castellia876a922022-04-19 15:18:361055 ":byte_order",
Tommi16db7ff2020-09-26 09:57:261056 ":checks",
Florent Castelli0af55ba2022-04-04 13:06:301057 ":logging",
Tommi16db7ff2020-09-26 09:57:261058 ":macromagic",
Florent Castelli57aa81b2022-04-04 15:14:021059 ":stringutils",
Tommi16db7ff2020-09-26 09:57:261060 ]
1061
1062 libs = [
1063 "crypt32.lib",
1064 "iphlpapi.lib",
1065 "secur32.lib",
1066 ]
1067
1068 defines = [ "_CRT_NONSTDC_NO_DEPRECATE" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451069 }
1070}
1071
Mirko Bonadei86d053c2019-10-17 19:32:041072rtc_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:531073 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 06:03:041074 cflags = []
1075 cflags_cc = []
1076 libs = []
1077 defines = []
1078 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011079 ":async_resolver_interface",
1080 ":async_socket",
Florent Castellif9c59842022-04-19 15:07:231081 ":buffer",
Florent Castelliceb7b362022-04-19 15:35:041082 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361083 ":byte_order",
Tomas Gunnarssonf15189d2022-04-13 09:03:521084 ":callback_list",
Patrik Höglunda8005cf2017-12-13 15:05:421085 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461086 ":copy_on_write_buffer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011087 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561088 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301089 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461090 ":macromagic",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011091 ":network_constants",
1092 ":null_socket_server",
Florent Castellif86f6f92022-04-05 00:54:121093 ":refcount",
Florent Castelli33d31fb2022-04-04 14:57:521094 ":rtc_event",
Markus Handellfbf4ad22020-05-26 16:43:551095 ":rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:371096 ":safe_conversions",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011097 ":socket",
1098 ":socket_address",
1099 ":socket_factory",
1100 ":socket_server",
Patrik Höglund3e113432017-12-15 13:40:101101 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011102 ":threading",
Florent Castellidd837e22022-04-04 15:16:151103 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511104 ":zero_memory",
Joachim Bauch58daf402017-12-21 21:00:341105 "../api:array_view",
Jonas Orelande62c2f22022-03-29 09:04:481106 "../api:field_trials_view",
Danil Chapovalov89313452019-11-29 11:56:431107 "../api:function_view",
Niels Möller105711e2022-06-14 13:48:261108 "../api:make_ref_counted",
Tommi86ee89f2021-04-20 14:58:011109 "../api:refcountedbase",
Mirko Bonadeid9708072019-01-25 19:26:481110 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:241111 "../api:sequence_checker",
Artem Titov9d777622020-09-18 16:23:081112 "../api/numerics",
Danil Chapovalov912b3b82019-11-22 14:52:401113 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451114 "../api/task_queue:pending_task_safety_flag",
Jonas Orelandc06fe8b2022-03-28 12:58:261115 "../api/transport:field_trial_based_config",
Danil Chapovalov5286dcf2022-07-18 15:04:561116 "../api/units:time_delta",
Harald Alvestrand13799132020-03-09 18:39:361117 "../system_wrappers:field_trial",
Jonas Orelandc06fe8b2022-03-28 12:58:261118 "memory:always_valid_pointer",
Sebastian Janssone07864e2018-10-15 07:28:151119 "network:sent_packet",
Markus Handell18523c32020-07-08 15:55:581120 "synchronization:mutex",
Niels Möller23213d92019-01-22 10:01:241121 "system:file_wrapper",
Jonas Oreland71fda362020-03-20 15:11:561122 "system:inline",
Mirko Bonadei20e4c802020-11-23 10:07:421123 "system:no_unique_address",
Mirko Bonadei35214fc2019-09-23 12:54:281124 "system:rtc_export",
Tommi04482982020-10-05 12:43:531125 "task_utils:repeating_task",
Artem Titova76af0c2018-07-23 15:38:121126 "third_party/base64",
Artem Titove41c4332018-07-25 13:04:281127 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411128 ]
1129 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301130 "//third_party/abseil-cpp/absl/algorithm:container",
Taylor Brandstetter7b69a442020-08-20 23:43:131131 "//third_party/abseil-cpp/absl/container:flat_hash_map",
Danil Chapovalovb7da8162022-08-22 14:39:341132 "//third_party/abseil-cpp/absl/functional:any_invocable",
Karl Wiberg918f50c2018-07-05 09:40:331133 "//third_party/abseil-cpp/absl/memory",
Niels Möller3c7d5992018-10-19 13:29:541134 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0a1d1892018-06-21 09:48:251135 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 06:03:041136 ]
Henrik Kjellanderc0362762017-06-29 06:03:041137 public_configs = []
1138
Henrik Kjellanderc0362762017-06-29 06:03:041139 sources = [
Steve Anton10542f22019-01-11 17:11:001140 "async_invoker.cc",
1141 "async_invoker.h",
1142 "async_invoker_inl.h",
1143 "async_packet_socket.cc",
1144 "async_packet_socket.h",
Steve Anton10542f22019-01-11 17:11:001145 "async_tcp_socket.cc",
1146 "async_tcp_socket.h",
1147 "async_udp_socket.cc",
1148 "async_udp_socket.h",
Henrik Kjellanderc0362762017-06-29 06:03:041149 "crc32.cc",
1150 "crc32.h",
Steve Anton10542f22019-01-11 17:11:001151 "crypt_string.cc",
1152 "crypt_string.h",
Sebastian Janssonf9c5cf62018-02-28 15:04:261153 "data_rate_limiter.cc",
1154 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 10:50:211155 "dscp.h",
Steve Anton10542f22019-01-11 17:11:001156 "file_rotating_stream.cc",
1157 "file_rotating_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041158 "helpers.cc",
1159 "helpers.h",
Steve Anton10542f22019-01-11 17:11:001160 "http_common.cc",
1161 "http_common.h",
Qingsi Wang09619332018-09-13 05:51:551162 "mdns_responder_interface.h",
Steve Anton10542f22019-01-11 17:11:001163 "message_digest.cc",
1164 "message_digest.h",
Steve Anton10542f22019-01-11 17:11:001165 "net_helper.cc",
1166 "net_helper.h",
Henrik Kjellanderc0362762017-06-29 06:03:041167 "network.cc",
1168 "network.h",
henrikaf0dc5c52020-04-09 16:46:001169 "network_route.cc",
Steve Anton10542f22019-01-11 17:11:001170 "network_route.h",
Henrik Kjellanderc0362762017-06-29 06:03:041171 "openssl.h",
Steve Anton10542f22019-01-11 17:11:001172 "openssl_adapter.cc",
1173 "openssl_adapter.h",
Steve Anton10542f22019-01-11 17:11:001174 "openssl_digest.cc",
1175 "openssl_digest.h",
Taylor Brandstetter165c6182020-12-11 00:23:031176 "openssl_key_pair.cc",
1177 "openssl_key_pair.h",
Steve Anton10542f22019-01-11 17:11:001178 "openssl_session_cache.cc",
1179 "openssl_session_cache.h",
1180 "openssl_stream_adapter.cc",
1181 "openssl_stream_adapter.h",
1182 "openssl_utility.cc",
1183 "openssl_utility.h",
Steve Anton10542f22019-01-11 17:11:001184 "proxy_info.cc",
1185 "proxy_info.h",
1186 "rtc_certificate.cc",
1187 "rtc_certificate.h",
1188 "rtc_certificate_generator.cc",
1189 "rtc_certificate_generator.h",
Steve Anton10542f22019-01-11 17:11:001190 "socket_adapters.cc",
1191 "socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001192 "socket_address_pair.cc",
1193 "socket_address_pair.h",
Steve Anton10542f22019-01-11 17:11:001194 "ssl_adapter.cc",
1195 "ssl_adapter.h",
1196 "ssl_certificate.cc",
1197 "ssl_certificate.h",
1198 "ssl_fingerprint.cc",
1199 "ssl_fingerprint.h",
1200 "ssl_identity.cc",
1201 "ssl_identity.h",
1202 "ssl_stream_adapter.cc",
1203 "ssl_stream_adapter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041204 "stream.cc",
1205 "stream.h",
Amit Hilbuchdbb49df2019-01-23 22:54:241206 "unique_id_generator.cc",
1207 "unique_id_generator.h",
Henrik Kjellanderc0362762017-06-29 06:03:041208 ]
1209
Taylor Brandstetterc70bd182020-12-11 19:30:431210 # If we are building the SSL library ourselves, we know it's BoringSSL.
1211 if (rtc_build_ssl) {
Taylor Brandstetter165c6182020-12-11 00:23:031212 sources += [
1213 "boringssl_certificate.cc",
1214 "boringssl_certificate.h",
1215 "boringssl_identity.cc",
1216 "boringssl_identity.h",
1217 ]
1218 } else {
1219 sources += [
1220 "openssl_certificate.cc",
1221 "openssl_certificate.h",
1222 "openssl_identity.cc",
1223 "openssl_identity.h",
1224 ]
1225 }
1226
Henrik Kjellanderc0362762017-06-29 06:03:041227 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 06:03:041228 include_dirs = [ "../../boringssl/src/include" ]
Henrik Kjellanderc0362762017-06-29 06:03:041229 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041230 sources += [
Steve Anton10542f22019-01-11 17:11:001231 "log_sinks.cc",
1232 "log_sinks.h",
Steve Anton10542f22019-01-11 17:11:001233 "rolling_accumulator.h",
1234 "ssl_roots.h",
Henrik Kjellanderc0362762017-06-29 06:03:041235 ]
1236
Yves Gerey3dfb6802019-05-13 15:01:321237 deps += [ ":rtc_numerics" ]
1238
Henrik Kjellanderc0362762017-06-29 06:03:041239 if (is_win) {
Steve Antonf3802842019-01-25 03:07:401240 sources += [ "win32_socket_init.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041241 }
1242 } # !build_with_chromium
1243
1244 if (rtc_build_ssl) {
1245 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 15:40:391246 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041247 configs += [ ":external_ssl_library" ]
1248 }
1249
1250 if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011251 deps += [ ":ifaddrs_android" ]
Henrik Kjellanderc0362762017-06-29 06:03:041252 }
1253
1254 if (is_ios || is_mac) {
Steve Anton10542f22019-01-11 17:11:001255 sources += [ "mac_ifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 06:03:041256 }
1257
Hidehiko Abef264e702020-09-10 09:10:111258 if (is_linux || is_chromeos) {
Henrik Kjellanderc0362762017-06-29 06:03:041259 libs += [
1260 "dl",
1261 "rt",
1262 ]
1263 }
1264
Oleh Prypinb3f78de2019-07-18 20:25:481265 if (is_ios) {
Sylvain Defresnec7f0dff2020-07-03 08:19:301266 frameworks = [
Oleh Prypinb3f78de2019-07-18 20:25:481267 "CFNetwork.framework",
1268 "Foundation.framework",
1269 "Security.framework",
1270 "SystemConfiguration.framework",
1271 "UIKit.framework",
1272 ]
Henrik Kjellanderc0362762017-06-29 06:03:041273 }
1274
1275 if (is_win) {
Tommi16db7ff2020-09-26 09:57:261276 deps += [ ":win32" ]
Henrik Kjellanderc0362762017-06-29 06:03:041277 }
1278
Fabrice de Gans-Riberi09a6cd52018-03-30 17:38:061279 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 06:03:041280 sources += [
1281 "ifaddrs_converter.cc",
1282 "ifaddrs_converter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041283 ]
1284 }
1285
1286 if (is_nacl) {
Harald Alvestrand13799132020-03-09 18:39:361287 public_deps += # no-presubmit-check TODO(webrtc:8603)
1288 [ "//native_client_sdk/src/libraries/nacl_io" ]
1289
Henrik Kjellanderc0362762017-06-29 06:03:041290 defines += [ "timezone=_timezone" ]
1291 sources -= [ "ifaddrs_converter.cc" ]
1292 }
Henrik Kjellanderc0362762017-06-29 06:03:041293}
1294
1295rtc_source_set("gtest_prod") {
Mirko Bonadeiccbe95f2020-01-21 11:10:101296 sources = [ "gtest_prod_util.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041297}
1298
Mirko Bonadei86d053c2019-10-17 19:32:041299rtc_library("gunit_helpers") {
Mirko Bonadeie3abb812018-11-23 12:15:081300 testonly = true
1301 sources = [
1302 "gunit.cc",
1303 "gunit.h",
1304 ]
1305 deps = [
1306 ":logging",
1307 ":rtc_base",
1308 ":rtc_base_tests_utils",
1309 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011310 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081311 "../test:test_support",
1312 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411313 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Mirko Bonadeie3abb812018-11-23 12:15:081314}
1315
Mirko Bonadei86d053c2019-10-17 19:32:041316rtc_library("testclient") {
Mirko Bonadeie3abb812018-11-23 12:15:081317 testonly = true
1318 sources = [
Steve Anton10542f22019-01-11 17:11:001319 "test_client.cc",
1320 "test_client.h",
Mirko Bonadeie3abb812018-11-23 12:15:081321 ]
1322 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081323 ":gunit_helpers",
Mirko Bonadeie3abb812018-11-23 12:15:081324 ":rtc_base",
1325 ":rtc_base_tests_utils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011326 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081327 ":timeutils",
Markus Handell18523c32020-07-08 15:55:581328 "synchronization:mutex",
Mirko Bonadeie3abb812018-11-23 12:15:081329 ]
1330}
1331
Mirko Bonadei3d259352020-10-23 10:04:401332rtc_library("callback_list_unittests") {
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211333 testonly = true
1334
Mirko Bonadei3d259352020-10-23 10:04:401335 sources = [ "callback_list_unittest.cc" ]
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211336 deps = [
Mirko Bonadei3d259352020-10-23 10:04:401337 ":callback_list",
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211338 ":gunit_helpers",
1339 ":rtc_base",
1340 "../api:function_view",
1341 "../test:test_support",
1342 ]
1343}
1344
Mirko Bonadei86d053c2019-10-17 19:32:041345rtc_library("rtc_base_tests_utils") {
Henrik Kjellanderc0362762017-06-29 06:03:041346 testonly = true
1347 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041348 "cpu_time.cc",
1349 "cpu_time.h",
Steve Anton10542f22019-01-11 17:11:001350 "fake_clock.cc",
1351 "fake_clock.h",
Qingsi Wang09619332018-09-13 05:51:551352 "fake_mdns_responder.h",
Steve Anton10542f22019-01-11 17:11:001353 "fake_network.h",
1354 "fake_ssl_identity.cc",
1355 "fake_ssl_identity.h",
1356 "firewall_socket_server.cc",
1357 "firewall_socket_server.h",
Niels Möllere7547d52018-11-01 08:33:081358 "memory_stream.cc",
1359 "memory_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041360 "memory_usage.cc",
1361 "memory_usage.h",
Steve Anton10542f22019-01-11 17:11:001362 "nat_server.cc",
1363 "nat_server.h",
1364 "nat_socket_factory.cc",
1365 "nat_socket_factory.h",
1366 "nat_types.cc",
1367 "nat_types.h",
1368 "proxy_server.cc",
1369 "proxy_server.h",
Niels Möller44153152018-12-17 13:04:051370 "server_socket_adapters.cc",
1371 "server_socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001372 "sigslot_tester.h",
Steve Anton10542f22019-01-11 17:11:001373 "socket_stream.cc",
1374 "socket_stream.h",
1375 "test_base64.h",
1376 "test_certificate_verifier.h",
1377 "test_echo_server.cc",
1378 "test_echo_server.h",
1379 "test_utils.cc",
1380 "test_utils.h",
1381 "virtual_socket_server.cc",
1382 "virtual_socket_server.h",
Henrik Kjellanderc0362762017-06-29 06:03:041383 ]
Henrik Kjellanderc0362762017-06-29 06:03:041384 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011385 ":async_socket",
Florent Castelliceb7b362022-04-19 15:35:041386 ":byte_buffer",
Patrik Höglunda8005cf2017-12-13 15:05:421387 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011388 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561389 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301390 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461391 ":macromagic",
Henrik Kjellanderc0362762017-06-29 06:03:041392 ":rtc_base",
Florent Castelli33d31fb2022-04-04 14:57:521393 ":rtc_event",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011394 ":socket",
1395 ":socket_address",
1396 ":socket_factory",
1397 ":socket_server",
Florent Castelli57aa81b2022-04-04 15:14:021398 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011399 ":threading",
Florent Castellidd837e22022-04-04 15:16:151400 ":timeutils",
Sebastian Jansson5f83cf02018-05-08 12:52:221401 "../api/units:time_delta",
Sebastian Janssond624c392019-04-17 08:36:031402 "../api/units:timestamp",
Jonas Orelandc06fe8b2022-03-28 12:58:261403 "../test:scoped_key_value_config",
1404 "memory:always_valid_pointer",
Niels Möller13339482019-03-28 12:30:151405 "memory:fifo_buffer",
Markus Handell18523c32020-07-08 15:55:581406 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281407 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411408 ]
1409 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301410 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:331411 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:491412 "//third_party/abseil-cpp/absl/strings",
Henrik Kjellanderc0362762017-06-29 06:03:041413 ]
Henrik Kjellanderc0362762017-06-29 06:03:041414}
1415
Mirko Bonadei86d053c2019-10-17 19:32:041416rtc_library("task_queue_for_test") {
Tommida8781f2018-02-19 11:41:431417 testonly = true
1418
1419 sources = [
1420 "task_queue_for_test.cc",
1421 "task_queue_for_test.h",
1422 ]
1423 deps = [
1424 ":checks",
Florent Castelli4467ad72022-04-04 13:18:461425 ":macromagic",
Danil Chapovalovd26a9162019-03-19 17:08:371426 ":rtc_event",
Tommida8781f2018-02-19 11:41:431427 ":rtc_task_queue",
Danil Chapovalov5286dcf2022-07-18 15:04:561428 "../api:function_view",
Danil Chapovaloveb90e6f2019-10-15 08:04:571429 "../api/task_queue",
Danil Chapovalovd26a9162019-03-19 17:08:371430 "../api/task_queue:default_task_queue_factory",
Tommida8781f2018-02-19 11:41:431431 ]
Danil Chapovalov5286dcf2022-07-18 15:04:561432 absl_deps = [
1433 "//third_party/abseil-cpp/absl/cleanup",
1434 "//third_party/abseil-cpp/absl/strings",
1435 ]
Tommida8781f2018-02-19 11:41:431436}
1437
Henrik Kjellanderc0362762017-06-29 06:03:041438if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:041439 rtc_library("sigslot_unittest") {
Artem Titove41c4332018-07-25 13:04:281440 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:101441 sources = [ "sigslot_unittest.cc" ]
Artem Titove41c4332018-07-25 13:04:281442 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081443 ":gunit_helpers",
Artem Titove41c4332018-07-25 13:04:281444 ":rtc_base",
1445 ":rtc_base_tests_utils",
Yves Gerey3e707812018-11-28 15:47:491446 "../test:test_support",
Markus Handell18523c32020-07-08 15:55:581447 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281448 "third_party/sigslot",
1449 ]
1450 }
1451
Karl Wiberg70026f92020-09-18 08:03:161452 rtc_library("untyped_function_unittest") {
Karl Wiberg78e9acd2020-09-15 09:06:341453 testonly = true
Karl Wiberg70026f92020-09-18 08:03:161454 sources = [ "untyped_function_unittest.cc" ]
Karl Wiberg78e9acd2020-09-15 09:06:341455 deps = [
Karl Wiberg70026f92020-09-18 08:03:161456 ":untyped_function",
Karl Wiberg78e9acd2020-09-15 09:06:341457 "../test:test_support",
1458 ]
1459 }
1460
Henrik Boström27c29362019-10-21 13:21:551461 rtc_library("rtc_operations_chain_unittests") {
1462 testonly = true
1463
Mirko Bonadeiccbe95f2020-01-21 11:10:101464 sources = [ "operations_chain_unittest.cc" ]
Henrik Boström27c29362019-10-21 13:21:551465 deps = [
Henrik Boströme8b00a12020-08-25 15:11:201466 ":gunit_helpers",
Henrik Boström27c29362019-10-21 13:21:551467 ":rtc_base",
Henrik Boström27c29362019-10-21 13:21:551468 ":rtc_event",
1469 ":rtc_operations_chain",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011470 ":threading",
Henrik Boström27c29362019-10-21 13:21:551471 "../test:test_support",
1472 ]
1473 }
1474
Andrey Logvine7c79fd2021-02-01 09:56:371475 if (!build_with_chromium) {
1476 rtc_library("rtc_base_nonparallel_tests") {
1477 testonly = true
Henrik Kjellanderc0362762017-06-29 06:03:041478
Andrey Logvine7c79fd2021-02-01 09:56:371479 sources = [
1480 "cpu_time_unittest.cc",
1481 "file_rotating_stream_unittest.cc",
1482 "null_socket_server_unittest.cc",
1483 "physical_socket_server_unittest.cc",
1484 "socket_address_unittest.cc",
1485 "socket_unittest.cc",
1486 "socket_unittest.h",
Tommi16db7ff2020-09-26 09:57:261487 ]
Andrey Logvine7c79fd2021-02-01 09:56:371488 deps = [
Florent Castellif9c59842022-04-19 15:07:231489 ":buffer",
Andrey Logvine7c79fd2021-02-01 09:56:371490 ":checks",
1491 ":gunit_helpers",
1492 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561493 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301494 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461495 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371496 ":net_helpers",
1497 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:281498 ":platform_thread",
Andrey Logvine7c79fd2021-02-01 09:56:371499 ":rtc_base",
1500 ":rtc_base_tests_utils",
1501 ":socket",
1502 ":socket_address",
1503 ":socket_server",
1504 ":testclient",
1505 ":threading",
Florent Castellidd837e22022-04-04 15:16:151506 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371507 "../system_wrappers",
1508 "../test:fileutils",
1509 "../test:test_main",
1510 "../test:test_support",
1511 "third_party/sigslot",
1512 "//testing/gtest",
1513 ]
Ali Tofigh7fa90572022-03-17 14:47:491514 absl_deps = [
1515 "//third_party/abseil-cpp/absl/memory",
1516 "//third_party/abseil-cpp/absl/strings",
1517 ]
Tommi16db7ff2020-09-26 09:57:261518 }
Andrey Logvine7c79fd2021-02-01 09:56:371519
1520 rtc_library("rtc_base_approved_unittests") {
1521 testonly = true
1522 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371523 "base64_unittest.cc",
1524 "bit_buffer_unittest.cc",
Danil Chapovalov5af152c2021-08-31 13:27:511525 "bitstream_reader_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371526 "bounded_inline_vector_unittest.cc",
1527 "buffer_queue_unittest.cc",
1528 "buffer_unittest.cc",
1529 "byte_buffer_unittest.cc",
1530 "byte_order_unittest.cc",
1531 "checks_unittest.cc",
1532 "copy_on_write_buffer_unittest.cc",
1533 "deprecated/recursive_critical_section_unittest.cc",
1534 "event_tracer_unittest.cc",
1535 "event_unittest.cc",
1536 "logging_unittest.cc",
1537 "numerics/divide_round_unittest.cc",
1538 "numerics/histogram_percentile_counter_unittest.cc",
1539 "numerics/mod_ops_unittest.cc",
1540 "numerics/moving_max_counter_unittest.cc",
1541 "numerics/safe_compare_unittest.cc",
1542 "numerics/safe_minmax_unittest.cc",
1543 "numerics/sample_counter_unittest.cc",
1544 "one_time_event_unittest.cc",
1545 "platform_thread_unittest.cc",
1546 "random_unittest.cc",
1547 "rate_limiter_unittest.cc",
1548 "rate_statistics_unittest.cc",
1549 "rate_tracker_unittest.cc",
1550 "ref_counted_object_unittest.cc",
1551 "sanitizer_unittest.cc",
1552 "string_encode_unittest.cc",
1553 "string_to_number_unittest.cc",
1554 "string_utils_unittest.cc",
1555 "strings/string_builder_unittest.cc",
1556 "strings/string_format_unittest.cc",
Victor Boivieb9182302021-09-21 12:51:051557 "strong_alias_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371558 "swap_queue_unittest.cc",
1559 "thread_annotations_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371560 "time_utils_unittest.cc",
1561 "timestamp_aligner_unittest.cc",
1562 "virtual_socket_unittest.cc",
1563 "zero_memory_unittest.cc",
1564 ]
Andrey Logvine7c79fd2021-02-01 09:56:371565 deps = [
Florent Castelli7f623b02022-04-14 11:34:561566 ":bit_buffer",
Danil Chapovalov5af152c2021-08-31 13:27:511567 ":bitstream_reader",
Andrey Logvine7c79fd2021-02-01 09:56:371568 ":bounded_inline_vector",
Florent Castellif9c59842022-04-19 15:07:231569 ":buffer",
Florent Castelli76063752022-04-19 15:14:261570 ":buffer_queue",
Florent Castelliceb7b362022-04-19 15:35:041571 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361572 ":byte_order",
Andrey Logvine7c79fd2021-02-01 09:56:371573 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461574 ":copy_on_write_buffer",
Niels Möller9233af32021-06-22 09:24:061575 ":criticalsection",
Andrey Logvine7c79fd2021-02-01 09:56:371576 ":divide_round",
Florent Castellia30aef32022-04-19 15:47:131577 ":event_tracer",
Andrey Logvine7c79fd2021-02-01 09:56:371578 ":gunit_helpers",
Florent Castelli17296422022-04-14 11:48:101579 ":histogram_percentile_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371580 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561581 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301582 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461583 ":macromagic",
Florent Castelli31764092022-04-14 11:41:581584 ":mod_ops",
1585 ":moving_max_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371586 ":null_socket_server",
Florent Castelli6b608592022-04-14 11:18:041587 ":one_time_event",
Florent Castelli45a05992022-04-14 10:18:281588 ":platform_thread",
Florent Castelli71337f32022-04-14 10:41:261589 ":random",
Andrey Logvine7c79fd2021-02-01 09:56:371590 ":rate_limiter",
Florent Castelli6bb1fd32022-04-19 13:58:391591 ":rate_statistics",
Florent Castelli58cc4682022-04-19 13:50:281592 ":rate_tracker",
Florent Castellif86f6f92022-04-05 00:54:121593 ":refcount",
Andrey Logvine7c79fd2021-02-01 09:56:371594 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371595 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521596 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371597 ":rtc_numerics",
1598 ":rtc_task_queue",
1599 ":safe_compare",
1600 ":safe_minmax",
Florent Castelli83a36d42022-04-14 11:44:391601 ":sample_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371602 ":sanitizer",
1603 ":socket",
1604 ":socket_address",
1605 ":socket_server",
1606 ":stringutils",
Florent Castellia6c10e32022-04-14 11:08:441607 ":strong_alias",
Florent Castellid119b9e2022-04-14 11:23:511608 ":swap_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371609 ":testclient",
1610 ":threading",
Florent Castellib1dc4e42022-04-14 11:20:121611 ":timestamp_aligner",
Florent Castellidd837e22022-04-04 15:16:151612 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511613 ":zero_memory",
Andrey Logvine7c79fd2021-02-01 09:56:371614 "../api:array_view",
Niels Möller105711e2022-06-14 13:48:261615 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371616 "../api:scoped_refptr",
1617 "../api/numerics",
1618 "../api/units:time_delta",
1619 "../system_wrappers",
1620 "../test:fileutils",
1621 "../test:test_main",
1622 "../test:test_support",
Nico Weber79bd4f12021-10-05 19:01:261623 "containers:flat_map",
Victor Boiviefd954fc2021-06-29 07:21:111624 "containers:unittests",
Andrey Logvine7c79fd2021-02-01 09:56:371625 "memory:unittests",
1626 "synchronization:mutex",
Andrey Logvine7c79fd2021-02-01 09:56:371627 "third_party/base64",
1628 "third_party/sigslot",
1629 ]
1630 absl_deps = [
1631 "//third_party/abseil-cpp/absl/base:core_headers",
1632 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov5af152c2021-08-31 13:27:511633 "//third_party/abseil-cpp/absl/numeric:bits",
Ali Tofigh6364d082022-03-14 12:32:041634 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:361635 "//third_party/abseil-cpp/absl/types:optional",
Tommi16db7ff2020-09-26 09:57:261636 ]
Florent Castelli15a3c3f2022-04-27 08:33:271637
1638 if (is_win) {
1639 deps += [ "win:windows_version_unittest" ]
1640 }
Tommi16db7ff2020-09-26 09:57:261641 }
Andrey Logvine7c79fd2021-02-01 09:56:371642
1643 rtc_library("rtc_task_queue_unittests") {
1644 testonly = true
1645
1646 sources = [ "task_queue_unittest.cc" ]
1647 deps = [
1648 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371649 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521650 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371651 ":rtc_task_queue",
1652 ":task_queue_for_test",
Florent Castellidd837e22022-04-04 15:16:151653 ":timeutils",
Danil Chapovalov5286dcf2022-07-18 15:04:561654 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371655 "../test:test_main",
1656 "../test:test_support",
1657 ]
1658 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Diogo Real1dca9d52017-08-29 19:18:321659 }
Andrey Logvine7c79fd2021-02-01 09:56:371660
1661 rtc_library("weak_ptr_unittests") {
1662 testonly = true
1663
1664 sources = [ "weak_ptr_unittest.cc" ]
1665 deps = [
1666 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371667 ":rtc_base_tests_utils",
1668 ":rtc_event",
1669 ":task_queue_for_test",
1670 ":weak_ptr",
1671 "../test:test_main",
1672 "../test:test_support",
1673 ]
1674 }
1675
1676 rtc_library("rtc_numerics_unittests") {
1677 testonly = true
1678
1679 sources = [
1680 "numerics/event_based_exponential_moving_average_unittest.cc",
1681 "numerics/exp_filter_unittest.cc",
1682 "numerics/moving_average_unittest.cc",
1683 "numerics/moving_median_filter_unittest.cc",
1684 "numerics/percentile_filter_unittest.cc",
1685 "numerics/running_statistics_unittest.cc",
1686 "numerics/sequence_number_util_unittest.cc",
1687 ]
1688 deps = [
Andrey Logvine7c79fd2021-02-01 09:56:371689 ":rtc_numerics",
1690 "../test:test_main",
1691 "../test:test_support",
1692 ]
1693 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
1694 }
1695
1696 rtc_library("rtc_json_unittests") {
1697 testonly = true
1698
1699 sources = [ "strings/json_unittest.cc" ]
1700 deps = [
1701 ":gunit_helpers",
1702 ":rtc_base_tests_utils",
1703 ":rtc_json",
1704 "../test:test_main",
1705 "../test:test_support",
1706 ]
1707 }
1708
1709 rtc_library("rtc_base_unittests") {
1710 testonly = true
1711 defines = []
1712
1713 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371714 "crc32_unittest.cc",
1715 "data_rate_limiter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371716 "fake_clock_unittest.cc",
1717 "helpers_unittest.cc",
1718 "ip_address_unittest.cc",
1719 "memory_usage_unittest.cc",
1720 "message_digest_unittest.cc",
1721 "nat_unittest.cc",
1722 "network_route_unittest.cc",
1723 "network_unittest.cc",
1724 "proxy_unittest.cc",
1725 "rolling_accumulator_unittest.cc",
1726 "rtc_certificate_generator_unittest.cc",
1727 "rtc_certificate_unittest.cc",
1728 "sigslot_tester_unittest.cc",
1729 "test_client_unittest.cc",
1730 "thread_unittest.cc",
1731 "unique_id_generator_unittest.cc",
1732 ]
1733 deps = [
Florent Castellif9c59842022-04-19 15:07:231734 ":buffer",
Florent Castelli76063752022-04-19 15:14:261735 ":buffer_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371736 ":checks",
1737 ":gunit_helpers",
1738 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301739 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461740 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371741 ":net_helpers",
1742 ":null_socket_server",
Florent Castellib96902d2022-04-14 09:58:241743 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371744 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521745 ":rtc_event",
Florent Castellie10a9f62022-04-04 15:04:371746 ":safe_conversions",
Niels Möllerd0b88792021-08-12 08:32:301747 ":socket",
Andrey Logvine7c79fd2021-02-01 09:56:371748 ":socket_address",
1749 ":socket_factory",
1750 ":socket_server",
1751 ":stringutils",
1752 ":testclient",
1753 ":threading",
Florent Castellidd837e22022-04-04 15:16:151754 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371755 "../api:array_view",
Ali Tofigh83db78e2022-08-23 10:57:161756 "../api:field_trials_view",
Niels Möller105711e2022-06-14 13:48:261757 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371758 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451759 "../api/task_queue:pending_task_safety_flag",
Andrey Logvine7c79fd2021-02-01 09:56:371760 "../api/task_queue:task_queue_test",
Danil Chapovalov4bcf8092022-07-06 17:42:341761 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371762 "../test:field_trial",
1763 "../test:fileutils",
1764 "../test:rtc_expect_death",
Jonas Orelandc06fe8b2022-03-28 12:58:261765 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:371766 "../test:test_main",
1767 "../test:test_support",
1768 "memory:fifo_buffer",
1769 "synchronization:mutex",
Andrey Logvine7c79fd2021-02-01 09:56:371770 "third_party/sigslot",
1771 ]
1772 if (enable_google_benchmarks) {
1773 deps += [ "synchronization:synchronization_unittests" ]
1774 }
1775 if (is_win) {
1776 sources += [
1777 "win32_unittest.cc",
1778 "win32_window_unittest.cc",
1779 ]
1780 deps += [ ":win32" ]
1781 }
1782 if (is_posix || is_fuchsia) {
1783 sources += [
1784 "openssl_adapter_unittest.cc",
1785 "openssl_session_cache_unittest.cc",
1786 "openssl_utility_unittest.cc",
1787 "ssl_adapter_unittest.cc",
1788 "ssl_identity_unittest.cc",
1789 "ssl_stream_adapter_unittest.cc",
1790 ]
1791 }
1792 absl_deps = [
1793 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov5286dcf2022-07-18 15:04:561794 "//third_party/abseil-cpp/absl/functional:any_invocable",
Andrey Logvine7c79fd2021-02-01 09:56:371795 "//third_party/abseil-cpp/absl/memory",
1796 "//third_party/abseil-cpp/absl/strings",
1797 "//third_party/abseil-cpp/absl/types:optional",
1798 ]
Florent Castellib96902d2022-04-14 09:58:241799
Andrey Logvine7c79fd2021-02-01 09:56:371800 if (build_with_chromium) {
1801 include_dirs = [ "../../boringssl/src/include" ]
1802 }
1803 if (rtc_build_ssl) {
1804 deps += [ "//third_party/boringssl" ]
1805 } else {
1806 configs += [ ":external_ssl_library" ]
1807 }
Diogo Real1dca9d52017-08-29 19:18:321808 }
Henrik Kjellanderc0362762017-06-29 06:03:041809 }
1810}
1811
Henrik Kjellander73e21802017-06-20 06:38:581812if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:331813 rtc_android_library("base_java") {
Sami Kalliomäki51f599b2019-07-03 12:13:081814 visibility = [ "*" ]
Natalie Chouinard65bbcab2019-12-23 22:02:251815 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041816 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 12:31:381817 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 06:03:041818 "java/src/org/webrtc/Logging.java",
1819 "java/src/org/webrtc/Size.java",
1820 "java/src/org/webrtc/ThreadUtils.java",
1821 ]
Byoungchan Lee02334e02021-08-14 02:41:591822 deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
Henrik Kjellander73e21802017-06-20 06:38:581823 }
Jonas Orelandf7721fb2020-08-07 09:08:341824 java_cpp_enum("network_monitor_enums") {
1825 sources = [ "network_monitor.h" ]
Jonas Orelandfe4688e2020-08-07 12:08:331826 visibility = [ "*" ]
Jonas Orelandf7721fb2020-08-07 09:08:341827 }
Henrik Kjellander73e21802017-06-20 06:38:581828}