blob: 140d2ffc2cc385282f2d81146be3d508395aff58 [file] [log] [blame]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
Henrik Kjellander73e21802017-06-20 08:38:58 +02002#
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
Henrik Kjellanderc0362762017-06-29 08:03:04 +02009import("//build/config/crypto.gni")
10import("//build/config/ui.gni")
Henrik Kjellander73e21802017-06-20 08:38:58 +020011import("../webrtc.gni")
12
13if (is_android) {
14 import("//build/config/android/config.gni")
15 import("//build/config/android/rules.gni")
16}
17
Henrik Kjellanderc0362762017-06-29 08:03:04 +020018config("rtc_base_chromium_config") {
19 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
20}
21
22config("rtc_base_all_dependent_config") {
23 if (is_ios) {
24 libs = [
25 "CFNetwork.framework",
Jiawei Ouc0216b82018-02-03 12:24:24 -080026 "Foundation.framework",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020027 "Security.framework",
28 "SystemConfiguration.framework",
29 "UIKit.framework",
30 ]
31 }
32 if (is_mac) {
33 libs = [
34 "Cocoa.framework",
35 "Foundation.framework",
36 "IOKit.framework",
37 "Security.framework",
38 "SystemConfiguration.framework",
39 ]
40 }
41}
42
Dan Minor9cdd8762018-01-16 10:40:39 -050043if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020044 config("external_ssl_library") {
45 assert(rtc_ssl_root != "",
46 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
47 include_dirs = [ rtc_ssl_root ]
48 }
49}
50
Oleh Prypindd214742018-07-17 13:49:46 +020051rtc_source_set("protobuf_utils") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000052 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +020053 sources = [
54 "protobuf_utils.h",
55 ]
56 if (rtc_enable_protobuf) {
Mirko Bonadeid8661a02018-08-13 15:04:25 +020057 public_configs = [ "//third_party/protobuf:protobuf_config" ]
58 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +020059 "//third_party/protobuf:protobuf_lite",
60 ]
61 }
62}
63
Oleh Prypindd214742018-07-17 13:49:46 +020064rtc_source_set("compile_assert_c") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020065 sources = [
66 "compile_assert_c.h",
67 ]
68}
69
mbonadeibc378472017-09-11 03:43:34 -070070rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000071 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070072 public_deps = [
Tommi8d2c5a82018-03-19 11:12:48 +010073 ":atomicops",
74 ":criticalsection",
75 ":logging",
76 ":macromagic",
77 ":platform_thread",
78 ":platform_thread_types",
79 ":ptr_util",
80 ":refcount",
mbonadeibc378472017-09-11 03:43:34 -070081 ":rtc_base_approved_generic",
Tommi8d2c5a82018-03-19 11:12:48 +010082 ":rtc_event",
83 ":safe_conversions",
84 ":stringutils",
85 ":thread_checker",
86 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -070087 ]
88 if (is_mac && !build_with_chromium) {
89 public_deps += [ ":rtc_base_approved_objc" ]
90 }
91}
92
Tommi8d2c5a82018-03-19 11:12:48 +010093rtc_source_set("macromagic") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +020094 # TODO(bugs.webrtc.org/9606): This should not be public.
95 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +010096 sources = [
97 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +010098 "constructormagic.h",
99 "format_macros.h",
100 "stringize_macros.h",
101 "thread_annotations.h",
102 ]
Niels Möllera12c42a2018-07-25 16:05:48 +0200103 deps = [
104 "system:arch",
105 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100106}
107
108rtc_source_set("platform_thread_types") {
109 sources = [
110 "platform_thread_types.cc",
111 "platform_thread_types.h",
112 ]
113}
114
115rtc_source_set("ptr_util") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200116 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100117 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100118 "scoped_ref_ptr.h",
119 ]
120}
121
122rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200123 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100124 sources = [
125 "refcount.h",
126 "refcountedobject.h",
127 "refcounter.h",
128 ]
129 deps = [
130 ":atomicops",
131 ":macromagic",
132 ]
133}
134
135rtc_source_set("criticalsection") {
136 sources = [
137 "criticalsection.cc",
138 "criticalsection.h",
139 ]
140 deps = [
141 ":atomicops",
142 ":checks",
143 ":macromagic",
144 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200145 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100146 ]
147}
148
149rtc_source_set("platform_thread") {
150 visibility = [
151 ":rtc_base_approved",
152 ":rtc_base_approved_generic",
153 ":rtc_task_queue_libevent",
154 ":rtc_task_queue_win",
155 ":sequenced_task_checker",
156 ]
157 sources = [
158 "platform_thread.cc",
159 "platform_thread.h",
160 ]
161 deps = [
162 ":atomicops",
163 ":checks",
164 ":macromagic",
165 ":platform_thread_types",
166 ":rtc_event",
167 ":thread_checker",
168 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100169 ]
170}
171
172rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700173 deps = [
174 ":checks",
175 ":macromagic",
176 ]
177
Tommi8d2c5a82018-03-19 11:12:48 +0100178 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700179 # Dependency on chromium's waitable_event (in //base).
180 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100181 sources = [
182 "../../webrtc_overrides/rtc_base/event.cc",
183 "../../webrtc_overrides/rtc_base/event.h",
184 ]
185 } else {
186 sources = [
187 "event.cc",
188 "event.h",
189 ]
190 }
Tommi8d2c5a82018-03-19 11:12:48 +0100191}
192
193rtc_source_set("logging") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200194 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200195 libs = []
Tommi8d2c5a82018-03-19 11:12:48 +0100196 deps = [
197 ":criticalsection",
198 ":macromagic",
199 ":platform_thread_types",
200 ":stringutils",
201 ":timeutils",
Jonas Olssonf2ce37c2018-09-12 15:32:47 +0200202 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 11:12:48 +0100203 ]
204
205 if (build_with_chromium) {
206 # Dependency on chromium's logging (in //base).
207 deps += [ "//base:base" ]
208 sources = [
209 "../../webrtc_overrides/rtc_base/logging.cc",
210 "../../webrtc_overrides/rtc_base/logging.h",
211 ]
212 } else {
Mirko Bonadei96ede162018-09-06 13:45:44 +0200213 configs += [
214 "..:no_exit_time_destructors",
215 "..:no_global_constructors",
216 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100217 sources = [
218 "logging.cc",
219 "logging.h",
220 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200221 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100222
223 # logging.h needs the deprecation header while downstream projects are
224 # removing code that depends on logging implementation details.
225 deps += [ ":deprecation" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200226
227 if (is_android) {
228 libs += [ "log" ]
229 }
Tommi8d2c5a82018-03-19 11:12:48 +0100230 }
231}
232
233rtc_source_set("thread_checker") {
234 sources = [
235 "thread_checker.h",
236 "thread_checker_impl.cc",
237 "thread_checker_impl.h",
238 ]
239 deps = [
240 ":checks",
241 ":criticalsection",
242 ":macromagic",
243 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100244 ]
245}
246
247rtc_source_set("atomicops") {
248 sources = [
249 "atomicops.h",
250 ]
251}
252
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100253rtc_source_set("checks") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200254 # TODO(bugs.webrtc.org/9607): This should not be public.
255 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200256 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100257 sources = [
258 "checks.cc",
259 "checks.h",
260 ]
261 deps = [
262 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200263 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100264 ]
Patrik Höglund77301932018-10-09 15:09:51 +0200265 if (is_android) {
266 libs += [ "log" ]
267 }
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100268}
269
Patrik Höglund3e113432017-12-15 14:40:10 +0100270rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100271 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100272 "rate_limiter.cc",
273 "rate_limiter.h",
274 ]
275 deps = [
276 ":rtc_base_approved",
277 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100278 ]
279}
280
281rtc_source_set("sanitizer") {
282 sources = [
283 "sanitizer.h",
284 ]
285}
286
287rtc_source_set("safe_compare") {
288 sources = [
289 "numerics/safe_compare.h",
290 ]
291 deps = [
292 ":type_traits",
293 ]
294}
295
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100296rtc_source_set("safe_minmax") {
297 sources = [
298 "numerics/safe_minmax.h",
299 ]
300 deps = [
301 ":checks",
302 ":safe_compare",
303 ":type_traits",
304 ]
305}
306
Tommi8d2c5a82018-03-19 11:12:48 +0100307rtc_source_set("safe_conversions") {
308 sources = [
309 "numerics/safe_conversions.h",
310 "numerics/safe_conversions_impl.h",
311 ]
312 deps = [
313 ":checks",
314 ]
315}
316
317rtc_source_set("timeutils") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200318 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100319 sources = [
320 "timeutils.cc",
321 "timeutils.h",
322 ]
323 deps = [
324 ":checks",
325 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 13:41:30 +0200326 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100327 ]
328}
329
Patrik Höglund3e113432017-12-15 14:40:10 +0100330rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100331 sources = [
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200332 "string_to_number.cc",
333 "string_to_number.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100334 "stringencode.cc",
335 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100336 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100337 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100338 "stringutils.cc",
339 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100340 ]
341 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100342 ":checks",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200343 ":macromagic",
Karl Wiberg881f1682018-03-08 15:03:23 +0100344 ":safe_minmax",
345 "../api:array_view",
Jonas Olsson88e18482018-09-03 10:15:08 +0200346 "//third_party/abseil-cpp/absl/strings:strings",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200347 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 14:40:10 +0100348 ]
349}
350
Jonas Olsson74395342018-04-03 12:22:07 +0200351rtc_source_set("audio_format_to_string") {
352 sources = [
353 "strings/audio_format_to_string.cc",
354 "strings/audio_format_to_string.h",
355 ]
356 deps = [
357 ":stringutils",
358 "../api/audio_codecs:audio_codecs_api",
359 ]
360}
361
Patrik Höglund3e113432017-12-15 14:40:10 +0100362rtc_source_set("type_traits") {
363 sources = [
364 "type_traits.h",
365 ]
366}
367
368rtc_source_set("deprecation") {
369 sources = [
370 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100371 ]
372}
373
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200374# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700375rtc_source_set("rtc_base_approved_generic") {
376 visibility = [
377 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100378 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700379 ]
380
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100381 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200382 defines = []
383 libs = []
Michael Achenbach22060972018-04-09 09:34:21 +0200384 data_deps = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100385 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100386 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100387 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100388 ":criticalsection",
389 ":logging",
390 ":macromagic",
391 ":platform_thread",
392 ":platform_thread_types",
393 ":ptr_util",
394 ":refcount",
395 ":rtc_event",
396 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100397 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100398 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100399 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100400 ":thread_checker",
401 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100402 ":type_traits",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200403 "system:arch",
Niels Möllera12c42a2018-07-25 16:05:48 +0200404 "system:unused",
Artem Titova76af0c2018-07-23 17:38:12 +0200405 "third_party/base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100406 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200407
408 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200409 "bind.h",
410 "bitbuffer.cc",
411 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200412 "bitrateallocationstrategy.cc",
413 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200414 "buffer.h",
415 "bufferqueue.cc",
416 "bufferqueue.h",
417 "bytebuffer.cc",
418 "bytebuffer.h",
419 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200420 "copyonwritebuffer.cc",
421 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200422 "event_tracer.cc",
423 "event_tracer.h",
424 "file.cc",
425 "file.h",
426 "flags.cc",
427 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200428 "function_view.h",
429 "ignore_wundef.h",
430 "location.cc",
431 "location.h",
Qingsi Wang558b93b2018-08-30 10:38:44 -0700432 "message_buffer_reader.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100433 "numerics/histogram_percentile_counter.cc",
434 "numerics/histogram_percentile_counter.h",
435 "numerics/mod_ops.h",
436 "numerics/moving_max_counter.h",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +0200437 "numerics/sample_counter.cc",
438 "numerics/sample_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200439 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200440 "pathutils.cc",
441 "pathutils.h",
442 "platform_file.cc",
443 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200444 "race_checker.cc",
445 "race_checker.h",
446 "random.cc",
447 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200448 "rate_statistics.cc",
449 "rate_statistics.h",
450 "ratetracker.cc",
451 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200452 "swap_queue.h",
453 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200454 "timestampaligner.cc",
455 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200456 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100457 "zero_memory.cc",
458 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200459 ]
460
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100461 deps += [
462 "..:webrtc_common",
463 "../api:array_view",
Sergey Silkin40b70502018-08-27 10:55:07 +0200464 "//third_party/abseil-cpp/absl/memory:memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200465 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100466 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200467
468 if (is_android) {
469 libs += [ "log" ]
470 }
471
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700472 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200473 sources += [ "file_posix.cc" ]
474 }
475
476 if (is_win) {
henrika3ca48a62018-05-21 13:34:51 +0200477 sources += [
478 "file_win.cc",
479 "win/windows_version.cc",
480 "win/windows_version.h",
481 ]
Michael Achenbach22060972018-04-09 09:34:21 +0200482 data_deps += [ "//build/win:runtime_libs" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200483 }
484
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200485 if (is_nacl) {
486 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
487 }
488}
489
mbonadeibc378472017-09-11 03:43:34 -0700490if (is_mac && !build_with_chromium) {
491 config("rtc_base_approved_objc_all_dependent_config") {
492 visibility = [ ":rtc_base_approved_objc" ]
493 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
494 }
495
496 rtc_source_set("rtc_base_approved_objc") {
497 visibility = [ ":rtc_base_approved" ]
498 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
499 sources = [
500 "logging_mac.mm",
501 ]
502 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100503 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700504 ]
505 }
506}
507
perkj650fdae2017-08-25 05:00:11 -0700508rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000509 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100510 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700511 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700512 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200513 ]
514
perkj650fdae2017-08-25 05:00:11 -0700515 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700516 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700517 }
518}
519
520# WebRTC targets must not directly depend on rtc_task_queue_api or
521# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
522# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
523# to the default implemenation in rtc_task_queue_impl or if an externally
524# provided implementation should be used. An external implementation should
525# depend on rtc_task_queue_api.
526rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100527 # The visibility list is commented out so that we won't break external
528 # implementations, but left here to manually test as well as for sake of what
529 # targets we expect to depend on rtc_task_queue_api.
530 # visibility = [
531 # ":rtc_task_queue",
532 # ":rtc_task_queue_impl",
533 # ":sequenced_task_checker",
534 # ]
nisse75dd6d42017-09-19 08:28:00 -0700535 sources = [
536 "task_queue.h",
537 ]
perkj650fdae2017-08-25 05:00:11 -0700538 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100539 ":macromagic",
540 ":ptr_util",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200541 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700542 ]
543}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200544
Danil Chapovalova10d1642018-08-31 13:47:59 +0200545rtc_source_set("rtc_cancelable_task") {
546 sources = [
547 "cancelable_periodic_task.h",
548 "cancelable_task_handle.cc",
549 "cancelable_task_handle.h",
550 ]
551 deps = [
552 ":checks",
553 ":logging",
554 ":macromagic",
555 ":ptr_util",
556 ":refcount",
557 ":rtc_task_queue",
558 ":safe_conversions",
559 ":sequenced_task_checker",
560 ":thread_checker",
561 "//third_party/abseil-cpp/absl/memory",
562 ]
563}
564
Tommi8d2c5a82018-03-19 11:12:48 +0100565if (rtc_enable_libevent) {
566 rtc_source_set("rtc_task_queue_libevent") {
567 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700568 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200569 "task_queue_libevent.cc",
570 "task_queue_posix.cc",
571 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700572 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100573 deps = [
574 ":checks",
575 ":criticalsection",
576 ":logging",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200577 ":macromagic",
Tommi8d2c5a82018-03-19 11:12:48 +0100578 ":platform_thread",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200579 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100580 ":ptr_util",
581 ":refcount",
582 ":rtc_task_queue_api",
583 ":safe_conversions",
584 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200585 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100586 ]
587 if (rtc_build_libevent) {
588 deps += [ "//base/third_party/libevent" ]
589 }
590 }
591}
592
593if (is_mac || is_ios) {
594 rtc_source_set("rtc_task_queue_gcd") {
595 visibility = [ ":rtc_task_queue_impl" ]
596 sources = [
597 "task_queue_gcd.cc",
598 "task_queue_posix.cc",
599 "task_queue_posix.h",
600 ]
601 deps = [
602 ":checks",
603 ":logging",
604 ":ptr_util",
605 ":refcount",
606 ":rtc_task_queue_api",
607 ]
608 }
609}
610
611if (is_win) {
612 rtc_source_set("rtc_task_queue_win") {
613 visibility = [ ":rtc_task_queue_impl" ]
614 sources = [
615 "task_queue_win.cc",
616 ]
617 deps = [
618 ":checks",
619 ":criticalsection",
620 ":logging",
621 ":macromagic",
622 ":platform_thread",
623 ":ptr_util",
624 ":refcount",
625 ":rtc_event",
626 ":rtc_task_queue_api",
627 ":safe_conversions",
628 ":timeutils",
629 ]
630 }
631}
632
633rtc_source_set("rtc_task_queue_impl") {
634 visibility = [ "*" ]
635 if (rtc_enable_libevent) {
636 deps = [
637 ":rtc_task_queue_libevent",
638 ]
perkj650fdae2017-08-25 05:00:11 -0700639 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200640 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100641 deps = [
642 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200643 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200644 }
645 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100646 deps = [
647 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200648 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200649 }
650 }
651}
652
Tommi8d2c5a82018-03-19 11:12:48 +0100653rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200654 sources = [
655 "sequenced_task_checker.h",
656 "sequenced_task_checker_impl.cc",
657 "sequenced_task_checker_impl.h",
658 ]
659 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100660 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100661 ":criticalsection",
662 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200663 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100664 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200665 ]
666}
667
668rtc_static_library("weak_ptr") {
669 sources = [
670 "weak_ptr.cc",
671 "weak_ptr.h",
672 ]
673 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100674 ":ptr_util",
675 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200676 ":sequenced_task_checker",
677 ]
678}
679
680rtc_static_library("rtc_numerics") {
681 sources = [
682 "numerics/exp_filter.cc",
683 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100684 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200685 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200686 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200687 ]
688 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100689 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200690 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100691 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200692 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200693 ]
694}
695
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200696rtc_source_set("rtc_json") {
697 defines = []
698 sources = [
Sam Zackrissonb45bdb52018-10-02 16:25:59 +0200699 "strings/json.cc",
700 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200701 ]
Jonas Olsson941a07c2018-09-13 10:07:07 +0200702 deps = [
703 ":stringutils",
704 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100705 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200706 if (rtc_build_json) {
707 public_deps = [
708 "//third_party/jsoncpp",
709 ]
710 } else {
711 include_dirs = [ "$rtc_jsoncpp_root" ]
712
713 # When defined changes the include path for json.h to where it is
714 # expected to be when building json outside of the standalone build.
715 defines += [ "WEBRTC_EXTERNAL_JSON" ]
716 }
717}
718
mbonadei9c5e5112017-09-05 05:17:02 -0700719rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000720 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500721 public_deps = []
722 if (!build_with_mozilla) {
723 public_deps += [ ":rtc_base_generic" ]
724 }
mbonadei310e32b2017-09-07 07:36:28 -0700725 if (is_win) {
726 sources = [
727 "noop.cc",
728 ]
729 }
730 if (is_ios || is_mac) {
731 sources = [
732 "noop.mm",
733 ]
734 public_deps += [ ":rtc_base_objc" ]
735 }
736}
737
738if (is_ios || is_mac) {
739 rtc_source_set("rtc_base_objc") {
740 sources = [
741 "thread_darwin.mm",
742 ]
743 deps = [
744 ":rtc_base_generic",
745 ]
746 visibility = [ ":rtc_base" ]
747 }
748}
749
750rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200751 cflags = []
752 cflags_cc = []
753 libs = []
754 defines = []
755 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100756 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100757 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200758 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100759 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200760 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200761 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200762 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200763 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200764 ]
765 public_deps = [
766 ":rtc_base_approved",
767 ]
768 public_configs = []
769
770 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
771
772 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200773 "asyncinvoker-inl.h",
774 "asyncinvoker.cc",
775 "asyncinvoker.h",
776 "asyncpacketsocket.cc",
777 "asyncpacketsocket.h",
778 "asyncresolverinterface.cc",
779 "asyncresolverinterface.h",
780 "asyncsocket.cc",
781 "asyncsocket.h",
782 "asynctcpsocket.cc",
783 "asynctcpsocket.h",
784 "asyncudpsocket.cc",
785 "asyncudpsocket.h",
786 "crc32.cc",
787 "crc32.h",
788 "cryptstring.cc",
789 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100790 "data_rate_limiter.cc",
791 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100792 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200793 "filerotatingstream.cc",
794 "filerotatingstream.h",
795 "fileutils.cc",
796 "fileutils.h",
797 "gunit_prod.h",
798 "helpers.cc",
799 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200800 "httpcommon.cc",
801 "httpcommon.h",
802 "ipaddress.cc",
803 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100804 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700805 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806 "messagedigest.cc",
807 "messagedigest.h",
808 "messagehandler.cc",
809 "messagehandler.h",
810 "messagequeue.cc",
811 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800812 "nethelper.cc",
813 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200814 "nethelpers.cc",
815 "nethelpers.h",
816 "network.cc",
817 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200818 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200819 "networkmonitor.cc",
820 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100821 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200822 "nullsocketserver.cc",
823 "nullsocketserver.h",
824 "openssl.h",
825 "openssladapter.cc",
826 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700827 "opensslcertificate.cc",
828 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200829 "openssldigest.cc",
830 "openssldigest.h",
831 "opensslidentity.cc",
832 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700833 "opensslsessioncache.cc",
834 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 "opensslstreamadapter.cc",
836 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700837 "opensslutility.cc",
838 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 "physicalsocketserver.cc",
840 "physicalsocketserver.h",
841 "proxyinfo.cc",
842 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200843 "rtccertificate.cc",
844 "rtccertificate.h",
845 "rtccertificategenerator.cc",
846 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700847 "signalthread.cc",
848 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700849 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700850 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200851 "socket.h",
852 "socketadapters.cc",
853 "socketadapters.h",
854 "socketaddress.cc",
855 "socketaddress.h",
856 "socketaddresspair.cc",
857 "socketaddresspair.h",
858 "socketfactory.h",
859 "socketserver.h",
860 "socketstream.cc",
861 "socketstream.h",
862 "ssladapter.cc",
863 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700864 "sslcertificate.cc",
865 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200866 "sslfingerprint.cc",
867 "sslfingerprint.h",
868 "sslidentity.cc",
869 "sslidentity.h",
870 "sslstreamadapter.cc",
871 "sslstreamadapter.h",
872 "stream.cc",
873 "stream.h",
874 "thread.cc",
875 "thread.h",
876 ]
877
mbonadei310e32b2017-09-07 07:36:28 -0700878 visibility = [
879 ":rtc_base",
880 ":rtc_base_objc",
881 ]
882
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200883 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200884 include_dirs = [ "../../boringssl/src/include" ]
885 public_configs += [ ":rtc_base_chromium_config" ]
886 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200887 sources += [
888 "callback.h",
889 "logsinks.cc",
890 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100891 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200892 "optionsfile.cc",
893 "optionsfile.h",
894 "rollingaccumulator.h",
895 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200896 ]
897
898 if (is_win) {
899 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200900 "win32socketinit.h",
901 "win32socketserver.cc",
902 "win32socketserver.h",
903 ]
904 }
905 } # !build_with_chromium
906
907 if (rtc_build_ssl) {
908 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500909 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200910 configs += [ ":external_ssl_library" ]
911 }
912
913 if (is_android) {
914 sources += [
915 "ifaddrs-android.cc",
916 "ifaddrs-android.h",
917 ]
918
919 libs += [
920 "log",
921 "GLESv2",
922 ]
923 }
924
925 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700926 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200927 }
928
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100929 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 libs += [
931 "dl",
932 "rt",
933 "Xext",
934 "X11",
935 "Xcomposite",
936 "Xrender",
937 ]
938 }
939
940 if (is_linux) {
941 libs += [
942 "dl",
943 "rt",
944 ]
945 }
946
947 if (is_mac) {
948 sources += [
949 "macutils.cc",
950 "macutils.h",
951 ]
952 libs += [
953 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
954 "ApplicationServices.framework",
955 ]
956 }
957
958 if (is_win) {
959 sources += [
960 "win32.cc",
961 "win32.h",
962 "win32filesystem.cc",
963 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200964 "win32window.cc",
965 "win32window.h",
966 ]
967
968 libs += [
969 "crypt32.lib",
970 "iphlpapi.lib",
971 "secur32.lib",
972 ]
973
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200974 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
975 }
976
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700977 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200978 sources += [
979 "ifaddrs_converter.cc",
980 "ifaddrs_converter.h",
981 "unixfilesystem.cc",
982 "unixfilesystem.h",
983 ]
984 }
985
986 if (is_nacl) {
987 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
988 defines += [ "timezone=_timezone" ]
989 sources -= [ "ifaddrs_converter.cc" ]
990 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200991}
992
993rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000994 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200995 sources = [
996 "gtest_prod_util.h",
997 ]
998}
999
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001000rtc_source_set("rtc_base_tests_utils") {
1001 testonly = true
1002 sources = [
1003 # Also use this as a convenient dumping ground for misc files that are
1004 # included by multiple targets below.
1005 "cpu_time.cc",
1006 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -07001007 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001008 "fakeclock.cc",
1009 "fakeclock.h",
1010 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001011 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001012 "fakesslidentity.h",
1013 "firewallsocketserver.cc",
1014 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001015 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001016 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001017 "memory_usage.cc",
1018 "memory_usage.h",
1019 "natserver.cc",
1020 "natserver.h",
1021 "natsocketfactory.cc",
1022 "natsocketfactory.h",
1023 "nattypes.cc",
1024 "nattypes.h",
1025 "proxyserver.cc",
1026 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 "sigslottester.h",
1028 "sigslottester.h.pump",
1029 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001030 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 "testclient.cc",
1032 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001033 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001034 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001035 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001037 "virtualsocketserver.cc",
1038 "virtualsocketserver.h",
1039 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001041 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001042 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001043 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001044 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001045 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001046 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001047 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001048 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001049 ]
1050 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001051 "//testing/gtest",
1052 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001053}
1054
Tommida8781f2018-02-19 12:41:43 +01001055rtc_source_set("rtc_task_queue_for_test") {
1056 visibility = [ "*" ]
1057 testonly = true
1058
1059 sources = [
1060 "task_queue_for_test.cc",
1061 "task_queue_for_test.h",
1062 ]
1063 deps = [
1064 ":checks",
1065 ":rtc_base_approved",
1066 ":rtc_task_queue",
1067 ]
1068}
1069
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001070if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001071 rtc_source_set("sigslot_unittest") {
1072 testonly = true
1073 sources = [
1074 "sigslot_unittest.cc",
1075 ]
1076 deps = [
1077 ":rtc_base",
1078 ":rtc_base_tests_utils",
1079 "third_party/sigslot",
1080 ]
1081 }
1082
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001083 rtc_source_set("rtc_base_tests_main") {
1084 testonly = true
1085 sources = [
1086 "unittest_main.cc",
1087 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001088 deps = [
1089 ":rtc_base",
1090 ":rtc_base_approved",
1091 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001092 "../system_wrappers:field_trial",
1093 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001094 "../test:field_trial",
1095 "../test:test_support",
1096 ]
1097
1098 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001099 "//testing/gtest",
1100 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001101 }
1102
1103 rtc_source_set("rtc_base_nonparallel_tests") {
1104 testonly = true
1105
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001106 sources = [
1107 "cpu_time_unittest.cc",
1108 "filerotatingstream_unittest.cc",
1109 "nullsocketserver_unittest.cc",
1110 "physicalsocketserver_unittest.cc",
1111 "socket_unittest.cc",
1112 "socket_unittest.h",
1113 "socketaddress_unittest.cc",
1114 ]
1115 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001116 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001117 ":rtc_base",
1118 ":rtc_base_tests_main",
1119 ":rtc_base_tests_utils",
1120 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001121 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 "../test:test_support",
1123 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001124 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001125 ]
1126 if (is_win) {
1127 sources += [ "win32socketserver_unittest.cc" ]
1128 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001129 }
1130
1131 rtc_source_set("rtc_base_approved_unittests") {
1132 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001133 if (is_msan) {
1134 cflags = [ "-fsanitize=memory" ]
1135 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001136 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 "atomicops_unittest.cc",
1138 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 "bind_unittest.cc",
1140 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001141 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001142 "buffer_unittest.cc",
1143 "bufferqueue_unittest.cc",
1144 "bytebuffer_unittest.cc",
1145 "byteorder_unittest.cc",
1146 "copyonwritebuffer_unittest.cc",
1147 "criticalsection_unittest.cc",
1148 "event_tracer_unittest.cc",
1149 "event_unittest.cc",
1150 "file_unittest.cc",
1151 "function_view_unittest.cc",
1152 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001153 "numerics/histogram_percentile_counter_unittest.cc",
1154 "numerics/mod_ops_unittest.cc",
1155 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001156 "numerics/safe_compare_unittest.cc",
1157 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001158 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001159 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001161 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001162 "platform_thread_unittest.cc",
1163 "random_unittest.cc",
1164 "rate_limiter_unittest.cc",
1165 "rate_statistics_unittest.cc",
1166 "ratetracker_unittest.cc",
1167 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001168 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001169 "string_to_number_unittest.cc",
1170 "stringencode_unittest.cc",
1171 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001172 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001173 "stringutils_unittest.cc",
1174 "swap_queue_unittest.cc",
1175 "thread_annotations_unittest.cc",
1176 "thread_checker_unittest.cc",
1177 "timestampaligner_unittest.cc",
1178 "timeutils_unittest.cc",
1179 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001180 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001181 ]
henrika3ca48a62018-05-21 13:34:51 +02001182 if (is_win) {
1183 sources += [ "win/windows_version_unittest.cc" ]
1184 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001185 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001186 ":checks",
1187 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001188 ":rtc_base",
1189 ":rtc_base_approved",
1190 ":rtc_base_tests_main",
1191 ":rtc_base_tests_utils",
1192 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001193 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001194 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001195 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001196 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001197 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001199 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001200 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001201 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001202 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001203 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001204 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001205 }
1206
1207 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001208 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001209 testonly = true
1210
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001211 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001212 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001213 "task_queue_unittest.cc",
1214 ]
1215 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001216 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001217 ":rtc_base_tests_main",
1218 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001219 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001220 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001221 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001222 "../test:test_support",
1223 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001224 }
1225
1226 rtc_source_set("sequenced_task_checker_unittests") {
1227 testonly = true
1228
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001229 sources = [
1230 "sequenced_task_checker_unittest.cc",
1231 ]
1232 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001233 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001234 ":rtc_base_approved",
1235 ":rtc_base_tests_main",
1236 ":rtc_task_queue",
1237 ":sequenced_task_checker",
1238 "../test:test_support",
1239 ]
1240 }
1241
1242 rtc_source_set("weak_ptr_unittests") {
1243 testonly = true
1244
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001245 sources = [
1246 "weak_ptr_unittest.cc",
1247 ]
1248 deps = [
Tommi897e1362017-12-01 18:56:43 +01001249 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001250 ":rtc_base_tests_main",
1251 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001252 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001253 ":rtc_task_queue",
1254 ":weak_ptr",
1255 "../test:test_support",
1256 ]
1257 }
1258
1259 rtc_source_set("rtc_numerics_unittests") {
1260 testonly = true
1261
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001262 sources = [
1263 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001264 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001265 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001266 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001267 ]
1268 deps = [
1269 ":rtc_base_approved",
1270 ":rtc_base_tests_main",
1271 ":rtc_numerics",
1272 "../test:test_support",
1273 ]
1274 }
1275
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001276 rtc_source_set("rtc_json_unittests") {
1277 testonly = true
1278
1279 sources = [
1280 "strings/json_unittest.cc",
1281 ]
1282 deps = [
1283 ":rtc_base_tests_main",
1284 ":rtc_base_tests_utils",
1285 ":rtc_json",
1286 "../test:test_support",
1287 ]
1288 }
1289
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001290 rtc_source_set("rtc_base_unittests") {
1291 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001292 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001294 sources = [
1295 "callback_unittest.cc",
1296 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001297 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001298 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001299 "ipaddress_unittest.cc",
1300 "memory_usage_unittest.cc",
1301 "messagedigest_unittest.cc",
1302 "messagequeue_unittest.cc",
1303 "nat_unittest.cc",
1304 "network_unittest.cc",
1305 "optionsfile_unittest.cc",
1306 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001307 "rollingaccumulator_unittest.cc",
1308 "rtccertificate_unittest.cc",
1309 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001310 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001311 "sigslottester_unittest.cc",
1312 "stream_unittest.cc",
1313 "testclient_unittest.cc",
1314 "thread_unittest.cc",
1315 ]
1316 if (is_win) {
1317 sources += [
1318 "win32_unittest.cc",
1319 "win32window_unittest.cc",
1320 ]
1321 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001322 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001323 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001324 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001325 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001326 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001327 "ssladapter_unittest.cc",
1328 "sslidentity_unittest.cc",
1329 "sslstreamadapter_unittest.cc",
1330 ]
1331 }
1332 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001333 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001334 ":rtc_base_tests_main",
1335 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001336 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001337 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001338 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001339 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001340 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001341 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001342 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001343 ]
1344 public_deps = [
1345 ":rtc_base",
1346 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001347 if (build_with_chromium) {
1348 include_dirs = [ "../../boringssl/src/include" ]
1349 }
1350 if (rtc_build_ssl) {
1351 deps += [ "//third_party/boringssl" ]
1352 } else {
1353 configs += [ ":external_ssl_library" ]
1354 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001355 }
1356}
1357
Henrik Kjellander73e21802017-06-20 08:38:58 +02001358if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001359 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001360 java_files = [
1361 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001362 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001363 "java/src/org/webrtc/Logging.java",
1364 "java/src/org/webrtc/Size.java",
1365 "java/src/org/webrtc/ThreadUtils.java",
1366 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001367 }
1368}