blob: 17e7a0fd3af400a40c83c180f0686457d6ce81df [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",
Mirko Bonadeid4002a72019-11-12 19:11:48384 "system:rtc_export", # Only Chromium's rtc::Event use RTC_EXPORT.
Karl Wiberg98417032019-03-24 18:12:40385 "//base", # Dependency on chromium's waitable_event.
386 ]
Tommi8d2c5a82018-03-19 10:12:48387 } else {
388 sources = [
389 "event.cc",
390 "event.h",
391 ]
Karl Wiberg98417032019-03-24 18:12:40392 deps = [
393 ":checks",
394 "synchronization:yield_policy",
395 "system:warn_current_thread_is_deadlocked",
396 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41397 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Tommi8d2c5a82018-03-19 10:12:48398 }
Tommi8d2c5a82018-03-19 10:12:48399}
400
Mirko Bonadeicb03e382022-02-10 13:27:57401config("chromium_logging_config") {
Danil Chapovalove6106102022-02-16 11:29:02402 defines = [ "LOGGING_INSIDE_WEBRTC" ]
Mirko Bonadeicb03e382022-02-10 13:27:57403}
404
Mirko Bonadei86d053c2019-10-17 19:32:04405rtc_library("logging") {
Mirko Bonadei2ad8c432018-08-09 08:54:40406 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51407 libs = []
Tommi8d2c5a82018-03-19 10:12:48408 deps = [
Yves Gerey988cc082018-10-23 10:03:01409 ":checks",
Tommi8d2c5a82018-03-19 10:12:48410 ":macromagic",
411 ":platform_thread_types",
412 ":stringutils",
413 ":timeutils",
Markus Handellde8a9352020-06-10 13:40:42414 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41415 ]
416 absl_deps = [
Danil Chapovalovef98ae62019-10-11 15:18:29417 "//third_party/abseil-cpp/absl/base:core_headers",
Sebastian Janssonf4e085a2019-05-20 16:34:07418 "//third_party/abseil-cpp/absl/meta:type_traits",
Jonas Olssonf2ce37c2018-09-12 13:32:47419 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48420 ]
421
422 if (build_with_chromium) {
423 # Dependency on chromium's logging (in //base).
Artem Titov94b57c02019-03-21 12:35:10424 deps += [ "//base" ]
Tommi8d2c5a82018-03-19 10:12:48425 sources = [
426 "../../webrtc_overrides/rtc_base/logging.cc",
427 "../../webrtc_overrides/rtc_base/logging.h",
428 ]
Danil Chapovalove6106102022-02-16 11:29:02429
Mirko Bonadeicb03e382022-02-10 13:27:57430 # This macro needs to be both present in all WebRTC targets (see its
431 # definition in //BUILD.gn but also propagated to all the targets
432 # depending on the Chromium component defined in
433 # //third_party/webrtc_overrides:webrtc_component. This public_config
434 # allows GN to propagate the macro accordingly.
Danil Chapovalove6106102022-02-16 11:29:02435 public_configs = [ ":chromium_logging_config" ]
Tommi8d2c5a82018-03-19 10:12:48436 } else {
437 sources = [
438 "logging.cc",
439 "logging.h",
440 ]
Karl Wibergcefc4652018-05-23 21:20:38441 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 10:12:48442
Mirko Bonadei99a70a22018-10-09 14:45:14443 if (is_mac) {
Sylvain Defresnec7f0dff2020-07-03 08:19:30444 frameworks = [ "Foundation.framework" ]
Mirko Bonadei99a70a22018-10-09 14:45:14445 }
446
Patrik Höglund77301932018-10-09 13:09:51447 if (is_android) {
448 libs += [ "log" ]
449 }
Tommi8d2c5a82018-03-19 10:12:48450 }
451}
452
Mirko Bonadei86d053c2019-10-17 19:32:04453rtc_library("checks") {
Mirko Bonadei2ad8c432018-08-09 08:54:40454 # TODO(bugs.webrtc.org/9607): This should not be public.
455 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 13:09:51456 libs = []
Patrik Höglunda8005cf2017-12-13 15:05:42457 sources = [
458 "checks.cc",
459 "checks.h",
460 ]
461 deps = [
462 ":safe_compare",
Niels Möller94327682022-04-28 11:20:29463 "../api:scoped_refptr",
Jonas Olssonf8e5c112018-06-14 11:14:22464 "system:inline",
Mirko Bonadei35214fc2019-09-23 12:54:28465 "system:rtc_export",
Mirko Bonadei2dcf3482020-06-05 12:30:41466 ]
Peter Boströmd6e861d2022-07-29 20:44:21467 if (build_with_chromium) {
468 sources += [ "../../webrtc_overrides/rtc_base/checks_overrides.cc" ]
469 deps += [ "//base" ]
470 }
Mirko Bonadei2dcf3482020-06-05 12:30:41471 absl_deps = [
Sebastian Janssonf4e085a2019-05-20 16:34:07472 "//third_party/abseil-cpp/absl/meta:type_traits",
Mirko Bonadeid4a37a62019-03-11 09:31:22473 "//third_party/abseil-cpp/absl/strings",
Patrik Höglunda8005cf2017-12-13 15:05:42474 ]
Patrik Höglund77301932018-10-09 13:09:51475 if (is_android) {
476 libs += [ "log" ]
477 }
Patrik Höglunda8005cf2017-12-13 15:05:42478}
479
Mirko Bonadei86d053c2019-10-17 19:32:04480rtc_library("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 15:05:42481 sources = [
Patrik Höglund3e113432017-12-15 13:40:10482 "rate_limiter.cc",
483 "rate_limiter.h",
484 ]
485 deps = [
Florent Castelli4467ad72022-04-04 13:18:46486 ":macromagic",
Florent Castelli6bb1fd32022-04-19 13:58:39487 ":rate_statistics",
Patrik Höglund3e113432017-12-15 13:40:10488 "../system_wrappers",
Markus Handell18523c32020-07-08 15:55:58489 "synchronization:mutex",
Patrik Höglunda8005cf2017-12-13 15:05:42490 ]
Mirko Bonadei2dcf3482020-06-05 12:30:41491 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Patrik Höglunda8005cf2017-12-13 15:05:42492}
493
494rtc_source_set("sanitizer") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10495 sources = [ "sanitizer.h" ]
Mirko Bonadei2dcf3482020-06-05 12:30:41496 absl_deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42497}
498
Karl Wibergc1269372020-03-02 19:23:41499rtc_source_set("bounded_inline_vector") {
500 public = [ "bounded_inline_vector.h" ]
501 sources = [ "bounded_inline_vector_impl.h" ]
502 deps = [ ":checks" ]
503}
504
Danil Chapovalov33b83fd2019-09-18 13:48:23505rtc_source_set("divide_round") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10506 sources = [ "numerics/divide_round.h" ]
Danil Chapovalov33b83fd2019-09-18 13:48:23507 deps = [
508 ":checks",
509 ":safe_compare",
510 ]
511}
512
Patrik Höglunda8005cf2017-12-13 15:05:42513rtc_source_set("safe_compare") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10514 sources = [ "numerics/safe_compare.h" ]
515 deps = [ ":type_traits" ]
Patrik Höglunda8005cf2017-12-13 15:05:42516}
517
Karl Wiberg12edf4c2018-03-07 13:18:56518rtc_source_set("safe_minmax") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10519 sources = [ "numerics/safe_minmax.h" ]
Karl Wiberg12edf4c2018-03-07 13:18:56520 deps = [
521 ":checks",
522 ":safe_compare",
523 ":type_traits",
524 ]
525}
526
Tommi8d2c5a82018-03-19 10:12:48527rtc_source_set("safe_conversions") {
528 sources = [
529 "numerics/safe_conversions.h",
530 "numerics/safe_conversions_impl.h",
531 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10532 deps = [ ":checks" ]
Tommi8d2c5a82018-03-19 10:12:48533}
534
Mirko Bonadei86d053c2019-10-17 19:32:04535rtc_library("timeutils") {
Mirko Bonadei2ad8c432018-08-09 08:54:40536 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 10:12:48537 sources = [
Johannes Kronb73c9f02021-02-15 12:29:45538 "system_time.cc",
539 "system_time.h",
Steve Anton10542f22019-01-11 17:11:00540 "time_utils.cc",
541 "time_utils.h",
Tommi8d2c5a82018-03-19 10:12:48542 ]
543 deps = [
544 ":checks",
545 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 11:41:30546 ":stringutils",
Mirko Bonadei35214fc2019-09-23 12:54:28547 "system:rtc_export",
Tommi8d2c5a82018-03-19 10:12:48548 ]
Johannes Kronbb52bdf2021-02-25 09:10:08549 if (rtc_exclude_system_time) {
550 defines = [ "WEBRTC_EXCLUDE_SYSTEM_TIME" ]
551 }
552
Noah Richards342989d2019-03-18 20:50:20553 libs = []
554 if (is_win) {
555 libs += [ "winmm.lib" ]
556 }
Tommi8d2c5a82018-03-19 10:12:48557}
558
Mirko Bonadei86d053c2019-10-17 19:32:04559rtc_library("stringutils") {
Patrik Höglunda8005cf2017-12-13 15:05:42560 sources = [
Steve Anton10542f22019-01-11 17:11:00561 "string_encode.cc",
562 "string_encode.h",
Jonas Olsson6b1985d2018-07-05 09:59:48563 "string_to_number.cc",
564 "string_to_number.h",
Steve Anton10542f22019-01-11 17:11:00565 "string_utils.cc",
566 "string_utils.h",
Karl Wiberg881f1682018-03-08 14:03:23567 "strings/string_builder.cc",
Tommifef05002018-02-27 12:51:08568 "strings/string_builder.h",
henrikaf0dc5c52020-04-09 16:46:00569 "strings/string_format.cc",
570 "strings/string_format.h",
Patrik Höglunda8005cf2017-12-13 15:05:42571 ]
572 deps = [
Patrik Höglund3e113432017-12-15 13:40:10573 ":checks",
Jonas Olsson6b1985d2018-07-05 09:59:48574 ":macromagic",
Karl Wiberg881f1682018-03-08 14:03:23575 ":safe_minmax",
576 "../api:array_view",
Mirko Bonadei2dcf3482020-06-05 12:30:41577 ]
578 absl_deps = [
Artem Titov94b57c02019-03-21 12:35:10579 "//third_party/abseil-cpp/absl/strings",
Jonas Olsson6b1985d2018-07-05 09:59:48580 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 13:40:10581 ]
582}
583
Mirko Bonadei86d053c2019-10-17 19:32:04584rtc_library("audio_format_to_string") {
Jonas Olsson74395342018-04-03 10:22:07585 sources = [
586 "strings/audio_format_to_string.cc",
587 "strings/audio_format_to_string.h",
588 ]
589 deps = [
590 ":stringutils",
591 "../api/audio_codecs:audio_codecs_api",
592 ]
593}
594
Patrik Höglund3e113432017-12-15 13:40:10595rtc_source_set("type_traits") {
Mirko Bonadeiccbe95f2020-01-21 11:10:10596 sources = [ "type_traits.h" ]
Patrik Höglund3e113432017-12-15 13:40:10597}
598
Mirko Bonadei86d053c2019-10-17 19:32:04599rtc_library("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53600 visibility = [ "*" ]
nisse75dd6d42017-09-19 15:28:00601 sources = [
Danil Chapovalov07a4f2b2019-03-05 18:58:28602 "task_queue.cc",
nisse75dd6d42017-09-19 15:28:00603 "task_queue.h",
604 ]
perkj650fdae2017-08-25 12:00:11605 deps = [
Tommi8d2c5a82018-03-19 10:12:48606 ":macromagic",
Danil Chapovalov959e9b62019-01-14 13:29:18607 "../api/task_queue",
Mirko Bonadei3d255302018-10-11 08:50:45608 "system:rtc_export",
perkj650fdae2017-08-25 12:00:11609 ]
Danil Chapovalova7e15a22022-07-05 14:03:03610 absl_deps = [
611 "//third_party/abseil-cpp/absl/functional:any_invocable",
612 "//third_party/abseil-cpp/absl/memory",
613 ]
Danil Chapovalov07a4f2b2019-03-05 18:58:28614}
615
Henrik Boström27c29362019-10-21 13:21:55616rtc_source_set("rtc_operations_chain") {
617 visibility = [ "*" ]
618 sources = [
619 "operations_chain.cc",
620 "operations_chain.h",
621 ]
622 deps = [
623 ":checks",
624 ":macromagic",
625 ":refcount",
Niels Möller105711e2022-06-14 13:48:26626 "../api:make_ref_counted",
Niels Möller95129102022-01-13 10:00:05627 "../api:refcountedbase",
Henrik Boström27c29362019-10-21 13:21:55628 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24629 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42630 "system:no_unique_address",
Henrik Boström27c29362019-10-21 13:21:55631 ]
Henrik Boströme574a312020-08-25 08:20:11632 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
Henrik Boström27c29362019-10-21 13:21:55633}
634
Tommi8d2c5a82018-03-19 10:12:48635if (rtc_enable_libevent) {
Mirko Bonadei86d053c2019-10-17 19:32:04636 rtc_library("rtc_task_queue_libevent") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28637 visibility = [ "../api/task_queue:default_task_queue_factory" ]
perkj650fdae2017-08-25 12:00:11638 sources = [
Niels Möller15c9cf72017-10-19 10:38:09639 "task_queue_libevent.cc",
Danil Chapovaloveb175242019-02-12 09:44:38640 "task_queue_libevent.h",
perkj650fdae2017-08-25 12:00:11641 ]
Tommi8d2c5a82018-03-19 10:12:48642 deps = [
643 ":checks",
Tommi8d2c5a82018-03-19 10:12:48644 ":logging",
Yves Gerey2e00abc2018-10-05 13:39:24645 ":macromagic",
Tommi8d2c5a82018-03-19 10:12:48646 ":platform_thread",
Yves Gerey2e00abc2018-10-05 13:39:24647 ":platform_thread_types",
Tommi8d2c5a82018-03-19 10:12:48648 ":safe_conversions",
649 ":timeutils",
Danil Chapovaloveb175242019-02-12 09:44:38650 "../api/task_queue",
Danil Chapovalov30c2a312022-07-19 12:12:43651 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58652 "synchronization:mutex",
Mirko Bonadei2dcf3482020-06-05 12:30:41653 ]
654 absl_deps = [
Steve Anton9a83dd72020-01-09 19:03:25655 "//third_party/abseil-cpp/absl/container:inlined_vector",
Danil Chapovalov30c2a312022-07-19 12:12:43656 "//third_party/abseil-cpp/absl/functional:any_invocable",
Danil Chapovaloveb175242019-02-12 09:44:38657 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 10:12:48658 ]
659 if (rtc_build_libevent) {
Byoungchan Leed69a7262022-06-23 13:06:00660 deps += [ "//third_party/libevent" ]
Tommi8d2c5a82018-03-19 10:12:48661 }
662 }
663}
664
665if (is_mac || is_ios) {
Mirko Bonadei86d053c2019-10-17 19:32:04666 rtc_library("rtc_task_queue_gcd") {
Byoungchan Lee08438fc2021-10-12 13:53:35667 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48668 sources = [
669 "task_queue_gcd.cc",
Danil Chapovalov47cf5ea2019-02-19 19:20:16670 "task_queue_gcd.h",
Tommi8d2c5a82018-03-19 10:12:48671 ]
672 deps = [
673 ":checks",
674 ":logging",
Danil Chapovalov47cf5ea2019-02-19 19:20:16675 "../api/task_queue",
Danil Chapovalovfcfa80f2022-07-07 09:26:48676 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58677 "synchronization:mutex",
Yura Yaroshevichebf739b2020-03-16 15:00:59678 "system:gcd_helpers",
Tommi8d2c5a82018-03-19 10:12:48679 ]
Danil Chapovalovfcfa80f2022-07-07 09:26:48680 absl_deps = [
681 "//third_party/abseil-cpp/absl/functional:any_invocable",
682 "//third_party/abseil-cpp/absl/strings",
683 ]
Tommi8d2c5a82018-03-19 10:12:48684 }
685}
686
687if (is_win) {
Mirko Bonadei86d053c2019-10-17 19:32:04688 rtc_library("rtc_task_queue_win") {
Danil Chapovalov07a4f2b2019-03-05 18:58:28689 visibility = [ "../api/task_queue:default_task_queue_factory" ]
Tommi8d2c5a82018-03-19 10:12:48690 sources = [
691 "task_queue_win.cc",
Danil Chapovalov826f2e72019-02-20 17:13:09692 "task_queue_win.h",
Tommi8d2c5a82018-03-19 10:12:48693 ]
694 deps = [
695 ":checks",
Tommi8d2c5a82018-03-19 10:12:48696 ":logging",
697 ":macromagic",
698 ":platform_thread",
Tommi8d2c5a82018-03-19 10:12:48699 ":rtc_event",
Tommi8d2c5a82018-03-19 10:12:48700 ":safe_conversions",
701 ":timeutils",
Danil Chapovalov826f2e72019-02-20 17:13:09702 "../api/task_queue",
Danil Chapovalov3c06cfc2022-07-20 11:38:58703 "../api/units:time_delta",
704 "../api/units:timestamp",
Markus Handell18523c32020-07-08 15:55:58705 "synchronization:mutex",
Tommi8d2c5a82018-03-19 10:12:48706 ]
Markus Handellad5037b2021-05-07 13:02:36707 absl_deps = [
Danil Chapovalov3c06cfc2022-07-20 11:38:58708 "//third_party/abseil-cpp/absl/functional:any_invocable",
Markus Handellad5037b2021-05-07 13:02:36709 "//third_party/abseil-cpp/absl/strings",
710 "//third_party/abseil-cpp/absl/types:optional",
711 ]
Tommi8d2c5a82018-03-19 10:12:48712 }
713}
714
Mirko Bonadei86d053c2019-10-17 19:32:04715rtc_library("rtc_task_queue_stdlib") {
Robin Raymond22027b92018-11-23 14:07:50716 sources = [
717 "task_queue_stdlib.cc",
Danil Chapovalovfa52efa2019-02-21 10:13:58718 "task_queue_stdlib.h",
Robin Raymond22027b92018-11-23 14:07:50719 ]
720 deps = [
721 ":checks",
Danil Chapovalovba570012022-07-19 16:36:31722 ":divide_round",
Robin Raymond22027b92018-11-23 14:07:50723 ":logging",
724 ":macromagic",
725 ":platform_thread",
Robin Raymond22027b92018-11-23 14:07:50726 ":rtc_event",
Robin Raymond22027b92018-11-23 14:07:50727 ":safe_conversions",
728 ":timeutils",
Danil Chapovalovfa52efa2019-02-21 10:13:58729 "../api/task_queue",
Danil Chapovalovba570012022-07-19 16:36:31730 "../api/units:time_delta",
Markus Handell18523c32020-07-08 15:55:58731 "synchronization:mutex",
Robin Raymond22027b92018-11-23 14:07:50732 ]
Danil Chapovalovba570012022-07-19 16:36:31733 absl_deps = [
734 "//third_party/abseil-cpp/absl/functional:any_invocable",
735 "//third_party/abseil-cpp/absl/strings",
736 ]
Robin Raymond22027b92018-11-23 14:07:50737}
738
Mirko Bonadei86d053c2019-10-17 19:32:04739rtc_library("weak_ptr") {
Henrik Kjellanderc0362762017-06-29 06:03:04740 sources = [
741 "weak_ptr.cc",
742 "weak_ptr.h",
743 ]
744 deps = [
Tommi8d2c5a82018-03-19 10:12:48745 ":refcount",
Mirko Bonadeid9708072019-01-25 19:26:48746 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24747 "../api:sequence_checker",
Mirko Bonadei20e4c802020-11-23 10:07:42748 "system:no_unique_address",
Henrik Kjellanderc0362762017-06-29 06:03:04749 ]
750}
751
Mirko Bonadei86d053c2019-10-17 19:32:04752rtc_library("rtc_numerics") {
Henrik Kjellanderc0362762017-06-29 06:03:04753 sources = [
Jonas Oreland63dced92019-11-25 12:00:15754 "numerics/event_based_exponential_moving_average.cc",
755 "numerics/event_based_exponential_moving_average.h",
Henrik Kjellanderc0362762017-06-29 06:03:04756 "numerics/exp_filter.cc",
757 "numerics/exp_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48758 "numerics/math_utils.h",
Ilya Nikolaevskiy26341992018-11-05 11:55:18759 "numerics/moving_average.cc",
760 "numerics/moving_average.h",
Ilya Nikolaevskiyb9685752017-11-01 13:01:00761 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 06:03:04762 "numerics/percentile_filter.h",
Yves Gerey890f62b2019-04-10 15:18:48763 "numerics/running_statistics.h",
Bjorn Tereliusa194e582017-10-25 11:07:09764 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 06:03:04765 ]
766 deps = [
Patrik Höglunda8005cf2017-12-13 15:05:42767 ":checks",
Florent Castelli31764092022-04-14 11:41:58768 ":mod_ops",
Artem Titov9d777622020-09-18 16:23:08769 ]
770 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
771}
772
773rtc_library("rtc_stats_counters") {
774 sources = [
775 "numerics/event_rate_counter.cc",
776 "numerics/event_rate_counter.h",
777 "numerics/sample_stats.cc",
778 "numerics/sample_stats.h",
779 ]
780 deps = [
781 "../api/numerics",
Sebastian Janssonefa3f762019-12-02 06:19:55782 "../api/units:data_rate",
783 "../api/units:time_delta",
Artem Titov6fcdbc12019-09-11 09:45:40784 "../api/units:timestamp",
Mirko Bonadei2dcf3482020-06-05 12:30:41785 ]
Artem Titov9d777622020-09-18 16:23:08786 absl_deps = []
Henrik Kjellanderc0362762017-06-29 06:03:04787}
788
Mirko Bonadei65643662019-07-12 11:29:30789config("rtc_json_suppressions") {
Mirko Bonadei94077762019-06-27 09:24:25790 if (!is_win || is_clang) {
Mirko Bonadei65643662019-07-12 11:29:30791 cflags_cc = [
Mirko Bonadei1cd6f322019-07-12 19:47:47792 # TODO(bugs.webrtc.org/10814): Remove -Wno-undef as soon as it get
Mirko Bonadei65643662019-07-12 11:29:30793 # removed upstream.
794 "-Wno-undef",
795 ]
Mirko Bonadei94077762019-06-27 09:24:25796 }
797}
798
Mirko Bonadei86d053c2019-10-17 19:32:04799rtc_library("rtc_json") {
Mirko Bonadei65643662019-07-12 11:29:30800 public_configs = [ ":rtc_json_suppressions" ]
Sam Zackrisson492fdf42019-10-25 08:45:58801 poisonous = [ "rtc_json" ]
Henrik Kjellanderc0362762017-06-29 06:03:04802 defines = []
803 sources = [
Sam Zackrissonb45bdb52018-10-02 14:25:59804 "strings/json.cc",
805 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 06:03:04806 ]
Mirko Bonadeiccbe95f2020-01-21 11:10:10807 deps = [ ":stringutils" ]
Mirko Bonadeia0e29fc2018-01-26 15:50:02808 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 06:03:04809 if (rtc_build_json) {
Florent Castellif35611a2022-04-14 09:55:57810 deps += [ "//third_party/jsoncpp" ]
Henrik Kjellanderc0362762017-06-29 06:03:04811 } else {
812 include_dirs = [ "$rtc_jsoncpp_root" ]
813
814 # When defined changes the include path for json.h to where it is
815 # expected to be when building json outside of the standalone build.
816 defines += [ "WEBRTC_EXTERNAL_JSON" ]
817 }
Ali Tofigh7fa90572022-03-17 14:47:49818 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Henrik Kjellanderc0362762017-06-29 06:03:04819}
820
Mirko Bonadeie5f4c6b2021-01-15 09:41:01821rtc_library("net_helpers") {
822 sources = [
823 "net_helpers.cc",
824 "net_helpers.h",
825 ]
826 deps = []
827 if (is_android) {
828 deps += [ ":ifaddrs_android" ]
829 }
830 if (is_win) {
Nico Weber79bd4f12021-10-05 19:01:26831 deps += [
Nico Weber79bd4f12021-10-05 19:01:26832 ":win32",
Florent Castelli15a3c3f2022-04-27 08:33:27833 "win:windows_version",
Nico Weber79bd4f12021-10-05 19:01:26834 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01835 }
Ali Tofigh2ab914c2022-04-13 10:55:15836 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45837}
838
Mirko Bonadeie5f4c6b2021-01-15 09:41:01839rtc_library("async_resolver_interface") {
Karl Wiberg02f4e322019-02-10 23:43:43840 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01841 sources = [
842 "async_resolver_interface.cc",
843 "async_resolver_interface.h",
844 ]
845 deps = [
846 ":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",
902 "system:rtc_export",
903 ]
Karl Wiberg0b6d0e62018-12-06 13:50:45904}
905
Karl Wiberg28522dc2019-01-22 16:54:34906rtc_source_set("socket_server") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01907 sources = [ "socket_server.h" ]
908 deps = [ ":socket_factory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45909}
910
Mirko Bonadeie5f4c6b2021-01-15 09:41:01911rtc_library("threading") {
Karl Wiberg02f4e322019-02-10 23:43:43912 visibility = [ "*" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01913
Mirko Bonadeie5f4c6b2021-01-15 09:41:01914 sources = [
915 "async_resolver.cc",
916 "async_resolver.h",
917 "internal/default_socket_server.cc",
918 "internal/default_socket_server.h",
919 "message_handler.cc",
920 "message_handler.h",
921 "network_monitor.cc",
922 "network_monitor.h",
923 "network_monitor_factory.cc",
924 "network_monitor_factory.h",
925 "physical_socket_server.cc",
926 "physical_socket_server.h",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01927 "thread.cc",
928 "thread.h",
929 "thread_message.h",
930 ]
Henrik Boström2deee4b2022-01-20 10:58:05931 absl_deps = [
932 "//third_party/abseil-cpp/absl/algorithm:container",
933 "//third_party/abseil-cpp/absl/base:core_headers",
Danil Chapovalov4bcf8092022-07-06 17:42:34934 "//third_party/abseil-cpp/absl/cleanup",
935 "//third_party/abseil-cpp/absl/functional:any_invocable",
Ali Tofigh7fa90572022-03-17 14:47:49936 "//third_party/abseil-cpp/absl/strings",
Henrik Boström2deee4b2022-01-20 10:58:05937 ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01938 deps = [
939 ":async_resolver_interface",
Florent Castellia876a922022-04-19 15:18:36940 ":byte_order",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01941 ":checks",
942 ":criticalsection",
Florent Castellia30aef32022-04-19 15:47:13943 ":event_tracer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01944 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:56945 ":location",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01946 ":logging",
947 ":macromagic",
948 ":network_constants",
949 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:28950 ":platform_thread",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01951 ":platform_thread_types",
Florent Castellif86f6f92022-04-05 00:54:12952 ":refcount",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01953 ":rtc_event",
954 ":rtc_task_queue",
955 ":socket_address",
956 ":socket_server",
957 ":timeutils",
958 "../api:function_view",
Markus Handell1366b0f2021-04-21 08:22:34959 "../api:refcountedbase",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01960 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:24961 "../api:sequence_checker",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01962 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:45963 "../api/task_queue:pending_task_safety_flag",
Danil Chapovalov4bcf8092022-07-06 17:42:34964 "../api/units:time_delta",
Niels Möller6d176022021-02-09 13:44:48965 "synchronization:mutex",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01966 "system:no_unique_address",
967 "system:rtc_export",
Mirko Bonadeie5f4c6b2021-01-15 09:41:01968 "third_party/sigslot",
969 ]
970 if (is_android) {
971 deps += [ ":ifaddrs_android" ]
972 }
973 if (is_win) {
974 deps += [ ":win32" ]
975 }
976 if (is_mac || is_ios) {
Byoungchan Lee08438fc2021-10-12 13:53:35977 deps += [ "system:cocoa_threading" ]
Mirko Bonadeie5f4c6b2021-01-15 09:41:01978 }
Karl Wiberg0b6d0e62018-12-06 13:50:45979}
980
Karl Wiberg28522dc2019-01-22 16:54:34981rtc_source_set("socket_factory") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:01982 sources = [ "socket_factory.h" ]
Niels Möllerd0b88792021-08-12 08:32:30983 deps = [ ":socket" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45984}
985
Mirko Bonadeie5f4c6b2021-01-15 09:41:01986rtc_library("async_socket") {
987 sources = [
988 "async_socket.cc",
989 "async_socket.h",
990 ]
991 deps = [
992 ":checks",
993 ":socket",
994 ":socket_address",
995 "third_party/sigslot",
996 ]
Niels Möller8729d782021-08-11 09:22:44997 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Karl Wiberg0b6d0e62018-12-06 13:50:45998}
999
Mirko Bonadeie5f4c6b2021-01-15 09:41:011000rtc_library("socket") {
1001 sources = [
1002 "socket.cc",
1003 "socket.h",
1004 ]
1005 deps = [
1006 ":macromagic",
1007 ":socket_address",
Niels Möllerd0b88792021-08-12 08:32:301008 "third_party/sigslot",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011009 ]
1010 if (is_win) {
1011 deps += [ ":win32" ]
1012 }
Karl Wiberg0b6d0e62018-12-06 13:50:451013}
1014
1015rtc_source_set("network_constants") {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011016 sources = [
1017 "network_constants.cc",
1018 "network_constants.h",
1019 ]
1020 deps = [ ":checks" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451021}
1022
1023if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011024 rtc_library("ifaddrs_android") {
1025 sources = [
1026 "ifaddrs_android.cc",
1027 "ifaddrs_android.h",
1028 ]
1029 libs = [
1030 "log",
1031 "GLESv2",
1032 ]
Danil Chapovalove6106102022-02-16 11:29:021033 absl_deps = [ "//third_party/abseil-cpp/absl/cleanup" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451034 }
1035}
1036
1037if (is_win) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011038 rtc_library("win32") {
Tommi16db7ff2020-09-26 09:57:261039 sources = [
1040 "win32.cc",
1041 "win32.h",
1042 "win32_window.cc",
1043 "win32_window.h",
1044 ]
1045
1046 deps = [
Florent Castellia876a922022-04-19 15:18:361047 ":byte_order",
Tommi16db7ff2020-09-26 09:57:261048 ":checks",
Florent Castelli0af55ba2022-04-04 13:06:301049 ":logging",
Tommi16db7ff2020-09-26 09:57:261050 ":macromagic",
Florent Castelli57aa81b2022-04-04 15:14:021051 ":stringutils",
Tommi16db7ff2020-09-26 09:57:261052 ]
1053
1054 libs = [
1055 "crypt32.lib",
1056 "iphlpapi.lib",
1057 "secur32.lib",
1058 ]
1059
1060 defines = [ "_CRT_NONSTDC_NO_DEPRECATE" ]
Karl Wiberg0b6d0e62018-12-06 13:50:451061 }
1062}
1063
Mirko Bonadei86d053c2019-10-17 19:32:041064rtc_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:531065 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 06:03:041066 cflags = []
1067 cflags_cc = []
1068 libs = []
1069 defines = []
1070 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011071 ":async_resolver_interface",
1072 ":async_socket",
Florent Castellif9c59842022-04-19 15:07:231073 ":buffer",
Florent Castelliceb7b362022-04-19 15:35:041074 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361075 ":byte_order",
Tomas Gunnarssonf15189d2022-04-13 09:03:521076 ":callback_list",
Patrik Höglunda8005cf2017-12-13 15:05:421077 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461078 ":copy_on_write_buffer",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011079 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561080 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301081 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461082 ":macromagic",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011083 ":network_constants",
1084 ":null_socket_server",
Florent Castellif86f6f92022-04-05 00:54:121085 ":refcount",
Florent Castelli33d31fb2022-04-04 14:57:521086 ":rtc_event",
Markus Handellfbf4ad22020-05-26 16:43:551087 ":rtc_task_queue",
Florent Castellie10a9f62022-04-04 15:04:371088 ":safe_conversions",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011089 ":socket",
1090 ":socket_address",
1091 ":socket_factory",
1092 ":socket_server",
Patrik Höglund3e113432017-12-15 13:40:101093 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011094 ":threading",
Florent Castellidd837e22022-04-04 15:16:151095 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511096 ":zero_memory",
Joachim Bauch58daf402017-12-21 21:00:341097 "../api:array_view",
Jonas Orelande62c2f22022-03-29 09:04:481098 "../api:field_trials_view",
Danil Chapovalov89313452019-11-29 11:56:431099 "../api:function_view",
Niels Möller105711e2022-06-14 13:48:261100 "../api:make_ref_counted",
Tommi86ee89f2021-04-20 14:58:011101 "../api:refcountedbase",
Mirko Bonadeid9708072019-01-25 19:26:481102 "../api:scoped_refptr",
Artem Titovd15a5752021-02-10 13:31:241103 "../api:sequence_checker",
Artem Titov9d777622020-09-18 16:23:081104 "../api/numerics",
Danil Chapovalov912b3b82019-11-22 14:52:401105 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451106 "../api/task_queue:pending_task_safety_flag",
Jonas Orelandc06fe8b2022-03-28 12:58:261107 "../api/transport:field_trial_based_config",
Danil Chapovalov5286dcf2022-07-18 15:04:561108 "../api/units:time_delta",
Harald Alvestrand13799132020-03-09 18:39:361109 "../system_wrappers:field_trial",
Jonas Orelandc06fe8b2022-03-28 12:58:261110 "memory:always_valid_pointer",
Sebastian Janssone07864e2018-10-15 07:28:151111 "network:sent_packet",
Markus Handell18523c32020-07-08 15:55:581112 "synchronization:mutex",
Niels Möller23213d92019-01-22 10:01:241113 "system:file_wrapper",
Jonas Oreland71fda362020-03-20 15:11:561114 "system:inline",
Mirko Bonadei20e4c802020-11-23 10:07:421115 "system:no_unique_address",
Mirko Bonadei35214fc2019-09-23 12:54:281116 "system:rtc_export",
Tommi04482982020-10-05 12:43:531117 "task_utils:repeating_task",
Artem Titova76af0c2018-07-23 15:38:121118 "third_party/base64",
Artem Titove41c4332018-07-25 13:04:281119 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411120 ]
1121 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301122 "//third_party/abseil-cpp/absl/algorithm:container",
Taylor Brandstetter7b69a442020-08-20 23:43:131123 "//third_party/abseil-cpp/absl/container:flat_hash_map",
Karl Wiberg918f50c2018-07-05 09:40:331124 "//third_party/abseil-cpp/absl/memory",
Niels Möller3c7d5992018-10-19 13:29:541125 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0a1d1892018-06-21 09:48:251126 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 06:03:041127 ]
Henrik Kjellanderc0362762017-06-29 06:03:041128 public_configs = []
1129
Henrik Kjellanderc0362762017-06-29 06:03:041130 sources = [
Steve Anton10542f22019-01-11 17:11:001131 "async_invoker.cc",
1132 "async_invoker.h",
1133 "async_invoker_inl.h",
1134 "async_packet_socket.cc",
1135 "async_packet_socket.h",
Steve Anton10542f22019-01-11 17:11:001136 "async_tcp_socket.cc",
1137 "async_tcp_socket.h",
1138 "async_udp_socket.cc",
1139 "async_udp_socket.h",
Henrik Kjellanderc0362762017-06-29 06:03:041140 "crc32.cc",
1141 "crc32.h",
Steve Anton10542f22019-01-11 17:11:001142 "crypt_string.cc",
1143 "crypt_string.h",
Sebastian Janssonf9c5cf62018-02-28 15:04:261144 "data_rate_limiter.cc",
1145 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 10:50:211146 "dscp.h",
Steve Anton10542f22019-01-11 17:11:001147 "file_rotating_stream.cc",
1148 "file_rotating_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041149 "helpers.cc",
1150 "helpers.h",
Steve Anton10542f22019-01-11 17:11:001151 "http_common.cc",
1152 "http_common.h",
Qingsi Wang09619332018-09-13 05:51:551153 "mdns_responder_interface.h",
Steve Anton10542f22019-01-11 17:11:001154 "message_digest.cc",
1155 "message_digest.h",
Steve Anton10542f22019-01-11 17:11:001156 "net_helper.cc",
1157 "net_helper.h",
Henrik Kjellanderc0362762017-06-29 06:03:041158 "network.cc",
1159 "network.h",
henrikaf0dc5c52020-04-09 16:46:001160 "network_route.cc",
Steve Anton10542f22019-01-11 17:11:001161 "network_route.h",
Henrik Kjellanderc0362762017-06-29 06:03:041162 "openssl.h",
Steve Anton10542f22019-01-11 17:11:001163 "openssl_adapter.cc",
1164 "openssl_adapter.h",
Steve Anton10542f22019-01-11 17:11:001165 "openssl_digest.cc",
1166 "openssl_digest.h",
Taylor Brandstetter165c6182020-12-11 00:23:031167 "openssl_key_pair.cc",
1168 "openssl_key_pair.h",
Steve Anton10542f22019-01-11 17:11:001169 "openssl_session_cache.cc",
1170 "openssl_session_cache.h",
1171 "openssl_stream_adapter.cc",
1172 "openssl_stream_adapter.h",
1173 "openssl_utility.cc",
1174 "openssl_utility.h",
Steve Anton10542f22019-01-11 17:11:001175 "proxy_info.cc",
1176 "proxy_info.h",
1177 "rtc_certificate.cc",
1178 "rtc_certificate.h",
1179 "rtc_certificate_generator.cc",
1180 "rtc_certificate_generator.h",
Steve Anton10542f22019-01-11 17:11:001181 "sigslot_repeater.h",
Steve Anton10542f22019-01-11 17:11:001182 "socket_adapters.cc",
1183 "socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001184 "socket_address_pair.cc",
1185 "socket_address_pair.h",
Steve Anton10542f22019-01-11 17:11:001186 "ssl_adapter.cc",
1187 "ssl_adapter.h",
1188 "ssl_certificate.cc",
1189 "ssl_certificate.h",
1190 "ssl_fingerprint.cc",
1191 "ssl_fingerprint.h",
1192 "ssl_identity.cc",
1193 "ssl_identity.h",
1194 "ssl_stream_adapter.cc",
1195 "ssl_stream_adapter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041196 "stream.cc",
1197 "stream.h",
Amit Hilbuchdbb49df2019-01-23 22:54:241198 "unique_id_generator.cc",
1199 "unique_id_generator.h",
Henrik Kjellanderc0362762017-06-29 06:03:041200 ]
1201
Taylor Brandstetterc70bd182020-12-11 19:30:431202 # If we are building the SSL library ourselves, we know it's BoringSSL.
1203 if (rtc_build_ssl) {
Taylor Brandstetter165c6182020-12-11 00:23:031204 sources += [
1205 "boringssl_certificate.cc",
1206 "boringssl_certificate.h",
1207 "boringssl_identity.cc",
1208 "boringssl_identity.h",
1209 ]
1210 } else {
1211 sources += [
1212 "openssl_certificate.cc",
1213 "openssl_certificate.h",
1214 "openssl_identity.cc",
1215 "openssl_identity.h",
1216 ]
1217 }
1218
Henrik Kjellanderc0362762017-06-29 06:03:041219 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 06:03:041220 include_dirs = [ "../../boringssl/src/include" ]
Henrik Kjellanderc0362762017-06-29 06:03:041221 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041222 sources += [
Steve Anton10542f22019-01-11 17:11:001223 "log_sinks.cc",
1224 "log_sinks.h",
Steve Anton10542f22019-01-11 17:11:001225 "rolling_accumulator.h",
1226 "ssl_roots.h",
Henrik Kjellanderc0362762017-06-29 06:03:041227 ]
1228
Yves Gerey3dfb6802019-05-13 15:01:321229 deps += [ ":rtc_numerics" ]
1230
Henrik Kjellanderc0362762017-06-29 06:03:041231 if (is_win) {
Steve Antonf3802842019-01-25 03:07:401232 sources += [ "win32_socket_init.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041233 }
1234 } # !build_with_chromium
1235
1236 if (rtc_build_ssl) {
1237 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 15:40:391238 } else {
Henrik Kjellanderc0362762017-06-29 06:03:041239 configs += [ ":external_ssl_library" ]
1240 }
1241
1242 if (is_android) {
Mirko Bonadeie5f4c6b2021-01-15 09:41:011243 deps += [ ":ifaddrs_android" ]
Henrik Kjellanderc0362762017-06-29 06:03:041244 }
1245
1246 if (is_ios || is_mac) {
Steve Anton10542f22019-01-11 17:11:001247 sources += [ "mac_ifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 06:03:041248 }
1249
Hidehiko Abef264e702020-09-10 09:10:111250 if (is_linux || is_chromeos) {
Henrik Kjellanderc0362762017-06-29 06:03:041251 libs += [
1252 "dl",
1253 "rt",
1254 ]
1255 }
1256
Oleh Prypinb3f78de2019-07-18 20:25:481257 if (is_ios) {
Sylvain Defresnec7f0dff2020-07-03 08:19:301258 frameworks = [
Oleh Prypinb3f78de2019-07-18 20:25:481259 "CFNetwork.framework",
1260 "Foundation.framework",
1261 "Security.framework",
1262 "SystemConfiguration.framework",
1263 "UIKit.framework",
1264 ]
Henrik Kjellanderc0362762017-06-29 06:03:041265 }
1266
1267 if (is_win) {
Tommi16db7ff2020-09-26 09:57:261268 deps += [ ":win32" ]
Henrik Kjellanderc0362762017-06-29 06:03:041269 }
1270
Fabrice de Gans-Riberi09a6cd52018-03-30 17:38:061271 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 06:03:041272 sources += [
1273 "ifaddrs_converter.cc",
1274 "ifaddrs_converter.h",
Henrik Kjellanderc0362762017-06-29 06:03:041275 ]
1276 }
1277
1278 if (is_nacl) {
Harald Alvestrand13799132020-03-09 18:39:361279 public_deps += # no-presubmit-check TODO(webrtc:8603)
1280 [ "//native_client_sdk/src/libraries/nacl_io" ]
1281
Henrik Kjellanderc0362762017-06-29 06:03:041282 defines += [ "timezone=_timezone" ]
1283 sources -= [ "ifaddrs_converter.cc" ]
1284 }
Henrik Kjellanderc0362762017-06-29 06:03:041285}
1286
1287rtc_source_set("gtest_prod") {
Mirko Bonadeiccbe95f2020-01-21 11:10:101288 sources = [ "gtest_prod_util.h" ]
Henrik Kjellanderc0362762017-06-29 06:03:041289}
1290
Mirko Bonadei86d053c2019-10-17 19:32:041291rtc_library("gunit_helpers") {
Mirko Bonadeie3abb812018-11-23 12:15:081292 testonly = true
1293 sources = [
1294 "gunit.cc",
1295 "gunit.h",
1296 ]
1297 deps = [
1298 ":logging",
1299 ":rtc_base",
1300 ":rtc_base_tests_utils",
1301 ":stringutils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011302 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081303 "../test:test_support",
1304 ]
Mirko Bonadei2dcf3482020-06-05 12:30:411305 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Mirko Bonadeie3abb812018-11-23 12:15:081306}
1307
Mirko Bonadei86d053c2019-10-17 19:32:041308rtc_library("testclient") {
Mirko Bonadeie3abb812018-11-23 12:15:081309 testonly = true
1310 sources = [
Steve Anton10542f22019-01-11 17:11:001311 "test_client.cc",
1312 "test_client.h",
Mirko Bonadeie3abb812018-11-23 12:15:081313 ]
1314 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081315 ":gunit_helpers",
Mirko Bonadeie3abb812018-11-23 12:15:081316 ":rtc_base",
1317 ":rtc_base_tests_utils",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011318 ":threading",
Mirko Bonadeie3abb812018-11-23 12:15:081319 ":timeutils",
Markus Handell18523c32020-07-08 15:55:581320 "synchronization:mutex",
Mirko Bonadeie3abb812018-11-23 12:15:081321 ]
1322}
1323
Mirko Bonadei3d259352020-10-23 10:04:401324rtc_library("callback_list_unittests") {
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211325 testonly = true
1326
Mirko Bonadei3d259352020-10-23 10:04:401327 sources = [ "callback_list_unittest.cc" ]
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211328 deps = [
Mirko Bonadei3d259352020-10-23 10:04:401329 ":callback_list",
Lahiru Ginnaliya Gamathige3e982802020-09-16 17:34:211330 ":gunit_helpers",
1331 ":rtc_base",
1332 "../api:function_view",
1333 "../test:test_support",
1334 ]
1335}
1336
Mirko Bonadei86d053c2019-10-17 19:32:041337rtc_library("rtc_base_tests_utils") {
Henrik Kjellanderc0362762017-06-29 06:03:041338 testonly = true
1339 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041340 "cpu_time.cc",
1341 "cpu_time.h",
Steve Anton10542f22019-01-11 17:11:001342 "fake_clock.cc",
1343 "fake_clock.h",
Qingsi Wang09619332018-09-13 05:51:551344 "fake_mdns_responder.h",
Steve Anton10542f22019-01-11 17:11:001345 "fake_network.h",
1346 "fake_ssl_identity.cc",
1347 "fake_ssl_identity.h",
1348 "firewall_socket_server.cc",
1349 "firewall_socket_server.h",
Niels Möllere7547d52018-11-01 08:33:081350 "memory_stream.cc",
1351 "memory_stream.h",
Henrik Kjellanderc0362762017-06-29 06:03:041352 "memory_usage.cc",
1353 "memory_usage.h",
Steve Anton10542f22019-01-11 17:11:001354 "nat_server.cc",
1355 "nat_server.h",
1356 "nat_socket_factory.cc",
1357 "nat_socket_factory.h",
1358 "nat_types.cc",
1359 "nat_types.h",
1360 "proxy_server.cc",
1361 "proxy_server.h",
Niels Möller44153152018-12-17 13:04:051362 "server_socket_adapters.cc",
1363 "server_socket_adapters.h",
Steve Anton10542f22019-01-11 17:11:001364 "sigslot_tester.h",
Steve Anton10542f22019-01-11 17:11:001365 "socket_stream.cc",
1366 "socket_stream.h",
1367 "test_base64.h",
1368 "test_certificate_verifier.h",
1369 "test_echo_server.cc",
1370 "test_echo_server.h",
1371 "test_utils.cc",
1372 "test_utils.h",
1373 "virtual_socket_server.cc",
1374 "virtual_socket_server.h",
Henrik Kjellanderc0362762017-06-29 06:03:041375 ]
Henrik Kjellanderc0362762017-06-29 06:03:041376 deps = [
Mirko Bonadeie5f4c6b2021-01-15 09:41:011377 ":async_socket",
Florent Castelliceb7b362022-04-19 15:35:041378 ":byte_buffer",
Patrik Höglunda8005cf2017-12-13 15:05:421379 ":checks",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011380 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561381 ":location",
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",
Sebastian Jansson5f83cf02018-05-08 12:52:221393 "../api/units:time_delta",
Sebastian Janssond624c392019-04-17 08:36:031394 "../api/units:timestamp",
Jonas Orelandc06fe8b2022-03-28 12:58:261395 "../test:scoped_key_value_config",
1396 "memory:always_valid_pointer",
Niels Möller13339482019-03-28 12:30:151397 "memory:fifo_buffer",
Markus Handell18523c32020-07-08 15:55:581398 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281399 "third_party/sigslot",
Mirko Bonadei2dcf3482020-06-05 12:30:411400 ]
1401 absl_deps = [
Steve Anton2acd1632019-03-25 20:48:301402 "//third_party/abseil-cpp/absl/algorithm:container",
Karl Wiberg918f50c2018-07-05 09:40:331403 "//third_party/abseil-cpp/absl/memory",
Ali Tofigh7fa90572022-03-17 14:47:491404 "//third_party/abseil-cpp/absl/strings",
Henrik Kjellanderc0362762017-06-29 06:03:041405 ]
Henrik Kjellanderc0362762017-06-29 06:03:041406}
1407
Mirko Bonadei86d053c2019-10-17 19:32:041408rtc_library("task_queue_for_test") {
Tommida8781f2018-02-19 11:41:431409 testonly = true
1410
1411 sources = [
1412 "task_queue_for_test.cc",
1413 "task_queue_for_test.h",
1414 ]
1415 deps = [
1416 ":checks",
Florent Castelliaa6d05d2022-04-14 11:13:561417 ":location",
Florent Castelli4467ad72022-04-04 13:18:461418 ":macromagic",
Danil Chapovalovd26a9162019-03-19 17:08:371419 ":rtc_event",
Tommida8781f2018-02-19 11:41:431420 ":rtc_task_queue",
Danil Chapovalov5286dcf2022-07-18 15:04:561421 "../api:function_view",
Danil Chapovaloveb90e6f2019-10-15 08:04:571422 "../api/task_queue",
Danil Chapovalovd26a9162019-03-19 17:08:371423 "../api/task_queue:default_task_queue_factory",
Tommida8781f2018-02-19 11:41:431424 ]
Danil Chapovalov5286dcf2022-07-18 15:04:561425 absl_deps = [
1426 "//third_party/abseil-cpp/absl/cleanup",
1427 "//third_party/abseil-cpp/absl/strings",
1428 ]
Tommida8781f2018-02-19 11:41:431429}
1430
Henrik Kjellanderc0362762017-06-29 06:03:041431if (rtc_include_tests) {
Mirko Bonadei86d053c2019-10-17 19:32:041432 rtc_library("sigslot_unittest") {
Artem Titove41c4332018-07-25 13:04:281433 testonly = true
Mirko Bonadeiccbe95f2020-01-21 11:10:101434 sources = [ "sigslot_unittest.cc" ]
Artem Titove41c4332018-07-25 13:04:281435 deps = [
Mirko Bonadeie3abb812018-11-23 12:15:081436 ":gunit_helpers",
Artem Titove41c4332018-07-25 13:04:281437 ":rtc_base",
1438 ":rtc_base_tests_utils",
Yves Gerey3e707812018-11-28 15:47:491439 "../test:test_support",
Markus Handell18523c32020-07-08 15:55:581440 "synchronization:mutex",
Artem Titove41c4332018-07-25 13:04:281441 "third_party/sigslot",
1442 ]
1443 }
1444
Karl Wiberg70026f92020-09-18 08:03:161445 rtc_library("untyped_function_unittest") {
Karl Wiberg78e9acd2020-09-15 09:06:341446 testonly = true
Karl Wiberg70026f92020-09-18 08:03:161447 sources = [ "untyped_function_unittest.cc" ]
Karl Wiberg78e9acd2020-09-15 09:06:341448 deps = [
Karl Wiberg70026f92020-09-18 08:03:161449 ":untyped_function",
Karl Wiberg78e9acd2020-09-15 09:06:341450 "../test:test_support",
1451 ]
1452 }
1453
Henrik Boström27c29362019-10-21 13:21:551454 rtc_library("rtc_operations_chain_unittests") {
1455 testonly = true
1456
Mirko Bonadeiccbe95f2020-01-21 11:10:101457 sources = [ "operations_chain_unittest.cc" ]
Henrik Boström27c29362019-10-21 13:21:551458 deps = [
Henrik Boströme8b00a12020-08-25 15:11:201459 ":gunit_helpers",
Henrik Boström27c29362019-10-21 13:21:551460 ":rtc_base",
Henrik Boström27c29362019-10-21 13:21:551461 ":rtc_event",
1462 ":rtc_operations_chain",
Mirko Bonadeie5f4c6b2021-01-15 09:41:011463 ":threading",
Henrik Boström27c29362019-10-21 13:21:551464 "../test:test_support",
1465 ]
1466 }
1467
Andrey Logvine7c79fd2021-02-01 09:56:371468 if (!build_with_chromium) {
1469 rtc_library("rtc_base_nonparallel_tests") {
1470 testonly = true
Henrik Kjellanderc0362762017-06-29 06:03:041471
Andrey Logvine7c79fd2021-02-01 09:56:371472 sources = [
1473 "cpu_time_unittest.cc",
1474 "file_rotating_stream_unittest.cc",
1475 "null_socket_server_unittest.cc",
1476 "physical_socket_server_unittest.cc",
1477 "socket_address_unittest.cc",
1478 "socket_unittest.cc",
1479 "socket_unittest.h",
Tommi16db7ff2020-09-26 09:57:261480 ]
Andrey Logvine7c79fd2021-02-01 09:56:371481 deps = [
Florent Castellif9c59842022-04-19 15:07:231482 ":buffer",
Andrey Logvine7c79fd2021-02-01 09:56:371483 ":checks",
1484 ":gunit_helpers",
1485 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561486 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301487 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461488 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371489 ":net_helpers",
1490 ":null_socket_server",
Florent Castelli45a05992022-04-14 10:18:281491 ":platform_thread",
Andrey Logvine7c79fd2021-02-01 09:56:371492 ":rtc_base",
1493 ":rtc_base_tests_utils",
1494 ":socket",
1495 ":socket_address",
1496 ":socket_server",
1497 ":testclient",
1498 ":threading",
Florent Castellidd837e22022-04-04 15:16:151499 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371500 "../system_wrappers",
1501 "../test:fileutils",
1502 "../test:test_main",
1503 "../test:test_support",
1504 "third_party/sigslot",
1505 "//testing/gtest",
1506 ]
Ali Tofigh7fa90572022-03-17 14:47:491507 absl_deps = [
1508 "//third_party/abseil-cpp/absl/memory",
1509 "//third_party/abseil-cpp/absl/strings",
1510 ]
Tommi16db7ff2020-09-26 09:57:261511 }
Andrey Logvine7c79fd2021-02-01 09:56:371512
1513 rtc_library("rtc_base_approved_unittests") {
1514 testonly = true
1515 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371516 "base64_unittest.cc",
1517 "bit_buffer_unittest.cc",
Danil Chapovalov5af152c2021-08-31 13:27:511518 "bitstream_reader_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371519 "bounded_inline_vector_unittest.cc",
1520 "buffer_queue_unittest.cc",
1521 "buffer_unittest.cc",
1522 "byte_buffer_unittest.cc",
1523 "byte_order_unittest.cc",
1524 "checks_unittest.cc",
1525 "copy_on_write_buffer_unittest.cc",
1526 "deprecated/recursive_critical_section_unittest.cc",
1527 "event_tracer_unittest.cc",
1528 "event_unittest.cc",
1529 "logging_unittest.cc",
1530 "numerics/divide_round_unittest.cc",
1531 "numerics/histogram_percentile_counter_unittest.cc",
1532 "numerics/mod_ops_unittest.cc",
1533 "numerics/moving_max_counter_unittest.cc",
1534 "numerics/safe_compare_unittest.cc",
1535 "numerics/safe_minmax_unittest.cc",
1536 "numerics/sample_counter_unittest.cc",
1537 "one_time_event_unittest.cc",
1538 "platform_thread_unittest.cc",
1539 "random_unittest.cc",
1540 "rate_limiter_unittest.cc",
1541 "rate_statistics_unittest.cc",
1542 "rate_tracker_unittest.cc",
1543 "ref_counted_object_unittest.cc",
1544 "sanitizer_unittest.cc",
1545 "string_encode_unittest.cc",
1546 "string_to_number_unittest.cc",
1547 "string_utils_unittest.cc",
1548 "strings/string_builder_unittest.cc",
1549 "strings/string_format_unittest.cc",
Victor Boivieb9182302021-09-21 12:51:051550 "strong_alias_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371551 "swap_queue_unittest.cc",
1552 "thread_annotations_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371553 "time_utils_unittest.cc",
1554 "timestamp_aligner_unittest.cc",
1555 "virtual_socket_unittest.cc",
1556 "zero_memory_unittest.cc",
1557 ]
Andrey Logvine7c79fd2021-02-01 09:56:371558 deps = [
Florent Castelli7f623b02022-04-14 11:34:561559 ":bit_buffer",
Danil Chapovalov5af152c2021-08-31 13:27:511560 ":bitstream_reader",
Andrey Logvine7c79fd2021-02-01 09:56:371561 ":bounded_inline_vector",
Florent Castellif9c59842022-04-19 15:07:231562 ":buffer",
Florent Castelli76063752022-04-19 15:14:261563 ":buffer_queue",
Florent Castelliceb7b362022-04-19 15:35:041564 ":byte_buffer",
Florent Castellia876a922022-04-19 15:18:361565 ":byte_order",
Andrey Logvine7c79fd2021-02-01 09:56:371566 ":checks",
Florent Castellied4aadc2022-04-19 15:40:461567 ":copy_on_write_buffer",
Niels Möller9233af32021-06-22 09:24:061568 ":criticalsection",
Andrey Logvine7c79fd2021-02-01 09:56:371569 ":divide_round",
Florent Castellia30aef32022-04-19 15:47:131570 ":event_tracer",
Andrey Logvine7c79fd2021-02-01 09:56:371571 ":gunit_helpers",
Florent Castelli17296422022-04-14 11:48:101572 ":histogram_percentile_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371573 ":ip_address",
Florent Castelliaa6d05d2022-04-14 11:13:561574 ":location",
Florent Castelli0af55ba2022-04-04 13:06:301575 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461576 ":macromagic",
Florent Castelli31764092022-04-14 11:41:581577 ":mod_ops",
1578 ":moving_max_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371579 ":null_socket_server",
Florent Castelli6b608592022-04-14 11:18:041580 ":one_time_event",
Florent Castelli45a05992022-04-14 10:18:281581 ":platform_thread",
Florent Castelli71337f32022-04-14 10:41:261582 ":random",
Andrey Logvine7c79fd2021-02-01 09:56:371583 ":rate_limiter",
Florent Castelli6bb1fd32022-04-19 13:58:391584 ":rate_statistics",
Florent Castelli58cc4682022-04-19 13:50:281585 ":rate_tracker",
Florent Castellif86f6f92022-04-05 00:54:121586 ":refcount",
Andrey Logvine7c79fd2021-02-01 09:56:371587 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371588 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521589 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371590 ":rtc_numerics",
1591 ":rtc_task_queue",
1592 ":safe_compare",
1593 ":safe_minmax",
Florent Castelli83a36d42022-04-14 11:44:391594 ":sample_counter",
Andrey Logvine7c79fd2021-02-01 09:56:371595 ":sanitizer",
1596 ":socket",
1597 ":socket_address",
1598 ":socket_server",
1599 ":stringutils",
Florent Castellia6c10e32022-04-14 11:08:441600 ":strong_alias",
Florent Castellid119b9e2022-04-14 11:23:511601 ":swap_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371602 ":testclient",
1603 ":threading",
Florent Castellib1dc4e42022-04-14 11:20:121604 ":timestamp_aligner",
Florent Castellidd837e22022-04-04 15:16:151605 ":timeutils",
Florent Castellid119b9e2022-04-14 11:23:511606 ":zero_memory",
Andrey Logvine7c79fd2021-02-01 09:56:371607 "../api:array_view",
Niels Möller105711e2022-06-14 13:48:261608 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371609 "../api:scoped_refptr",
1610 "../api/numerics",
1611 "../api/units:time_delta",
1612 "../system_wrappers",
1613 "../test:fileutils",
1614 "../test:test_main",
1615 "../test:test_support",
Nico Weber79bd4f12021-10-05 19:01:261616 "containers:flat_map",
Victor Boiviefd954fc2021-06-29 07:21:111617 "containers:unittests",
Andrey Logvine7c79fd2021-02-01 09:56:371618 "memory:unittests",
1619 "synchronization:mutex",
Andrey Logvine7c79fd2021-02-01 09:56:371620 "third_party/base64",
1621 "third_party/sigslot",
1622 ]
1623 absl_deps = [
1624 "//third_party/abseil-cpp/absl/base:core_headers",
1625 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov5af152c2021-08-31 13:27:511626 "//third_party/abseil-cpp/absl/numeric:bits",
Ali Tofigh6364d082022-03-14 12:32:041627 "//third_party/abseil-cpp/absl/strings",
Markus Handellad5037b2021-05-07 13:02:361628 "//third_party/abseil-cpp/absl/types:optional",
Tommi16db7ff2020-09-26 09:57:261629 ]
Florent Castelli15a3c3f2022-04-27 08:33:271630
1631 if (is_win) {
1632 deps += [ "win:windows_version_unittest" ]
1633 }
Tommi16db7ff2020-09-26 09:57:261634 }
Andrey Logvine7c79fd2021-02-01 09:56:371635
1636 rtc_library("rtc_task_queue_unittests") {
1637 testonly = true
1638
1639 sources = [ "task_queue_unittest.cc" ]
1640 deps = [
1641 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371642 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521643 ":rtc_event",
Andrey Logvine7c79fd2021-02-01 09:56:371644 ":rtc_task_queue",
1645 ":task_queue_for_test",
Florent Castellidd837e22022-04-04 15:16:151646 ":timeutils",
Danil Chapovalov5286dcf2022-07-18 15:04:561647 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371648 "../test:test_main",
1649 "../test:test_support",
1650 ]
1651 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
Diogo Real1dca9d52017-08-29 19:18:321652 }
Andrey Logvine7c79fd2021-02-01 09:56:371653
1654 rtc_library("weak_ptr_unittests") {
1655 testonly = true
1656
1657 sources = [ "weak_ptr_unittest.cc" ]
1658 deps = [
1659 ":gunit_helpers",
Andrey Logvine7c79fd2021-02-01 09:56:371660 ":rtc_base_tests_utils",
1661 ":rtc_event",
1662 ":task_queue_for_test",
1663 ":weak_ptr",
1664 "../test:test_main",
1665 "../test:test_support",
1666 ]
1667 }
1668
1669 rtc_library("rtc_numerics_unittests") {
1670 testonly = true
1671
1672 sources = [
1673 "numerics/event_based_exponential_moving_average_unittest.cc",
1674 "numerics/exp_filter_unittest.cc",
1675 "numerics/moving_average_unittest.cc",
1676 "numerics/moving_median_filter_unittest.cc",
1677 "numerics/percentile_filter_unittest.cc",
1678 "numerics/running_statistics_unittest.cc",
1679 "numerics/sequence_number_util_unittest.cc",
1680 ]
1681 deps = [
Andrey Logvine7c79fd2021-02-01 09:56:371682 ":rtc_numerics",
1683 "../test:test_main",
1684 "../test:test_support",
1685 ]
1686 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
1687 }
1688
1689 rtc_library("rtc_json_unittests") {
1690 testonly = true
1691
1692 sources = [ "strings/json_unittest.cc" ]
1693 deps = [
1694 ":gunit_helpers",
1695 ":rtc_base_tests_utils",
1696 ":rtc_json",
1697 "../test:test_main",
1698 "../test:test_support",
1699 ]
1700 }
1701
1702 rtc_library("rtc_base_unittests") {
1703 testonly = true
1704 defines = []
1705
1706 sources = [
Andrey Logvine7c79fd2021-02-01 09:56:371707 "crc32_unittest.cc",
1708 "data_rate_limiter_unittest.cc",
Andrey Logvine7c79fd2021-02-01 09:56:371709 "fake_clock_unittest.cc",
1710 "helpers_unittest.cc",
1711 "ip_address_unittest.cc",
1712 "memory_usage_unittest.cc",
1713 "message_digest_unittest.cc",
1714 "nat_unittest.cc",
1715 "network_route_unittest.cc",
1716 "network_unittest.cc",
1717 "proxy_unittest.cc",
1718 "rolling_accumulator_unittest.cc",
1719 "rtc_certificate_generator_unittest.cc",
1720 "rtc_certificate_unittest.cc",
1721 "sigslot_tester_unittest.cc",
1722 "test_client_unittest.cc",
1723 "thread_unittest.cc",
1724 "unique_id_generator_unittest.cc",
1725 ]
1726 deps = [
Florent Castellif9c59842022-04-19 15:07:231727 ":buffer",
Florent Castelli76063752022-04-19 15:14:261728 ":buffer_queue",
Andrey Logvine7c79fd2021-02-01 09:56:371729 ":checks",
1730 ":gunit_helpers",
1731 ":ip_address",
Florent Castelli0af55ba2022-04-04 13:06:301732 ":logging",
Florent Castelli4467ad72022-04-04 13:18:461733 ":macromagic",
Andrey Logvine7c79fd2021-02-01 09:56:371734 ":net_helpers",
1735 ":null_socket_server",
Florent Castellib96902d2022-04-14 09:58:241736 ":rtc_base",
Andrey Logvine7c79fd2021-02-01 09:56:371737 ":rtc_base_tests_utils",
Florent Castelli33d31fb2022-04-04 14:57:521738 ":rtc_event",
Florent Castellie10a9f62022-04-04 15:04:371739 ":safe_conversions",
Niels Möllerd0b88792021-08-12 08:32:301740 ":socket",
Andrey Logvine7c79fd2021-02-01 09:56:371741 ":socket_address",
1742 ":socket_factory",
1743 ":socket_server",
1744 ":stringutils",
1745 ":testclient",
1746 ":threading",
Florent Castellidd837e22022-04-04 15:16:151747 ":timeutils",
Andrey Logvine7c79fd2021-02-01 09:56:371748 "../api:array_view",
Niels Möller105711e2022-06-14 13:48:261749 "../api:make_ref_counted",
Andrey Logvine7c79fd2021-02-01 09:56:371750 "../api/task_queue",
Artem Titovc374d112022-06-16 19:27:451751 "../api/task_queue:pending_task_safety_flag",
Andrey Logvine7c79fd2021-02-01 09:56:371752 "../api/task_queue:task_queue_test",
Danil Chapovalov4bcf8092022-07-06 17:42:341753 "../api/units:time_delta",
Andrey Logvine7c79fd2021-02-01 09:56:371754 "../test:field_trial",
1755 "../test:fileutils",
1756 "../test:rtc_expect_death",
Jonas Orelandc06fe8b2022-03-28 12:58:261757 "../test:scoped_key_value_config",
Andrey Logvine7c79fd2021-02-01 09:56:371758 "../test:test_main",
1759 "../test:test_support",
1760 "memory:fifo_buffer",
1761 "synchronization:mutex",
Andrey Logvine7c79fd2021-02-01 09:56:371762 "third_party/sigslot",
1763 ]
1764 if (enable_google_benchmarks) {
1765 deps += [ "synchronization:synchronization_unittests" ]
1766 }
1767 if (is_win) {
1768 sources += [
1769 "win32_unittest.cc",
1770 "win32_window_unittest.cc",
1771 ]
1772 deps += [ ":win32" ]
1773 }
1774 if (is_posix || is_fuchsia) {
1775 sources += [
1776 "openssl_adapter_unittest.cc",
1777 "openssl_session_cache_unittest.cc",
1778 "openssl_utility_unittest.cc",
1779 "ssl_adapter_unittest.cc",
1780 "ssl_identity_unittest.cc",
1781 "ssl_stream_adapter_unittest.cc",
1782 ]
1783 }
1784 absl_deps = [
1785 "//third_party/abseil-cpp/absl/algorithm:container",
Danil Chapovalov5286dcf2022-07-18 15:04:561786 "//third_party/abseil-cpp/absl/functional:any_invocable",
Andrey Logvine7c79fd2021-02-01 09:56:371787 "//third_party/abseil-cpp/absl/memory",
1788 "//third_party/abseil-cpp/absl/strings",
1789 "//third_party/abseil-cpp/absl/types:optional",
1790 ]
Florent Castellib96902d2022-04-14 09:58:241791
Andrey Logvine7c79fd2021-02-01 09:56:371792 if (build_with_chromium) {
1793 include_dirs = [ "../../boringssl/src/include" ]
1794 }
1795 if (rtc_build_ssl) {
1796 deps += [ "//third_party/boringssl" ]
1797 } else {
1798 configs += [ ":external_ssl_library" ]
1799 }
Diogo Real1dca9d52017-08-29 19:18:321800 }
Henrik Kjellanderc0362762017-06-29 06:03:041801 }
1802}
1803
Henrik Kjellander73e21802017-06-20 06:38:581804if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:331805 rtc_android_library("base_java") {
Sami Kalliomäki51f599b2019-07-03 12:13:081806 visibility = [ "*" ]
Natalie Chouinard65bbcab2019-12-23 22:02:251807 sources = [
Henrik Kjellanderc0362762017-06-29 06:03:041808 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 12:31:381809 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 06:03:041810 "java/src/org/webrtc/Logging.java",
1811 "java/src/org/webrtc/Size.java",
1812 "java/src/org/webrtc/ThreadUtils.java",
1813 ]
Byoungchan Lee02334e02021-08-14 02:41:591814 deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
Henrik Kjellander73e21802017-06-20 06:38:581815 }
Jonas Orelandf7721fb2020-08-07 09:08:341816 java_cpp_enum("network_monitor_enums") {
1817 sources = [ "network_monitor.h" ]
Jonas Orelandfe4688e2020-08-07 12:08:331818 visibility = [ "*" ]
Jonas Orelandf7721fb2020-08-07 09:08:341819 }
Henrik Kjellander73e21802017-06-20 06:38:581820}