blob: 8ac6e4102c4962fa47cee9d2096db6bc0059ad0a [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 Castelli7f623b02022-04-14 11:34:56221rtc_library("race_checker") {
222 visibility = [ "*" ]
223 sources = [
224 "race_checker.cc",
225 "race_checker.h",
226 ]
227 deps = [
228 ":checks",
229 ":macromagic",
230 ":platform_thread_types",
231 ]
232}
233
Florent Castelli71337f32022-04-14 10:41:26234rtc_library("random") {
235 visibility = [ "*" ]
236 sources = [
237 "random.cc",
238 "random.h",
239 ]
240 deps = [
241 ":checks",
242 ":safe_conversions",
243 ]
244}
245
Florent Castelli6bb1fd32022-04-19 13:58:39246rtc_library("rate_statistics") {
247 visibility = [ "*" ]
248 sources = [
249 "rate_statistics.cc",
250 "rate_statistics.h",
251 ]
252 deps = [
253 ":checks",
254 ":logging",
255 ":safe_conversions",
256 "system:rtc_export",
257 ]
258 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
259}
260
Florent Castelli58cc4682022-04-19 13:50:28261rtc_library("rate_tracker") {
262 visibility = [ "*" ]
263 sources = [
264 "rate_tracker.cc",
265 "rate_tracker.h",
266 ]
267 deps = [
268 ":checks",
269 ":timeutils",
270 ]
271}
272
Florent Castelli83a36d42022-04-14 11:44:39273rtc_library("sample_counter") {
274 visibility = [ "*" ]
275 sources = [
276 "numerics/sample_counter.cc",
277 "numerics/sample_counter.h",
278 ]
279 deps = [
280 ":checks",
281 ":safe_conversions",
282 ]
283 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
284}
285
Florent Castellib1dc4e42022-04-14 11:20:12286rtc_library("timestamp_aligner") {
287 visibility = [ "*" ]
288 sources = [
289 "timestamp_aligner.cc",
290 "timestamp_aligner.h",
291 ]
292 deps = [
293 ":checks",
294 ":logging",
295 ":timeutils",
296 "system:rtc_export",
297 ]
298}
299
Florent Castellid119b9e2022-04-14 11:23:51300rtc_library("zero_memory") {
301 visibility = [ "*" ]
302 sources = [
303 "zero_memory.cc",
304 "zero_memory.h",
305 ]
306 deps = [
307 ":checks",
308 "../api:array_view",
309 ]
310}
311
Mirko Bonadei86d053c2019-10-17 19:32:04312rtc_library("platform_thread_types") {
Tommi8d2c5a82018-03-19 10:12:48313 sources = [
314 "platform_thread_types.cc",
315 "platform_thread_types.h",
316 ]
Mirko Bonadeid4096212022-11-24 08:01:35317 deps = [
318 ":checks",
319 ":macromagic",
320 ]
Tommi8d2c5a82018-03-19 10:12:48321}
322
Tommi8d2c5a82018-03-19 10:12:48323rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 07:47:12324 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48325 sources = [
Steve Anton10542f22019-01-11 17:11:00326 "ref_count.h",
327 "ref_counted_object.h",
328 "ref_counter.h",
Tommi8d2c5a82018-03-19 10:12:48329 ]
Tomas Gunnarssond7842002021-04-22 15:41:33330 deps = [
331 ":macromagic",
332 "../api:scoped_refptr",
333 ]
Tommi8d2c5a82018-03-19 10:12:48334}
335
Mirko Bonadei86d053c2019-10-17 19:32:04336rtc_library("criticalsection") {
Tommi8d2c5a82018-03-19 10:12:48337 sources = [
Markus Handell3cb525b2020-07-16 14:16:09338 "deprecated/recursive_critical_section.cc",
339 "deprecated/recursive_critical_section.h",
Tommi8d2c5a82018-03-19 10:12:48340 ]
341 deps = [
Tommi8d2c5a82018-03-19 10:12:48342 ":checks",
343 ":macromagic",
344 ":platform_thread_types",
Markus Handellf70fbc82020-06-03 22:41:20345 "synchronization:yield",
Niels Möllera12c42a2018-07-25 14:05:48346 "system:unused",
Tommi8d2c5a82018-03-19 10:12:48347 ]
348}
349
Mirko Bonadei86d053c2019-10-17 19:32:04350rtc_library("platform_thread") {
Tommi8d2c5a82018-03-19 10:12:48351 sources = [
352 "platform_thread.cc",
353 "platform_thread.h",
354 ]
355 deps = [
Tommi8d2c5a82018-03-19 10:12:48356 ":checks",
357 ":macromagic",
358 ":platform_thread_types",
359 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48360 ":timeutils",
Artem Titovd15a5752021-02-10 13:31:24361 "../api:sequence_checker",
Tommi8d2c5a82018-03-19 10:12:48362 ]
Markus Handell97c44582021-04-20 15:41:54363 absl_deps = [
364 "//third_party/abseil-cpp/absl/memory",
365 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:36366 "//third_party/abseil-cpp/absl/types:optional",
Markus Handell97c44582021-04-20 15:41:54367 ]
Tommi8d2c5a82018-03-19 10:12:48368}
369
Mirko Bonadei86d053c2019-10-17 19:32:04370rtc_library("rtc_event") {
Tommi8d2c5a82018-03-19 10:12:48371 if (build_with_chromium) {
372 sources = [
373 "../../webrtc_overrides/rtc_base/event.cc",
374 "../../webrtc_overrides/rtc_base/event.h",
375 ]
Karl Wiberg98417032019-03-24 18:12:40376 deps = [
377 ":checks",
Markus Handell211ecb42022-08-16 13:31:26378 "../api/units:time_delta",
Mirko Bonadeid4002a72019-11-12 19:11:48379 "system:rtc_export", # Only Chromium's rtc::Event use RTC_EXPORT.
Karl Wiberg98417032019-03-24 18:12:40380 "//base", # Dependency on chromium's waitable_event.
381 ]
Tommi8d2c5a82018-03-19 10:12:48382 } else {
383 sources = [
384 "event.cc",
385 "event.h",
386 ]
Karl Wiberg98417032019-03-24 18:12:40387 deps = [
388 ":checks",
Markus Handell1d5be492022-08-18 13:49:09389 ":timeutils",
390 "../api/units:time_delta",
Karl Wiberg98417032019-03-24 18:12:40391 "synchronization:yield_policy",
392 "system:warn_current_thread_is_deadlocked",
393 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41394 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Tommi8d2c5a82018-03-19 10:12:48395 }
Tommi8d2c5a82018-03-19 10:12:48396}
397
Mirko Bonadeicb03e382022-02-10 13:27:57398config("chromium_logging_config") {
Danil Chapovalove6106102022-02-16 11:29:02399 defines = [ "LOGGING_INSIDE_WEBRTC" ]
Mirko Bonadeicb03e382022-02-10 13:27:57400}
401
Mirko Bonadei86d053c2019-10-17 19:32:04402rtc_library("logging") {
Mirko Bonadei2ad8c432018-08-09 08:54:40403 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51404 libs = []
Tommi8d2c5a82018-03-19 10:12:48405 deps = [
Yves Gerey988cc082018-10-23 10:03:01406 ":checks",
Tommi8d2c5a82018-03-19 10:12:48407 ":macromagic",
408 ":platform_thread_types",
409 ":stringutils",
410 ":timeutils",
Mirko Bonadei96191f82022-08-03 08:12:33411 "../api/units:timestamp",
Markus Handellde8a9352020-06-10 13:40:42412 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41413 ]
414 absl_deps = [
Danil Chapovalovef98ae62019-10-11 15:18:29415 "//third_party/abseil-cpp/absl/base:core_headers",
Sebastian Janssonf4e085a2019-05-20 16:34:07416 "//third_party/abseil-cpp/absl/meta:type_traits",
Jonas Olssonf2ce37c2018-09-12 13:32:47417 "//third_party/abseil-cpp/absl/strings",
Mirko Bonadei96191f82022-08-03 08:12:33418 "//third_party/abseil-cpp/absl/types:optional",
Tommi8d2c5a82018-03-19 10:12:48419 ]
420
421 if (build_with_chromium) {
422 # Dependency on chromium's logging (in //base).
Artem Titov94b57c02019-03-21 12:35:10423 deps += [ "//base" ]
Tommi8d2c5a82018-03-19 10:12:48424 sources = [
425 "../../webrtc_overrides/rtc_base/logging.cc",
426 "../../webrtc_overrides/rtc_base/logging.h",
427 ]
Danil Chapovalove6106102022-02-16 11:29:02428
Mirko Bonadeicb03e382022-02-10 13:27:57429 # This macro needs to be both present in all WebRTC targets (see its
430 # definition in //BUILD.gn but also propagated to all the targets
431 # depending on the Chromium component defined in
432 # //third_party/webrtc_overrides:webrtc_component. This public_config
433 # allows GN to propagate the macro accordingly.
Danil Chapovalove6106102022-02-16 11:29:02434 public_configs = [ ":chromium_logging_config" ]
Tommi8d2c5a82018-03-19 10:12:48435 } else {
436 sources = [
437 "logging.cc",
438 "logging.h",
439 ]
Karl Wibergcefc4652018-05-23 21:20:38440 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 10:12:48441
Mirko Bonadei99a70a22018-10-09 14:45:14442 if (is_mac) {
Sylvain Defresnec7f0dff2020-07-03 08:19:30443 frameworks = [ "Foundation.framework" ]
Mirko Bonadei99a70a22018-10-09 14:45:14444 }
445
Patrik Höglund77301932018-10-09 13:09:51446 if (is_android) {
447 libs += [ "log" ]
448 }
Tommi8d2c5a82018-03-19 10:12:48449 }
450}
451
Mirko Bonadei86d053c2019-10-17 19:32:04452rtc_library("checks") {
Mirko Bonadei2ad8c432018-08-09 08:54:40453 # TODO(bugs.webrtc.org/9607): This should not be public.
454 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51455 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:42456 sources = [
457 "checks.cc",
458 "checks.h",
459 ]
460 deps = [
461 ":safe_compare",
Niels Möller94327682022-04-28 11:20:29462 "../api:scoped_refptr",
Jonas Olssonf8e5c112018-06-14 11:14:22463 "system:inline",
Mirko Bonadei35214fc2019-09-23 12:54:28464 "system:rtc_export",
Mirko Bonadei2dcf3482020-06-05 12:30:41465 ]
Peter Boströmd6e861d2022-07-29 20:44:21466 if (build_with_chromium) {
467 sources += [ "../../webrtc_overrides/rtc_base/checks_overrides.cc" ]
468 deps += [ "//base" ]
469 }
Mirko Bonadei2dcf3482020-06-05 12:30:41470 absl_deps = [
Sebastian Janssonf4e085a2019-05-20 16:34:07471 "//third_party/abseil-cpp/absl/meta:type_traits",
Mirko Bonadeid4a37a62019-03-11 09:31:22472 "//third_party/abseil-cpp/absl/strings",
Patrik Höglunda8005cf2017-12-13 15:05:42473 ]
Patrik Höglund77301932018-10-09 13:09:51474 if (is_android) {
475 libs += [ "log" ]
476 }
Patrik Höglunda8005cf2017-12-13 15:05:42477}
478
Mirko Bonadei86d053c2019-10-17 19:32:04479rtc_library("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 15:05:42480 sources = [
Patrik Höglund3e113432017-12-15 13:40:10481 "rate_limiter.cc",
482 "rate_limiter.h",
483 ]
484 deps = [
Florent Castelli4467ad72022-04-04 13:18:46485 ":macromagic",
Florent Castelli6bb1fd32022-04-19 13:58:39486 ":rate_statistics",
Patrik Höglund3e113432017-12-15 13:40:10487 "../system_wrappers",
Markus Handell18523c32020-07-08 15:55:58488 "synchronization:mutex",
Patrik Höglunda8005cf2017-12-13 15:05:42489 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41490 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Patrik Höglunda8005cf2017-12-13 15:05:42491}
492
493rtc_source_set("sanitizer") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10494 sources = [ "sanitizer.h" ]
Mirko Bonadei2dcf3482020-06-05 12:30:41495 absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42496}
497
Karl Wibergc1269372020-03-02 19:23:41498rtc_source_set("bounded_inline_vector") {
499 public = [ "bounded_inline_vector.h" ]
500 sources = [ "bounded_inline_vector_impl.h" ]
501 deps = [ ":checks" ]
502}
503
Danil Chapovalov33b83fd2019-09-18 13:48:23504rtc_source_set("divide_round") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10505 sources = [ "numerics/divide_round.h" ]
Danil Chapovalov33b83fd2019-09-18 13:48:23506 deps = [
507 ":checks",
508 ":safe_compare",
509 ]
510}
511
Patrik Höglunda8005cf2017-12-13 15:05:42512rtc_source_set("safe_compare") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10513 sources = [ "numerics/safe_compare.h" ]
514 deps = [ ":type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42515}
516
Karl Wiberg12edf4c2018-03-07 13:18:56517rtc_source_set("safe_minmax") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10518 sources = [ "numerics/safe_minmax.h" ]
Karl Wiberg12edf4c2018-03-07 13:18:56519 deps = [
520 ":checks",
521 ":safe_compare",
522 ":type_traits",
523 ]
524}
525
Tommi8d2c5a82018-03-19 10:12:48526rtc_source_set("safe_conversions") {
527 sources = [
528 "numerics/safe_conversions.h",
529 "numerics/safe_conversions_impl.h",
530 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10531 deps = [ ":checks" ]
Tommi8d2c5a82018-03-19 10:12:48532}
533
Mirko Bonadei86d053c2019-10-17 19:32:04534rtc_library("timeutils") {
Mirko Bonadei2ad8c432018-08-09 08:54:40535 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48536 sources = [
Johannes Kronb73c9f02021-02-15 12:29:45537 "system_time.cc",
538 "system_time.h",
Steve Anton10542f22019-01-11 17:11:00539 "time_utils.cc",
540 "time_utils.h",
Tommi8d2c5a82018-03-19 10:12:48541 ]
542 deps = [
543 ":checks",
544 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 11:41:30545 ":stringutils",
Mirko Bonadei35214fc2019-09-23 12:54:28546 "system:rtc_export",
Tommi8d2c5a82018-03-19 10:12:48547 ]
Johannes Kronbb52bdf2021-02-25 09:10:08548 if (rtc_exclude_system_time) {
549 defines = [ "WEBRTC_EXCLUDE_SYSTEM_TIME" ]
550 }
551
Noah Richards342989d2019-03-18 20:50:20552 libs = []
553 if (is_win) {
554 libs += [ "winmm.lib" ]
555 }
Tommi8d2c5a82018-03-19 10:12:48556}
557
Mirko Bonadei86d053c2019-10-17 19:32:04558rtc_library("stringutils") {
Patrik Höglunda8005cf2017-12-13 15:05:42559 sources = [
Steve Anton10542f22019-01-11 17:11:00560 "string_encode.cc",
561 "string_encode.h",
Jonas Olsson6b1985d2018-07-05 09:59:48562 "string_to_number.cc",
563 "string_to_number.h",
Steve Anton10542f22019-01-11 17:11:00564 "string_utils.cc",
565 "string_utils.h",
Karl Wiberg881f1682018-03-08 14:03:23566 "strings/string_builder.cc",
Tommifef05002018-02-27 12:51:08567 "strings/string_builder.h",
henrikaf0dc5c52020-04-09 16:46:00568 "strings/string_format.cc",
569 "strings/string_format.h",
Patrik Höglunda8005cf2017-12-13 15:05:42570 ]
571 deps = [
Patrik Höglund3e113432017-12-15 13:40:10572 ":checks",
Jonas Olsson6b1985d2018-07-05 09:59:48573 ":macromagic",
Karl Wiberg881f1682018-03-08 14:03:23574 ":safe_minmax",
575 "../api:array_view",
Mirko Bonadei2dcf3482020-06-05 12:30:41576 ]
577 absl_deps = [
Artem Titov94b57c02019-03-21 12:35:10578 "//third_party/abseil-cpp/absl/strings",
Jonas Olsson6b1985d2018-07-05 09:59:48579 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 13:40:10580 ]
581}
582
Mirko Bonadei86d053c2019-10-17 19:32:04583rtc_library("audio_format_to_string") {
Jonas Olsson74395342018-04-03 10:22:07584 sources = [
585 "strings/audio_format_to_string.cc",
586 "strings/audio_format_to_string.h",
587 ]
588 deps = [
589 ":stringutils",
590 "../api/audio_codecs:audio_codecs_api",
591 ]
592}
593
Patrik Höglund3e113432017-12-15 13:40:10594rtc_source_set("type_traits") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10595 sources = [ "type_traits.h" ]
Patrik Höglund3e113432017-12-15 13:40:10596}
597
Mirko Bonadei86d053c2019-10-17 19:32:04598rtc_library("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53599 visibility = [ "*" ]
nisse75dd6d42017-09-19 15:28:00600 sources = [
Danil Chapovalov07a4f2b2019-03-05 18:58:28601 "task_queue.cc",
nisse75dd6d42017-09-19 15:28:00602 "task_queue.h",
603 ]
perkj650fdae2017-08-25 12:00:11604 deps = [
Tommi8d2c5a82018-03-19 10:12:48605 ":macromagic",
Danil Chapovalov959e9b62019-01-14 13:29:18606 "../api/task_queue",
Mirko Bonadei3d255302018-10-11 08:50:45607 "system:rtc_export",
perkj650fdae2017-08-25 12:00:11608 ]
Danil Chapovalova7e15a22022-07-05 14:03:03609 absl_deps = [
610 "//third_party/abseil-cpp/absl/functional:any_invocable",
611 "//third_party/abseil-cpp/absl/memory",
612 ]
Danil Chapovalov07a4f2b2019-03-05 18:58:28613}
614
Henrik Boström27c29362019-10-21 13:21:55615rtc_source_set("rtc_operations_chain") {
616 visibility = [ "*" ]
617 sources = [
618 "operations_chain.cc",
619 "operations_chain.h",
620 ]
621 deps = [
622 ":checks",
623 ":macromagic",
624 ":refcount",
Niels Möller105711e2022-06-14 13:48:26625 "../api:make_ref_counted",
Niels Möller95129102022-01-13 10:00:05626 "../api:refcountedbase",
Henrik Boström27c29362019-10-21 13:21:55627 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24628 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42629 "system:no_unique_address",
Henrik Boström27c29362019-10-21 13:21:55630 ]
Henrik Boströme574a312020-08-25 08:20:11631 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Henrik Boström27c29362019-10-21 13:21:55632}
633
Tommi8d2c5a82018-03-19 10:12:48634if (rtc_enable_libevent) {
Mirko Bonadei86d053c2019-10-17 19:32:04635 rtc_library("rtc_task_queue_libevent") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28636 visibility = [ "../api/task_queue:default_task_queue_factory" ]
perkj650fdae2017-08-25 12:00:11637 sources = [
Niels Möller15c9cf72017-10-19 10:38:09638 "task_queue_libevent.cc",
Danil Chapovaloveb175242019-02-12 09:44:38639 "task_queue_libevent.h",
perkj650fdae2017-08-25 12:00:11640 ]
Tommi8d2c5a82018-03-19 10:12:48641 deps = [
642 ":checks",
Tommi8d2c5a82018-03-19 10:12:48643 ":logging",
Yves Gerey2e00abc2018-10-05 13:39:24644 ":macromagic",
Tommi8d2c5a82018-03-19 10:12:48645 ":platform_thread",
Yves Gerey2e00abc2018-10-05 13:39:24646 ":platform_thread_types",
Tommi8d2c5a82018-03-19 10:12:48647 ":safe_conversions",
648 ":timeutils",
Danil Chapovaloveb175242019-02-12 09:44:38649 "../api/task_queue",
Danil Chapovalov30c2a312022-07-19 12:12:43650 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58651 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41652 ]
653 absl_deps = [
Steve Anton9a83dd72020-01-09 19:03:25654 "//third_party/abseil-cpp/absl/container:inlined_vector",
Danil Chapovalov30c2a312022-07-19 12:12:43655 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovaloveb175242019-02-12 09:44:38656 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48657 ]
658 if (rtc_build_libevent) {
Byoungchan Leed69a7262022-06-23 13:06:00659 deps += [ "//third_party/libevent" ]
Tommi8d2c5a82018-03-19 10:12:48660 }
661 }
662}
663
664if (is_mac || is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04665 rtc_library("rtc_task_queue_gcd") {
Byoungchan Lee08438fc2021-10-12 13:53:35666 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48667 sources = [
668 "task_queue_gcd.cc",
Danil Chapovalov47cf5ea2019-02-19 19:20:16669 "task_queue_gcd.h",
Tommi8d2c5a82018-03-19 10:12:48670 ]
671 deps = [
672 ":checks",
673 ":logging",
Danil Chapovalov47cf5ea2019-02-19 19:20:16674 "../api/task_queue",
Danil Chapovalovfcfa80f2022-07-07 09:26:48675 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58676 "synchronization:mutex",
Yura Yaroshevichebf739b2020-03-16 15:00:59677 "system:gcd_helpers",
Tommi8d2c5a82018-03-19 10:12:48678 ]
Danil Chapovalovfcfa80f2022-07-07 09:26:48679 absl_deps = [
680 "//third_party/abseil-cpp/absl/functional:any_invocable",
681 "//third_party/abseil-cpp/absl/strings",
682 ]
Tommi8d2c5a82018-03-19 10:12:48683 }
684}
685
686if (is_win) {
Mirko Bonadei86d053c2019-10-17 19:32:04687 rtc_library("rtc_task_queue_win") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28688 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48689 sources = [
690 "task_queue_win.cc",
Danil Chapovalov826f2e72019-02-20 17:13:09691 "task_queue_win.h",
Tommi8d2c5a82018-03-19 10:12:48692 ]
693 deps = [
694 ":checks",
Tommi8d2c5a82018-03-19 10:12:48695 ":logging",
696 ":macromagic",
697 ":platform_thread",
Tommi8d2c5a82018-03-19 10:12:48698 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48699 ":safe_conversions",
700 ":timeutils",
Danil Chapovalov826f2e72019-02-20 17:13:09701 "../api/task_queue",
Danil Chapovalov3c06cfc2022-07-20 11:38:58702 "../api/units:time_delta",
703 "../api/units:timestamp",
Markus Handell18523c32020-07-08 15:55:58704 "synchronization:mutex",
Tommi8d2c5a82018-03-19 10:12:48705 ]
Markus Handellad5037b2021-05-07 13:02:36706 absl_deps = [
Danil Chapovalov3c06cfc2022-07-20 11:38:58707 "//third_party/abseil-cpp/absl/functional:any_invocable",
Markus Handellad5037b2021-05-07 13:02:36708 "//third_party/abseil-cpp/absl/strings",
709 "//third_party/abseil-cpp/absl/types:optional",
710 ]
Tommi8d2c5a82018-03-19 10:12:48711 }
712}
713
Mirko Bonadei86d053c2019-10-17 19:32:04714rtc_library("rtc_task_queue_stdlib") {
Robin Raymond22027b92018-11-23 14:07:50715 sources = [
716 "task_queue_stdlib.cc",
Danil Chapovalovfa52efa2019-02-21 10:13:58717 "task_queue_stdlib.h",
Robin Raymond22027b92018-11-23 14:07:50718 ]
719 deps = [
720 ":checks",
Danil Chapovalovba570012022-07-19 16:36:31721 ":divide_round",
Robin Raymond22027b92018-11-23 14:07:50722 ":logging",
723 ":macromagic",
724 ":platform_thread",
Robin Raymond22027b92018-11-23 14:07:50725 ":rtc_event",
Robin Raymond22027b92018-11-23 14:07:50726 ":safe_conversions",
727 ":timeutils",
Danil Chapovalovfa52efa2019-02-21 10:13:58728 "../api/task_queue",
Danil Chapovalovba570012022-07-19 16:36:31729 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58730 "synchronization:mutex",
Robin Raymond22027b92018-11-23 14:07:50731 ]
Danil Chapovalovba570012022-07-19 16:36:31732 absl_deps = [
733 "//third_party/abseil-cpp/absl/functional:any_invocable",
734 "//third_party/abseil-cpp/absl/strings",
735 ]
Robin Raymond22027b92018-11-23 14:07:50736}
737
Mirko Bonadei86d053c2019-10-17 19:32:04738rtc_library("weak_ptr") {
Henrik Kjellanderc0362762017-06-29 06:03:04739 sources = [
740 "weak_ptr.cc",
741 "weak_ptr.h",
742 ]
743 deps = [
Tommi8d2c5a82018-03-19 10:12:48744 ":refcount",
Mirko Bonadeid9708072019-01-25 19:26:48745 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24746 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42747 "system:no_unique_address",
Henrik Kjellanderc0362762017-06-29 06:03:04748 ]
749}
750
Mirko Bonadei86d053c2019-10-17 19:32:04751rtc_library("rtc_numerics") {
Henrik Kjellanderc0362762017-06-29 06:03:04752 sources = [
Jonas Oreland63dced92019-11-25 12:00:15753 "numerics/event_based_exponential_moving_average.cc",
754 "numerics/event_based_exponential_moving_average.h",
Henrik Kjellanderc0362762017-06-29 06:03:04755 "numerics/exp_filter.cc",
756 "numerics/exp_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48757 "numerics/math_utils.h",
Ilya Nikolaevskiy26341992018-11-05 11:55:18758 "numerics/moving_average.cc",
759 "numerics/moving_average.h",
Rasmus Brandt91664812022-09-14 14:22:24760 "numerics/moving_percentile_filter.h",
Henrik Kjellanderc0362762017-06-29 06:03:04761 "numerics/percentile_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48762 "numerics/running_statistics.h",
Bjorn Tereliusa194e582017-10-25 11:07:09763 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 06:03:04764 ]
765 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42766 ":checks",
Florent Castelli31764092022-04-14 11:41:58767 ":mod_ops",
Artem Titov9d777622020-09-18 16:23:08768 ]
769 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
770}
771
772rtc_library("rtc_stats_counters") {
773 sources = [
774 "numerics/event_rate_counter.cc",
775 "numerics/event_rate_counter.h",
776 "numerics/sample_stats.cc",
777 "numerics/sample_stats.h",
778 ]
779 deps = [
780 "../api/numerics",
Sebastian Janssonefa3f762019-12-02 06:19:55781 "../api/units:data_rate",
782 "../api/units:time_delta",
Artem Titov6fcdbc12019-09-11 09:45:40783 "../api/units:timestamp",
Mirko Bonadei2dcf3482020-06-05 12:30:41784 ]
Artem Titov9d777622020-09-18 16:23:08785 absl_deps = []
Henrik Kjellanderc0362762017-06-29 06:03:04786}
787
Mirko Bonadei65643662019-07-12 11:29:30788config("rtc_json_suppressions") {
Mirko Bonadei94077762019-06-27 09:24:25789 if (!is_win || is_clang) {
Mirko Bonadei65643662019-07-12 11:29:30790 cflags_cc = [
Mirko Bonadei1cd6f322019-07-12 19:47:47791 # TODO(bugs.webrtc.org/10814): Remove -Wno-undef as soon as it get
Mirko Bonadei65643662019-07-12 11:29:30792 # removed upstream.
793 "-Wno-undef",
794 ]
Mirko Bonadei94077762019-06-27 09:24:25795 }
796}
797
Mirko Bonadei86d053c2019-10-17 19:32:04798rtc_library("rtc_json") {
Mirko Bonadei65643662019-07-12 11:29:30799 public_configs = [ ":rtc_json_suppressions" ]
Sam Zackrisson492fdf42019-10-25 08:45:58800 poisonous = [ "rtc_json" ]
Henrik Kjellanderc0362762017-06-29 06:03:04801 defines = []
802 sources = [
Sam Zackrissonb45bdb52018-10-02 14:25:59803 "strings/json.cc",
804 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 06:03:04805 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10806 deps = [ ":stringutils" ]
Mirko Bonadeia0e29fc2018-01-26 15:50:02807 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 06:03:04808 if (rtc_build_json) {
Florent Castellif35611a2022-04-14 09:55:57809 deps += [ "//third_party/jsoncpp" ]
Henrik Kjellanderc0362762017-06-29 06:03:04810 } else {
811 include_dirs = [ "$rtc_jsoncpp_root" ]
812
813 # When defined changes the include path for json.h to where it is
814 # expected to be when building json outside of the standalone build.
815 defines += [ "WEBRTC_EXTERNAL_JSON" ]
816 }
Ali Tofigh7fa90572022-03-17 14:47:49817 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Henrik Kjellanderc0362762017-06-29 06:03:04818}
819
Mirko Bonadeie5f4c6b2021-01-15 09:41:01820rtc_library("net_helpers") {
821 sources = [
822 "net_helpers.cc",
823 "net_helpers.h",
824 ]
825 deps = []
826 if (is_android) {
827 deps += [ ":ifaddrs_android" ]
828 }
829 if (is_win) {
Nico Weber79bd4f12021-10-05 19:01:26830 deps += [
Nico Weber79bd4f12021-10-05 19:01:26831 ":win32",
Florent Castelli15a3c3f2022-04-27 08:33:27832 "win:windows_version",
Nico Weber79bd4f12021-10-05 19:01:26833 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01834 }
Ali Tofigh2ab914c2022-04-13 10:55:15835 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45836}
837
Mirko Bonadeie5f4c6b2021-01-15 09:41:01838rtc_library("async_resolver_interface") {
Karl Wiberg02f4e322019-02-10 23:43:43839 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01840 sources = [
841 "async_resolver_interface.cc",
842 "async_resolver_interface.h",
843 ]
844 deps = [
Sameer Vijaykarb787e262022-08-11 09:52:57845 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01846 ":socket_address",
847 "system:rtc_export",
848 "third_party/sigslot",
849 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45850}
851
Mirko Bonadeie5f4c6b2021-01-15 09:41:01852rtc_library("ip_address") {
Karl Wiberg02f4e322019-02-10 23:43:43853 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01854 sources = [
855 "ip_address.cc",
856 "ip_address.h",
857 ]
858 deps = [
Florent Castellia876a922022-04-19 15:18:36859 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01860 ":net_helpers",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01861 ":stringutils",
862 "system:rtc_export",
863 ]
864 if (is_win) {
865 deps += [ ":win32" ]
866 }
Ali Tofigh7fa90572022-03-17 14:47:49867 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45868}
869
Mirko Bonadeie5f4c6b2021-01-15 09:41:01870rtc_library("socket_address") {
Karl Wiberg02f4e322019-02-10 23:43:43871 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01872 sources = [
873 "socket_address.cc",
874 "socket_address.h",
875 ]
876 deps = [
Florent Castellia876a922022-04-19 15:18:36877 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01878 ":checks",
879 ":ip_address",
880 ":logging",
881 ":net_helpers",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01882 ":safe_conversions",
883 ":stringutils",
884 "system:rtc_export",
885 ]
886 if (is_win) {
887 deps += [ ":win32" ]
888 }
Ali Tofigh7fa90572022-03-17 14:47:49889 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45890}
891
Mirko Bonadeie5f4c6b2021-01-15 09:41:01892rtc_library("null_socket_server") {
893 sources = [
894 "null_socket_server.cc",
895 "null_socket_server.h",
896 ]
897 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:01898 ":checks",
899 ":rtc_event",
900 ":socket",
901 ":socket_server",
Markus Handell2cfc1af2022-08-19 08:16:48902 "../api/units:time_delta",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01903 "system:rtc_export",
904 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45905}
906
Karl Wiberg28522dc2019-01-22 16:54:34907rtc_source_set("socket_server") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01908 sources = [ "socket_server.h" ]
Markus Handell9a21c492022-08-25 11:40:13909 deps = [
910 ":rtc_event",
911 ":socket_factory",
912 "../api/units:time_delta",
913 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45914}
915
Mirko Bonadeie5f4c6b2021-01-15 09:41:01916rtc_library("threading") {
Karl Wiberg02f4e322019-02-10 23:43:43917 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01918
Mirko Bonadeie5f4c6b2021-01-15 09:41:01919 sources = [
920 "async_resolver.cc",
921 "async_resolver.h",
922 "internal/default_socket_server.cc",
923 "internal/default_socket_server.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01924 "network_monitor.cc",
925 "network_monitor.h",
926 "network_monitor_factory.cc",
927 "network_monitor_factory.h",
928 "physical_socket_server.cc",
929 "physical_socket_server.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01930 "thread.cc",
931 "thread.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01932 ]
Henrik Boström2deee4b2022-01-20 10:58:05933 absl_deps = [
934 "//third_party/abseil-cpp/absl/algorithm:container",
935 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov4bcf8092022-07-06 17:42:34936 "//third_party/abseil-cpp/absl/cleanup",
937 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovalov0bd16652022-08-24 16:35:45938 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:49939 "//third_party/abseil-cpp/absl/strings",
Henrik Boström2deee4b2022-01-20 10:58:05940 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01941 deps = [
942 ":async_resolver_interface",
Florent Castellia876a922022-04-19 15:18:36943 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01944 ":checks",
945 ":criticalsection",
Florent Castellia30aef32022-04-19 15:47:13946 ":event_tracer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01947 ":ip_address",
948 ":logging",
949 ":macromagic",
950 ":network_constants",
951 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:28952 ":platform_thread",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01953 ":platform_thread_types",
Florent Castellif86f6f92022-04-05 00:54:12954 ":refcount",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01955 ":rtc_event",
956 ":rtc_task_queue",
957 ":socket_address",
958 ":socket_server",
959 ":timeutils",
960 "../api:function_view",
Markus Handell1366b0f2021-04-21 08:22:34961 "../api:refcountedbase",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01962 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24963 "../api:sequence_checker",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01964 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45965 "../api/task_queue:pending_task_safety_flag",
Danil Chapovalov4bcf8092022-07-06 17:42:34966 "../api/units:time_delta",
Per Kjellanderfdcfefa2022-11-08 11:48:52967 "../system_wrappers:field_trial",
Niels Möller6d176022021-02-09 13:44:48968 "synchronization:mutex",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01969 "system:no_unique_address",
970 "system:rtc_export",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01971 "third_party/sigslot",
972 ]
973 if (is_android) {
974 deps += [ ":ifaddrs_android" ]
975 }
976 if (is_win) {
977 deps += [ ":win32" ]
978 }
979 if (is_mac || is_ios) {
Byoungchan Lee08438fc2021-10-12 13:53:35980 deps += [ "system:cocoa_threading" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01981 }
Karl Wiberg0b6d0e62018-12-06 13:50:45982}
983
Karl Wiberg28522dc2019-01-22 16:54:34984rtc_source_set("socket_factory") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01985 sources = [ "socket_factory.h" ]
Niels Möllerd0b88792021-08-12 08:32:30986 deps = [ ":socket" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45987}
988
Mirko Bonadeie5f4c6b2021-01-15 09:41:01989rtc_library("async_socket") {
990 sources = [
991 "async_socket.cc",
992 "async_socket.h",
993 ]
994 deps = [
995 ":checks",
996 ":socket",
997 ":socket_address",
998 "third_party/sigslot",
999 ]
Niels Möller8729d782021-08-11 09:22:441000 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451001}
1002
Mirko Bonadeie5f4c6b2021-01-15 09:41:011003rtc_library("socket") {
1004 sources = [
1005 "socket.cc",
1006 "socket.h",
1007 ]
1008 deps = [
1009 ":macromagic",
1010 ":socket_address",
Niels Möllerd0b88792021-08-12 08:32:301011 "third_party/sigslot",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011012 ]
1013 if (is_win) {
1014 deps += [ ":win32" ]
1015 }
Karl Wiberg0b6d0e62018-12-06 13:50:451016}
1017
1018rtc_source_set("network_constants") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011019 sources = [
1020 "network_constants.cc",
1021 "network_constants.h",
1022 ]
1023 deps = [ ":checks" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451024}
1025
1026if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011027 rtc_library("ifaddrs_android") {
1028 sources = [
1029 "ifaddrs_android.cc",
1030 "ifaddrs_android.h",
1031 ]
1032 libs = [
1033 "log",
1034 "GLESv2",
1035 ]
Danil Chapovalove6106102022-02-16 11:29:021036 absl_deps = [ "//third_party/abseil-cpp/absl/cleanup" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451037 }
1038}
1039
1040if (is_win) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011041 rtc_library("win32") {
Tommi16db7ff2020-09-26 09:57:261042 sources = [
1043 "win32.cc",
1044 "win32.h",
1045 "win32_window.cc",
1046 "win32_window.h",
1047 ]
1048
1049 deps = [
Florent Castellia876a922022-04-19 15:18:361050 ":byte_order",
Tommi16db7ff2020-09-26 09:57:261051 ":checks",
Florent Castelli0af55ba2022-04-04 13:06:301052 ":logging",
Tommi16db7ff2020-09-26 09:57:261053 ":macromagic",
Florent Castelli57aa81b2022-04-04 15:14:021054 ":stringutils",
Tommi16db7ff2020-09-26 09:57:261055 ]
1056
1057 libs = [
1058 "crypt32.lib",
1059 "iphlpapi.lib",
1060 "secur32.lib",
1061 ]
1062
1063 defines = [ "_CRT_NONSTDC_NO_DEPRECATE" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451064 }
1065}
1066
Mirko Bonadei86d053c2019-10-17 19:32:041067rtc_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:531068 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 06:03:041069 cflags = []
1070 cflags_cc = []
1071 libs = []
1072 defines = []
1073 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011074 ":async_resolver_interface",
1075 ":async_socket",
Florent Castellif9c59842022-04-19 15:07:231076 ":buffer",
Florent Castelliceb7b362022-04-19 15:35:041077 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361078 ":byte_order",
Tomas Gunnarssonf15189d2022-04-13 09:03:521079 ":callback_list",
Patrik Höglunda8005cf2017-12-13 15:05:421080 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461081 ":copy_on_write_buffer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011082 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301083 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461084 ":macromagic",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011085 ":network_constants",
1086 ":null_socket_server",
Florent Castellif86f6f92022-04-05 00:54:121087 ":refcount",
Florent Castelli33d31fb2022-04-04 14:57:521088 ":rtc_event",
Markus Handellfbf4ad22020-05-26 16:43:551089 ":rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:371090 ":safe_conversions",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011091 ":socket",
1092 ":socket_address",
1093 ":socket_factory",
1094 ":socket_server",
Patrik Höglund3e113432017-12-15 13:40:101095 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011096 ":threading",
Florent Castellidd837e22022-04-04 15:16:151097 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511098 ":zero_memory",
Joachim Bauch58daf402017-12-21 21:00:341099 "../api:array_view",
Jonas Orelande62c2f22022-03-29 09:04:481100 "../api:field_trials_view",
Danil Chapovalov89313452019-11-29 11:56:431101 "../api:function_view",
Niels Möller105711e2022-06-14 13:48:261102 "../api:make_ref_counted",
Tommi86ee89f2021-04-20 14:58:011103 "../api:refcountedbase",
Mirko Bonadeid9708072019-01-25 19:26:481104 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:241105 "../api:sequence_checker",
Artem Titov9d777622020-09-18 16:23:081106 "../api/numerics",
Danil Chapovalov912b3b82019-11-22 14:52:401107 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451108 "../api/task_queue:pending_task_safety_flag",
Jonas Orelandc06fe8b2022-03-28 12:58:261109 "../api/transport:field_trial_based_config",
Danil Chapovalov5286dcf2022-07-18 15:04:561110 "../api/units:time_delta",
Diep Buia5d80a72022-08-26 15:35:541111 "../rtc_base/experiments:field_trial_parser",
Harald Alvestrand13799132020-03-09 18:39:361112 "../system_wrappers:field_trial",
Jonas Orelandc06fe8b2022-03-28 12:58:261113 "memory:always_valid_pointer",
Sebastian Janssone07864e2018-10-15 07:28:151114 "network:sent_packet",
Markus Handell18523c32020-07-08 15:55:581115 "synchronization:mutex",
Niels Möller23213d92019-01-22 10:01:241116 "system:file_wrapper",
Jonas Oreland71fda362020-03-20 15:11:561117 "system:inline",
Mirko Bonadei20e4c802020-11-23 10:07:421118 "system:no_unique_address",
Mirko Bonadei35214fc2019-09-23 12:54:281119 "system:rtc_export",
Tommi04482982020-10-05 12:43:531120 "task_utils:repeating_task",
Artem Titova76af0c2018-07-23 15:38:121121 "third_party/base64",
Artem Titove41c4332018-07-25 13:04:281122 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411123 ]
1124 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301125 "//third_party/abseil-cpp/absl/algorithm:container",
Mirko Bonadei5c9b7da2022-10-10 08:43:361126 "//third_party/abseil-cpp/absl/base:core_headers",
Taylor Brandstetter7b69a442020-08-20 23:43:131127 "//third_party/abseil-cpp/absl/container:flat_hash_map",
Danil Chapovalovb7da8162022-08-22 14:39:341128 "//third_party/abseil-cpp/absl/functional:any_invocable",
Karl Wiberg918f50c2018-07-05 09:40:331129 "//third_party/abseil-cpp/absl/memory",
Niels Möller3c7d5992018-10-19 13:29:541130 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0a1d1892018-06-21 09:48:251131 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 06:03:041132 ]
Henrik Kjellanderc0362762017-06-29 06:03:041133 public_configs = []
1134
Henrik Kjellanderc0362762017-06-29 06:03:041135 sources = [
Steve Anton10542f22019-01-11 17:11:001136 "async_packet_socket.cc",
1137 "async_packet_socket.h",
Steve Anton10542f22019-01-11 17:11:001138 "async_tcp_socket.cc",
1139 "async_tcp_socket.h",
1140 "async_udp_socket.cc",
1141 "async_udp_socket.h",
Henrik Kjellanderc0362762017-06-29 06:03:041142 "crc32.cc",
1143 "crc32.h",
Steve Anton10542f22019-01-11 17:11:001144 "crypt_string.cc",
1145 "crypt_string.h",
Sebastian Janssonf9c5cf62018-02-28 15:04:261146 "data_rate_limiter.cc",
1147 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 10:50:211148 "dscp.h",
Steve Anton10542f22019-01-11 17:11:001149 "file_rotating_stream.cc",
1150 "file_rotating_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041151 "helpers.cc",
1152 "helpers.h",
Steve Anton10542f22019-01-11 17:11:001153 "http_common.cc",
1154 "http_common.h",
Qingsi Wang09619332018-09-13 05:51:551155 "mdns_responder_interface.h",
Steve Anton10542f22019-01-11 17:11:001156 "message_digest.cc",
1157 "message_digest.h",
Steve Anton10542f22019-01-11 17:11:001158 "net_helper.cc",
1159 "net_helper.h",
Henrik Kjellanderc0362762017-06-29 06:03:041160 "network.cc",
1161 "network.h",
henrikaf0dc5c52020-04-09 16:46:001162 "network_route.cc",
Steve Anton10542f22019-01-11 17:11:001163 "network_route.h",
Henrik Kjellanderc0362762017-06-29 06:03:041164 "openssl.h",
Steve Anton10542f22019-01-11 17:11:001165 "openssl_adapter.cc",
1166 "openssl_adapter.h",
Steve Anton10542f22019-01-11 17:11:001167 "openssl_digest.cc",
1168 "openssl_digest.h",
Taylor Brandstetter165c6182020-12-11 00:23:031169 "openssl_key_pair.cc",
1170 "openssl_key_pair.h",
Steve Anton10542f22019-01-11 17:11:001171 "openssl_session_cache.cc",
1172 "openssl_session_cache.h",
1173 "openssl_stream_adapter.cc",
1174 "openssl_stream_adapter.h",
1175 "openssl_utility.cc",
1176 "openssl_utility.h",
Steve Anton10542f22019-01-11 17:11:001177 "proxy_info.cc",
1178 "proxy_info.h",
1179 "rtc_certificate.cc",
1180 "rtc_certificate.h",
1181 "rtc_certificate_generator.cc",
1182 "rtc_certificate_generator.h",
Steve Anton10542f22019-01-11 17:11:001183 "socket_adapters.cc",
1184 "socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001185 "socket_address_pair.cc",
1186 "socket_address_pair.h",
Steve Anton10542f22019-01-11 17:11:001187 "ssl_adapter.cc",
1188 "ssl_adapter.h",
1189 "ssl_certificate.cc",
1190 "ssl_certificate.h",
1191 "ssl_fingerprint.cc",
1192 "ssl_fingerprint.h",
1193 "ssl_identity.cc",
1194 "ssl_identity.h",
1195 "ssl_stream_adapter.cc",
1196 "ssl_stream_adapter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041197 "stream.cc",
1198 "stream.h",
Amit Hilbuchdbb49df2019-01-23 22:54:241199 "unique_id_generator.cc",
1200 "unique_id_generator.h",
Henrik Kjellanderc0362762017-06-29 06:03:041201 ]
1202
Taylor Brandstetterc70bd182020-12-11 19:30:431203 # If we are building the SSL library ourselves, we know it's BoringSSL.
1204 if (rtc_build_ssl) {
Taylor Brandstetter165c6182020-12-11 00:23:031205 sources += [
1206 "boringssl_certificate.cc",
1207 "boringssl_certificate.h",
1208 "boringssl_identity.cc",
1209 "boringssl_identity.h",
1210 ]
1211 } else {
1212 sources += [
1213 "openssl_certificate.cc",
1214 "openssl_certificate.h",
1215 "openssl_identity.cc",
1216 "openssl_identity.h",
1217 ]
1218 }
1219
Henrik Kjellanderc0362762017-06-29 06:03:041220 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 06:03:041221 include_dirs = [ "../../boringssl/src/include" ]
Henrik Kjellanderc0362762017-06-29 06:03:041222 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041223 sources += [
Steve Anton10542f22019-01-11 17:11:001224 "log_sinks.cc",
1225 "log_sinks.h",
Steve Anton10542f22019-01-11 17:11:001226 "rolling_accumulator.h",
1227 "ssl_roots.h",
Henrik Kjellanderc0362762017-06-29 06:03:041228 ]
1229
Yves Gerey3dfb6802019-05-13 15:01:321230 deps += [ ":rtc_numerics" ]
1231
Henrik Kjellanderc0362762017-06-29 06:03:041232 if (is_win) {
Steve Antonf3802842019-01-25 03:07:401233 sources += [ "win32_socket_init.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041234 }
1235 } # !build_with_chromium
1236
1237 if (rtc_build_ssl) {
1238 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 15:40:391239 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041240 configs += [ ":external_ssl_library" ]
1241 }
1242
1243 if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011244 deps += [ ":ifaddrs_android" ]
Henrik Kjellanderc0362762017-06-29 06:03:041245 }
1246
1247 if (is_ios || is_mac) {
Steve Anton10542f22019-01-11 17:11:001248 sources += [ "mac_ifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 06:03:041249 }
1250
Hidehiko Abef264e702020-09-10 09:10:111251 if (is_linux || is_chromeos) {
Henrik Kjellanderc0362762017-06-29 06:03:041252 libs += [
1253 "dl",
1254 "rt",
1255 ]
1256 }
1257
Oleh Prypinb3f78de2019-07-18 20:25:481258 if (is_ios) {
Sylvain Defresnec7f0dff2020-07-03 08:19:301259 frameworks = [
Oleh Prypinb3f78de2019-07-18 20:25:481260 "CFNetwork.framework",
1261 "Foundation.framework",
1262 "Security.framework",
1263 "SystemConfiguration.framework",
1264 "UIKit.framework",
1265 ]
Henrik Kjellanderc0362762017-06-29 06:03:041266 }
1267
1268 if (is_win) {
Tommi16db7ff2020-09-26 09:57:261269 deps += [ ":win32" ]
Henrik Kjellanderc0362762017-06-29 06:03:041270 }
1271
Fabrice de Gans-Riberi09a6cd52018-03-30 17:38:061272 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 06:03:041273 sources += [
1274 "ifaddrs_converter.cc",
1275 "ifaddrs_converter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041276 ]
1277 }
1278
1279 if (is_nacl) {
Harald Alvestrand13799132020-03-09 18:39:361280 public_deps += # no-presubmit-check TODO(webrtc:8603)
1281 [ "//native_client_sdk/src/libraries/nacl_io" ]
1282
Henrik Kjellanderc0362762017-06-29 06:03:041283 defines += [ "timezone=_timezone" ]
1284 sources -= [ "ifaddrs_converter.cc" ]
1285 }
Henrik Kjellanderc0362762017-06-29 06:03:041286}
1287
1288rtc_source_set("gtest_prod") {
Mirko Bonadeiccbe95f2020-01-21 11:10:101289 sources = [ "gtest_prod_util.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041290}
1291
Mirko Bonadei86d053c2019-10-17 19:32:041292rtc_library("gunit_helpers") {
Mirko Bonadeie3abb812018-11-23 12:15:081293 testonly = true
1294 sources = [
1295 "gunit.cc",
1296 "gunit.h",
1297 ]
1298 deps = [
1299 ":logging",
1300 ":rtc_base",
1301 ":rtc_base_tests_utils",
1302 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011303 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081304 "../test:test_support",
1305 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411306 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Mirko Bonadeie3abb812018-11-23 12:15:081307}
1308
Mirko Bonadei86d053c2019-10-17 19:32:041309rtc_library("testclient") {
Mirko Bonadeie3abb812018-11-23 12:15:081310 testonly = true
1311 sources = [
Steve Anton10542f22019-01-11 17:11:001312 "test_client.cc",
1313 "test_client.h",
Mirko Bonadeie3abb812018-11-23 12:15:081314 ]
1315 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081316 ":gunit_helpers",
Mirko Bonadeie3abb812018-11-23 12:15:081317 ":rtc_base",
1318 ":rtc_base_tests_utils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011319 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081320 ":timeutils",
Markus Handell18523c32020-07-08 15:55:581321 "synchronization:mutex",
Mirko Bonadeie3abb812018-11-23 12:15:081322 ]
1323}
1324
Mirko Bonadei3d259352020-10-23 10:04:401325rtc_library("callback_list_unittests") {
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211326 testonly = true
1327
Mirko Bonadei3d259352020-10-23 10:04:401328 sources = [ "callback_list_unittest.cc" ]
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211329 deps = [
Mirko Bonadei3d259352020-10-23 10:04:401330 ":callback_list",
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211331 ":gunit_helpers",
1332 ":rtc_base",
1333 "../api:function_view",
1334 "../test:test_support",
1335 ]
1336}
1337
Mirko Bonadei86d053c2019-10-17 19:32:041338rtc_library("rtc_base_tests_utils") {
Henrik Kjellanderc0362762017-06-29 06:03:041339 testonly = true
1340 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041341 "cpu_time.cc",
1342 "cpu_time.h",
Steve Anton10542f22019-01-11 17:11:001343 "fake_clock.cc",
1344 "fake_clock.h",
Qingsi Wang09619332018-09-13 05:51:551345 "fake_mdns_responder.h",
Steve Anton10542f22019-01-11 17:11:001346 "fake_network.h",
1347 "fake_ssl_identity.cc",
1348 "fake_ssl_identity.h",
1349 "firewall_socket_server.cc",
1350 "firewall_socket_server.h",
Niels Möllere7547d52018-11-01 08:33:081351 "memory_stream.cc",
1352 "memory_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041353 "memory_usage.cc",
1354 "memory_usage.h",
Steve Anton10542f22019-01-11 17:11:001355 "nat_server.cc",
1356 "nat_server.h",
1357 "nat_socket_factory.cc",
1358 "nat_socket_factory.h",
1359 "nat_types.cc",
1360 "nat_types.h",
1361 "proxy_server.cc",
1362 "proxy_server.h",
Niels Möller44153152018-12-17 13:04:051363 "server_socket_adapters.cc",
1364 "server_socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001365 "sigslot_tester.h",
Steve Anton10542f22019-01-11 17:11:001366 "socket_stream.cc",
1367 "socket_stream.h",
1368 "test_base64.h",
1369 "test_certificate_verifier.h",
1370 "test_echo_server.cc",
1371 "test_echo_server.h",
1372 "test_utils.cc",
1373 "test_utils.h",
1374 "virtual_socket_server.cc",
1375 "virtual_socket_server.h",
Henrik Kjellanderc0362762017-06-29 06:03:041376 ]
Henrik Kjellanderc0362762017-06-29 06:03:041377 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011378 ":async_socket",
Florent Castelliceb7b362022-04-19 15:35:041379 ":byte_buffer",
Patrik Höglunda8005cf2017-12-13 15:05:421380 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011381 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301382 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461383 ":macromagic",
Henrik Kjellanderc0362762017-06-29 06:03:041384 ":rtc_base",
Florent Castelli33d31fb2022-04-04 14:57:521385 ":rtc_event",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011386 ":socket",
1387 ":socket_address",
1388 ":socket_factory",
1389 ":socket_server",
Florent Castelli57aa81b2022-04-04 15:14:021390 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011391 ":threading",
Florent Castellidd837e22022-04-04 15:16:151392 ":timeutils",
Danil Chapovalovbabdaa862022-09-16 10:41:111393 "../api:make_ref_counted",
1394 "../api:refcountedbase",
1395 "../api:scoped_refptr",
1396 "../api/task_queue",
Sebastian Jansson5f83cf02018-05-08 12:52:221397 "../api/units:time_delta",
Sebastian Janssond624c392019-04-17 08:36:031398 "../api/units:timestamp",
Jonas Orelandc06fe8b2022-03-28 12:58:261399 "../test:scoped_key_value_config",
1400 "memory:always_valid_pointer",
Niels Möller13339482019-03-28 12:30:151401 "memory:fifo_buffer",
Markus Handell18523c32020-07-08 15:55:581402 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281403 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411404 ]
1405 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301406 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:331407 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:491408 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalovbabdaa862022-09-16 10:41:111409 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 06:03:041410 ]
Henrik Kjellanderc0362762017-06-29 06:03:041411}
1412
Mirko Bonadei86d053c2019-10-17 19:32:041413rtc_library("task_queue_for_test") {
Tommida8781f2018-02-19 11:41:431414 testonly = true
1415
1416 sources = [
1417 "task_queue_for_test.cc",
1418 "task_queue_for_test.h",
1419 ]
1420 deps = [
1421 ":checks",
Florent Castelli4467ad72022-04-04 13:18:461422 ":macromagic",
Danil Chapovalovd26a9162019-03-19 17:08:371423 ":rtc_event",
Tommida8781f2018-02-19 11:41:431424 ":rtc_task_queue",
Danil Chapovalov5286dcf2022-07-18 15:04:561425 "../api:function_view",
Danil Chapovaloveb90e6f2019-10-15 08:04:571426 "../api/task_queue",
Danil Chapovalovd26a9162019-03-19 17:08:371427 "../api/task_queue:default_task_queue_factory",
Tommida8781f2018-02-19 11:41:431428 ]
Danil Chapovalov5286dcf2022-07-18 15:04:561429 absl_deps = [
1430 "//third_party/abseil-cpp/absl/cleanup",
1431 "//third_party/abseil-cpp/absl/strings",
1432 ]
Tommida8781f2018-02-19 11:41:431433}
1434
Henrik Kjellanderc0362762017-06-29 06:03:041435if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:041436 rtc_library("sigslot_unittest") {
Artem Titove41c4332018-07-25 13:04:281437 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:101438 sources = [ "sigslot_unittest.cc" ]
Artem Titove41c4332018-07-25 13:04:281439 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081440 ":gunit_helpers",
Artem Titove41c4332018-07-25 13:04:281441 ":rtc_base",
1442 ":rtc_base_tests_utils",
Yves Gerey3e707812018-11-28 15:47:491443 "../test:test_support",
Markus Handell18523c32020-07-08 15:55:581444 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281445 "third_party/sigslot",
1446 ]
1447 }
1448
Karl Wiberg70026f92020-09-18 08:03:161449 rtc_library("untyped_function_unittest") {
Karl Wiberg78e9acd2020-09-15 09:06:341450 testonly = true
Karl Wiberg70026f92020-09-18 08:03:161451 sources = [ "untyped_function_unittest.cc" ]
Karl Wiberg78e9acd2020-09-15 09:06:341452 deps = [
Karl Wiberg70026f92020-09-18 08:03:161453 ":untyped_function",
Karl Wiberg78e9acd2020-09-15 09:06:341454 "../test:test_support",
1455 ]
1456 }
1457
Henrik Boström27c29362019-10-21 13:21:551458 rtc_library("rtc_operations_chain_unittests") {
1459 testonly = true
1460
Mirko Bonadeiccbe95f2020-01-21 11:10:101461 sources = [ "operations_chain_unittest.cc" ]
Henrik Boström27c29362019-10-21 13:21:551462 deps = [
Henrik Boströme8b00a12020-08-25 15:11:201463 ":gunit_helpers",
Henrik Boström27c29362019-10-21 13:21:551464 ":rtc_base",
Henrik Boström27c29362019-10-21 13:21:551465 ":rtc_event",
1466 ":rtc_operations_chain",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011467 ":threading",
Henrik Boström27c29362019-10-21 13:21:551468 "../test:test_support",
1469 ]
1470 }
1471
Andrey Logvine7c79fd2021-02-01 09:56:371472 if (!build_with_chromium) {
1473 rtc_library("rtc_base_nonparallel_tests") {
1474 testonly = true
Henrik Kjellanderc0362762017-06-29 06:03:041475
Andrey Logvine7c79fd2021-02-01 09:56:371476 sources = [
1477 "cpu_time_unittest.cc",
1478 "file_rotating_stream_unittest.cc",
1479 "null_socket_server_unittest.cc",
1480 "physical_socket_server_unittest.cc",
1481 "socket_address_unittest.cc",
1482 "socket_unittest.cc",
1483 "socket_unittest.h",
Tommi16db7ff2020-09-26 09:57:261484 ]
Andrey Logvine7c79fd2021-02-01 09:56:371485 deps = [
Florent Castellif9c59842022-04-19 15:07:231486 ":buffer",
Andrey Logvine7c79fd2021-02-01 09:56:371487 ":checks",
1488 ":gunit_helpers",
1489 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301490 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461491 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371492 ":net_helpers",
1493 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:281494 ":platform_thread",
Andrey Logvine7c79fd2021-02-01 09:56:371495 ":rtc_base",
1496 ":rtc_base_tests_utils",
1497 ":socket",
1498 ":socket_address",
1499 ":socket_server",
1500 ":testclient",
1501 ":threading",
Florent Castellidd837e22022-04-04 15:16:151502 ":timeutils",
Markus Handell9a21c492022-08-25 11:40:131503 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371504 "../system_wrappers",
Per Kjellanderfdcfefa2022-11-08 11:48:521505 "../test:field_trial",
Andrey Logvine7c79fd2021-02-01 09:56:371506 "../test:fileutils",
1507 "../test:test_main",
1508 "../test:test_support",
1509 "third_party/sigslot",
1510 "//testing/gtest",
1511 ]
Ali Tofigh7fa90572022-03-17 14:47:491512 absl_deps = [
1513 "//third_party/abseil-cpp/absl/memory",
1514 "//third_party/abseil-cpp/absl/strings",
1515 ]
Tommi16db7ff2020-09-26 09:57:261516 }
Andrey Logvine7c79fd2021-02-01 09:56:371517
1518 rtc_library("rtc_base_approved_unittests") {
1519 testonly = true
1520 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371521 "base64_unittest.cc",
1522 "bit_buffer_unittest.cc",
Danil Chapovalov5af152c2021-08-31 13:27:511523 "bitstream_reader_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371524 "bounded_inline_vector_unittest.cc",
1525 "buffer_queue_unittest.cc",
1526 "buffer_unittest.cc",
1527 "byte_buffer_unittest.cc",
1528 "byte_order_unittest.cc",
1529 "checks_unittest.cc",
1530 "copy_on_write_buffer_unittest.cc",
1531 "deprecated/recursive_critical_section_unittest.cc",
1532 "event_tracer_unittest.cc",
1533 "event_unittest.cc",
1534 "logging_unittest.cc",
1535 "numerics/divide_round_unittest.cc",
1536 "numerics/histogram_percentile_counter_unittest.cc",
1537 "numerics/mod_ops_unittest.cc",
1538 "numerics/moving_max_counter_unittest.cc",
1539 "numerics/safe_compare_unittest.cc",
1540 "numerics/safe_minmax_unittest.cc",
1541 "numerics/sample_counter_unittest.cc",
1542 "one_time_event_unittest.cc",
1543 "platform_thread_unittest.cc",
1544 "random_unittest.cc",
1545 "rate_limiter_unittest.cc",
1546 "rate_statistics_unittest.cc",
1547 "rate_tracker_unittest.cc",
1548 "ref_counted_object_unittest.cc",
1549 "sanitizer_unittest.cc",
1550 "string_encode_unittest.cc",
1551 "string_to_number_unittest.cc",
1552 "string_utils_unittest.cc",
1553 "strings/string_builder_unittest.cc",
1554 "strings/string_format_unittest.cc",
Victor Boivieb9182302021-09-21 12:51:051555 "strong_alias_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371556 "swap_queue_unittest.cc",
1557 "thread_annotations_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371558 "time_utils_unittest.cc",
1559 "timestamp_aligner_unittest.cc",
1560 "virtual_socket_unittest.cc",
1561 "zero_memory_unittest.cc",
1562 ]
Andrey Logvine7c79fd2021-02-01 09:56:371563 deps = [
Florent Castelli7f623b02022-04-14 11:34:561564 ":bit_buffer",
Danil Chapovalov5af152c2021-08-31 13:27:511565 ":bitstream_reader",
Andrey Logvine7c79fd2021-02-01 09:56:371566 ":bounded_inline_vector",
Florent Castellif9c59842022-04-19 15:07:231567 ":buffer",
Florent Castelli76063752022-04-19 15:14:261568 ":buffer_queue",
Florent Castelliceb7b362022-04-19 15:35:041569 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361570 ":byte_order",
Andrey Logvine7c79fd2021-02-01 09:56:371571 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461572 ":copy_on_write_buffer",
Niels Möller9233af32021-06-22 09:24:061573 ":criticalsection",
Andrey Logvine7c79fd2021-02-01 09:56:371574 ":divide_round",
Florent Castellia30aef32022-04-19 15:47:131575 ":event_tracer",
Andrey Logvine7c79fd2021-02-01 09:56:371576 ":gunit_helpers",
Florent Castelli17296422022-04-14 11:48:101577 ":histogram_percentile_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371578 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301579 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461580 ":macromagic",
Florent Castelli31764092022-04-14 11:41:581581 ":mod_ops",
1582 ":moving_max_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371583 ":null_socket_server",
Florent Castelli6b608592022-04-14 11:18:041584 ":one_time_event",
Florent Castelli45a05992022-04-14 10:18:281585 ":platform_thread",
Florent Castelli71337f32022-04-14 10:41:261586 ":random",
Andrey Logvine7c79fd2021-02-01 09:56:371587 ":rate_limiter",
Florent Castelli6bb1fd32022-04-19 13:58:391588 ":rate_statistics",
Florent Castelli58cc4682022-04-19 13:50:281589 ":rate_tracker",
Florent Castellif86f6f92022-04-05 00:54:121590 ":refcount",
Andrey Logvine7c79fd2021-02-01 09:56:371591 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371592 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521593 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371594 ":rtc_numerics",
1595 ":rtc_task_queue",
1596 ":safe_compare",
1597 ":safe_minmax",
Florent Castelli83a36d42022-04-14 11:44:391598 ":sample_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371599 ":sanitizer",
1600 ":socket",
1601 ":socket_address",
1602 ":socket_server",
1603 ":stringutils",
Florent Castellia6c10e32022-04-14 11:08:441604 ":strong_alias",
Florent Castellid119b9e2022-04-14 11:23:511605 ":swap_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371606 ":testclient",
1607 ":threading",
Florent Castellib1dc4e42022-04-14 11:20:121608 ":timestamp_aligner",
Florent Castellidd837e22022-04-04 15:16:151609 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511610 ":zero_memory",
Andrey Logvine7c79fd2021-02-01 09:56:371611 "../api:array_view",
Niels Möller105711e2022-06-14 13:48:261612 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371613 "../api:scoped_refptr",
1614 "../api/numerics",
1615 "../api/units:time_delta",
1616 "../system_wrappers",
1617 "../test:fileutils",
1618 "../test:test_main",
1619 "../test:test_support",
Nico Weber79bd4f12021-10-05 19:01:261620 "containers:flat_map",
Victor Boiviefd954fc2021-06-29 07:21:111621 "containers:unittests",
Andrey Logvine7c79fd2021-02-01 09:56:371622 "memory:unittests",
1623 "synchronization:mutex",
Danil Chapovalovf1361652022-09-02 13:40:261624 "task_utils:repeating_task",
Andrey Logvine7c79fd2021-02-01 09:56:371625 "third_party/base64",
1626 "third_party/sigslot",
1627 ]
1628 absl_deps = [
1629 "//third_party/abseil-cpp/absl/base:core_headers",
1630 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov5af152c2021-08-31 13:27:511631 "//third_party/abseil-cpp/absl/numeric:bits",
Ali Tofigh6364d082022-03-14 12:32:041632 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:361633 "//third_party/abseil-cpp/absl/types:optional",
Tommi16db7ff2020-09-26 09:57:261634 ]
Florent Castelli15a3c3f2022-04-27 08:33:271635
1636 if (is_win) {
1637 deps += [ "win:windows_version_unittest" ]
1638 }
Tommi16db7ff2020-09-26 09:57:261639 }
Andrey Logvine7c79fd2021-02-01 09:56:371640
1641 rtc_library("rtc_task_queue_unittests") {
1642 testonly = true
1643
1644 sources = [ "task_queue_unittest.cc" ]
1645 deps = [
1646 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371647 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521648 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371649 ":rtc_task_queue",
1650 ":task_queue_for_test",
Florent Castellidd837e22022-04-04 15:16:151651 ":timeutils",
Danil Chapovalov5286dcf2022-07-18 15:04:561652 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371653 "../test:test_main",
1654 "../test:test_support",
1655 ]
1656 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Diogo Real1dca9d52017-08-29 19:18:321657 }
Andrey Logvine7c79fd2021-02-01 09:56:371658
1659 rtc_library("weak_ptr_unittests") {
1660 testonly = true
1661
1662 sources = [ "weak_ptr_unittest.cc" ]
1663 deps = [
1664 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371665 ":rtc_base_tests_utils",
1666 ":rtc_event",
1667 ":task_queue_for_test",
1668 ":weak_ptr",
1669 "../test:test_main",
1670 "../test:test_support",
1671 ]
1672 }
1673
1674 rtc_library("rtc_numerics_unittests") {
1675 testonly = true
1676
1677 sources = [
1678 "numerics/event_based_exponential_moving_average_unittest.cc",
1679 "numerics/exp_filter_unittest.cc",
1680 "numerics/moving_average_unittest.cc",
Rasmus Brandt91664812022-09-14 14:22:241681 "numerics/moving_percentile_filter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371682 "numerics/percentile_filter_unittest.cc",
1683 "numerics/running_statistics_unittest.cc",
1684 "numerics/sequence_number_util_unittest.cc",
Evan Shrubsoleaa5897d2022-12-15 09:30:521685 "numerics/sequence_numbers_conformance_test.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371686 ]
1687 deps = [
Andrey Logvine7c79fd2021-02-01 09:56:371688 ":rtc_numerics",
Evan Shrubsoleaa5897d2022-12-15 09:30:521689 ":strong_alias",
1690 ":timeutils",
1691 "../modules:module_api_public",
1692 "../net/dcsctp/common:sequence_numbers",
Andrey Logvine7c79fd2021-02-01 09:56:371693 "../test:test_main",
1694 "../test:test_support",
1695 ]
1696 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
1697 }
1698
1699 rtc_library("rtc_json_unittests") {
1700 testonly = true
1701
1702 sources = [ "strings/json_unittest.cc" ]
1703 deps = [
1704 ":gunit_helpers",
1705 ":rtc_base_tests_utils",
1706 ":rtc_json",
1707 "../test:test_main",
1708 "../test:test_support",
1709 ]
1710 }
1711
1712 rtc_library("rtc_base_unittests") {
1713 testonly = true
1714 defines = []
1715
1716 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371717 "crc32_unittest.cc",
1718 "data_rate_limiter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371719 "fake_clock_unittest.cc",
1720 "helpers_unittest.cc",
1721 "ip_address_unittest.cc",
1722 "memory_usage_unittest.cc",
1723 "message_digest_unittest.cc",
1724 "nat_unittest.cc",
1725 "network_route_unittest.cc",
1726 "network_unittest.cc",
1727 "proxy_unittest.cc",
1728 "rolling_accumulator_unittest.cc",
1729 "rtc_certificate_generator_unittest.cc",
1730 "rtc_certificate_unittest.cc",
1731 "sigslot_tester_unittest.cc",
1732 "test_client_unittest.cc",
1733 "thread_unittest.cc",
1734 "unique_id_generator_unittest.cc",
1735 ]
1736 deps = [
Florent Castellif9c59842022-04-19 15:07:231737 ":buffer",
Florent Castelli76063752022-04-19 15:14:261738 ":buffer_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371739 ":checks",
1740 ":gunit_helpers",
1741 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301742 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461743 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371744 ":net_helpers",
1745 ":null_socket_server",
Danil Chapovalov16242932022-09-02 09:10:241746 ":refcount",
Florent Castellib96902d2022-04-14 09:58:241747 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371748 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521749 ":rtc_event",
Florent Castellie10a9f62022-04-04 15:04:371750 ":safe_conversions",
Niels Möllerd0b88792021-08-12 08:32:301751 ":socket",
Andrey Logvine7c79fd2021-02-01 09:56:371752 ":socket_address",
1753 ":socket_factory",
1754 ":socket_server",
1755 ":stringutils",
1756 ":testclient",
1757 ":threading",
Florent Castellidd837e22022-04-04 15:16:151758 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371759 "../api:array_view",
Ali Tofigh4b681942022-08-23 10:57:161760 "../api:field_trials_view",
Niels Möller105711e2022-06-14 13:48:261761 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371762 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451763 "../api/task_queue:pending_task_safety_flag",
Andrey Logvine7c79fd2021-02-01 09:56:371764 "../api/task_queue:task_queue_test",
Danil Chapovalov4bcf8092022-07-06 17:42:341765 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371766 "../test:field_trial",
1767 "../test:fileutils",
1768 "../test:rtc_expect_death",
Jonas Orelandc06fe8b2022-03-28 12:58:261769 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:371770 "../test:test_main",
1771 "../test:test_support",
1772 "memory:fifo_buffer",
1773 "synchronization:mutex",
Andrey Logvine7c79fd2021-02-01 09:56:371774 "third_party/sigslot",
1775 ]
1776 if (enable_google_benchmarks) {
1777 deps += [ "synchronization:synchronization_unittests" ]
1778 }
1779 if (is_win) {
1780 sources += [
1781 "win32_unittest.cc",
1782 "win32_window_unittest.cc",
1783 ]
1784 deps += [ ":win32" ]
1785 }
1786 if (is_posix || is_fuchsia) {
1787 sources += [
1788 "openssl_adapter_unittest.cc",
1789 "openssl_session_cache_unittest.cc",
1790 "openssl_utility_unittest.cc",
1791 "ssl_adapter_unittest.cc",
1792 "ssl_identity_unittest.cc",
1793 "ssl_stream_adapter_unittest.cc",
1794 ]
1795 }
1796 absl_deps = [
1797 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov5286dcf2022-07-18 15:04:561798 "//third_party/abseil-cpp/absl/functional:any_invocable",
Andrey Logvine7c79fd2021-02-01 09:56:371799 "//third_party/abseil-cpp/absl/memory",
1800 "//third_party/abseil-cpp/absl/strings",
1801 "//third_party/abseil-cpp/absl/types:optional",
1802 ]
Florent Castellib96902d2022-04-14 09:58:241803
Andrey Logvine7c79fd2021-02-01 09:56:371804 if (build_with_chromium) {
1805 include_dirs = [ "../../boringssl/src/include" ]
1806 }
1807 if (rtc_build_ssl) {
1808 deps += [ "//third_party/boringssl" ]
1809 } else {
1810 configs += [ ":external_ssl_library" ]
1811 }
Diogo Real1dca9d52017-08-29 19:18:321812 }
Henrik Kjellanderc0362762017-06-29 06:03:041813 }
1814}
1815
Henrik Kjellander73e21802017-06-20 06:38:581816if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:331817 rtc_android_library("base_java") {
Sami Kalliomäki51f599b2019-07-03 12:13:081818 visibility = [ "*" ]
Natalie Chouinard65bbcab2019-12-23 22:02:251819 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041820 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 12:31:381821 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 06:03:041822 "java/src/org/webrtc/Logging.java",
1823 "java/src/org/webrtc/Size.java",
1824 "java/src/org/webrtc/ThreadUtils.java",
1825 ]
Byoungchan Lee02334e02021-08-14 02:41:591826 deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
Henrik Kjellander73e21802017-06-20 06:38:581827 }
Jonas Orelandf7721fb2020-08-07 09:08:341828 java_cpp_enum("network_monitor_enums") {
1829 sources = [ "network_monitor.h" ]
Jonas Orelandfe4688e2020-08-07 12:08:331830 visibility = [ "*" ]
Jonas Orelandf7721fb2020-08-07 09:08:341831 }
Henrik Kjellander73e21802017-06-20 06:38:581832}