blob: 716d0b2eb5cf2eb5b6b6c72ecb12e3c024e50963 [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 +020018group("base") {
19 public_deps = [
20 ":rtc_base",
21 ":rtc_base_approved",
22 ":rtc_task_queue",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020023 ":weak_ptr",
24 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +020025 if (is_android) {
26 public_deps += [ ":base_java" ]
27 }
28}
29
Henrik Kjellanderc0362762017-06-29 08:03:04 +020030config("rtc_base_chromium_config") {
31 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
32}
33
34config("rtc_base_all_dependent_config") {
35 if (is_ios) {
36 libs = [
37 "CFNetwork.framework",
Jiawei Ouc0216b82018-02-03 12:24:24 -080038 "Foundation.framework",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020039 "Security.framework",
40 "SystemConfiguration.framework",
41 "UIKit.framework",
42 ]
43 }
44 if (is_mac) {
45 libs = [
46 "Cocoa.framework",
47 "Foundation.framework",
48 "IOKit.framework",
49 "Security.framework",
50 "SystemConfiguration.framework",
51 ]
52 }
53}
54
Dan Minor9cdd8762018-01-16 10:40:39 -050055if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020056 config("external_ssl_library") {
57 assert(rtc_ssl_root != "",
58 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
59 include_dirs = [ rtc_ssl_root ]
60 }
61}
62
63source_set("protobuf_utils") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000064 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +020065 sources = [
66 "protobuf_utils.h",
67 ]
68 if (rtc_enable_protobuf) {
69 public_deps = [
70 "//third_party/protobuf:protobuf_lite",
71 ]
72 }
73}
74
75source_set("compile_assert_c") {
76 sources = [
77 "compile_assert_c.h",
78 ]
79}
80
mbonadeibc378472017-09-11 03:43:34 -070081rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000082 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070083 public_deps = [
Tommi8d2c5a82018-03-19 11:12:48 +010084 ":atomicops",
85 ":criticalsection",
86 ":logging",
87 ":macromagic",
88 ":platform_thread",
89 ":platform_thread_types",
90 ":ptr_util",
91 ":refcount",
mbonadeibc378472017-09-11 03:43:34 -070092 ":rtc_base_approved_generic",
Tommi8d2c5a82018-03-19 11:12:48 +010093 ":rtc_event",
94 ":safe_conversions",
95 ":stringutils",
96 ":thread_checker",
97 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -070098 ]
99 if (is_mac && !build_with_chromium) {
100 public_deps += [ ":rtc_base_approved_objc" ]
101 }
102}
103
Tommi8d2c5a82018-03-19 11:12:48 +0100104rtc_source_set("macromagic") {
105 sources = [
106 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100107 "constructormagic.h",
108 "format_macros.h",
109 "stringize_macros.h",
110 "thread_annotations.h",
111 ]
112}
113
114rtc_source_set("platform_thread_types") {
115 sources = [
116 "platform_thread_types.cc",
117 "platform_thread_types.h",
118 ]
119}
120
121rtc_source_set("ptr_util") {
122 sources = [
123 "ptr_util.h",
124 "scoped_ref_ptr.h",
125 ]
Karl Wiberg4c77dcd2018-06-29 14:34:50 +0200126 deps = [
127 "//third_party/abseil-cpp/absl/memory",
128 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100129}
130
131rtc_source_set("refcount") {
132 sources = [
133 "refcount.h",
134 "refcountedobject.h",
135 "refcounter.h",
136 ]
137 deps = [
138 ":atomicops",
139 ":macromagic",
140 ]
141}
142
143rtc_source_set("criticalsection") {
144 sources = [
145 "criticalsection.cc",
146 "criticalsection.h",
147 ]
148 deps = [
149 ":atomicops",
150 ":checks",
151 ":macromagic",
152 ":platform_thread_types",
153 "..:typedefs",
154 ]
155}
156
157rtc_source_set("platform_thread") {
158 visibility = [
159 ":rtc_base_approved",
160 ":rtc_base_approved_generic",
161 ":rtc_task_queue_libevent",
162 ":rtc_task_queue_win",
163 ":sequenced_task_checker",
164 ]
165 sources = [
166 "platform_thread.cc",
167 "platform_thread.h",
168 ]
169 deps = [
170 ":atomicops",
171 ":checks",
172 ":macromagic",
173 ":platform_thread_types",
174 ":rtc_event",
175 ":thread_checker",
176 ":timeutils",
177 "..:typedefs",
178 ]
179}
180
181rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700182 deps = [
183 ":checks",
184 ":macromagic",
185 ]
186
Tommi8d2c5a82018-03-19 11:12:48 +0100187 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700188 # Dependency on chromium's waitable_event (in //base).
189 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100190 sources = [
191 "../../webrtc_overrides/rtc_base/event.cc",
192 "../../webrtc_overrides/rtc_base/event.h",
193 ]
194 } else {
195 sources = [
196 "event.cc",
197 "event.h",
198 ]
199 }
Tommi8d2c5a82018-03-19 11:12:48 +0100200}
201
202rtc_source_set("logging") {
203 deps = [
204 ":criticalsection",
205 ":macromagic",
206 ":platform_thread_types",
207 ":stringutils",
208 ":timeutils",
209 ]
210
211 if (build_with_chromium) {
212 # Dependency on chromium's logging (in //base).
213 deps += [ "//base:base" ]
214 sources = [
215 "../../webrtc_overrides/rtc_base/logging.cc",
216 "../../webrtc_overrides/rtc_base/logging.h",
217 ]
218 } else {
219 sources = [
220 "logging.cc",
221 "logging.h",
222 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200223 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100224
225 # logging.h needs the deprecation header while downstream projects are
226 # removing code that depends on logging implementation details.
227 deps += [ ":deprecation" ]
228 }
229}
230
231rtc_source_set("thread_checker") {
232 sources = [
233 "thread_checker.h",
234 "thread_checker_impl.cc",
235 "thread_checker_impl.h",
236 ]
237 deps = [
238 ":checks",
239 ":criticalsection",
240 ":macromagic",
241 ":platform_thread_types",
242 "..:typedefs",
243 ]
244}
245
246rtc_source_set("atomicops") {
247 sources = [
248 "atomicops.h",
249 ]
250}
251
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100252rtc_source_set("checks") {
253 sources = [
254 "checks.cc",
255 "checks.h",
256 ]
257 deps = [
258 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100259 "..:typedefs",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200260 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100261 ]
262}
263
Patrik Höglund3e113432017-12-15 14:40:10 +0100264rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100265 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100266 "rate_limiter.cc",
267 "rate_limiter.h",
268 ]
269 deps = [
270 ":rtc_base_approved",
271 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100272 ]
273}
274
275rtc_source_set("sanitizer") {
276 sources = [
277 "sanitizer.h",
278 ]
279}
280
281rtc_source_set("safe_compare") {
282 sources = [
283 "numerics/safe_compare.h",
284 ]
285 deps = [
286 ":type_traits",
287 ]
288}
289
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100290rtc_source_set("safe_minmax") {
291 sources = [
292 "numerics/safe_minmax.h",
293 ]
294 deps = [
295 ":checks",
296 ":safe_compare",
297 ":type_traits",
298 ]
299}
300
Tommi8d2c5a82018-03-19 11:12:48 +0100301rtc_source_set("safe_conversions") {
302 sources = [
303 "numerics/safe_conversions.h",
304 "numerics/safe_conversions_impl.h",
305 ]
306 deps = [
307 ":checks",
308 ]
309}
310
311rtc_source_set("timeutils") {
312 sources = [
313 "timeutils.cc",
314 "timeutils.h",
315 ]
316 deps = [
317 ":checks",
318 ":safe_conversions",
319 ]
320}
321
Patrik Höglund3e113432017-12-15 14:40:10 +0100322rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100323 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100324 "stringencode.cc",
325 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100326 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100327 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100328 "stringutils.cc",
329 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100330 ]
331 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100332 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100333 ":safe_minmax",
334 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100335 ]
336}
337
Jonas Olsson74395342018-04-03 12:22:07 +0200338rtc_source_set("audio_format_to_string") {
339 sources = [
340 "strings/audio_format_to_string.cc",
341 "strings/audio_format_to_string.h",
342 ]
343 deps = [
344 ":stringutils",
345 "../api/audio_codecs:audio_codecs_api",
346 ]
347}
348
Patrik Höglund3e113432017-12-15 14:40:10 +0100349rtc_source_set("type_traits") {
350 sources = [
351 "type_traits.h",
352 ]
353}
354
355rtc_source_set("deprecation") {
356 sources = [
357 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100358 ]
359}
360
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200361# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700362rtc_source_set("rtc_base_approved_generic") {
363 visibility = [
364 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100365 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700366 ]
367
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100368 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200369 defines = []
370 libs = []
Michael Achenbach22060972018-04-09 09:34:21 +0200371 data_deps = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100372 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100373 ":atomicops",
Artem Titov6bbeb082018-06-18 14:25:54 +0200374 ":base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100375 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100376 ":criticalsection",
377 ":logging",
378 ":macromagic",
379 ":platform_thread",
380 ":platform_thread_types",
381 ":ptr_util",
382 ":refcount",
383 ":rtc_event",
384 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100385 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100386 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100387 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100388 ":thread_checker",
389 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100390 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100391 "../:typedefs",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200392 "system:arch",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100393 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200394
395 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200396 "bind.h",
397 "bitbuffer.cc",
398 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200399 "bitrateallocationstrategy.cc",
400 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200401 "buffer.h",
402 "bufferqueue.cc",
403 "bufferqueue.h",
404 "bytebuffer.cc",
405 "bytebuffer.h",
406 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200407 "copyonwritebuffer.cc",
408 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200409 "event_tracer.cc",
410 "event_tracer.h",
411 "file.cc",
412 "file.h",
413 "flags.cc",
414 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200415 "function_view.h",
416 "ignore_wundef.h",
417 "location.cc",
418 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100419 "numerics/histogram_percentile_counter.cc",
420 "numerics/histogram_percentile_counter.h",
421 "numerics/mod_ops.h",
422 "numerics/moving_max_counter.h",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +0200423 "numerics/sample_counter.cc",
424 "numerics/sample_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200425 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200426 "pathutils.cc",
427 "pathutils.h",
428 "platform_file.cc",
429 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200430 "race_checker.cc",
431 "race_checker.h",
432 "random.cc",
433 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200434 "rate_statistics.cc",
435 "rate_statistics.h",
436 "ratetracker.cc",
437 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200438 "string_to_number.cc",
439 "string_to_number.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200440 "swap_queue.h",
441 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200442 "timestampaligner.cc",
443 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200444 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100445 "zero_memory.cc",
446 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200447 ]
448
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100449 deps += [
450 "..:webrtc_common",
451 "../api:array_view",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200452 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100453 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200454
455 if (is_android) {
456 libs += [ "log" ]
457 }
458
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700459 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200460 sources += [ "file_posix.cc" ]
461 }
462
463 if (is_win) {
henrika3ca48a62018-05-21 13:34:51 +0200464 sources += [
465 "file_win.cc",
466 "win/windows_version.cc",
467 "win/windows_version.h",
468 ]
Michael Achenbach22060972018-04-09 09:34:21 +0200469 data_deps += [ "//build/win:runtime_libs" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200470 }
471
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200472 if (is_nacl) {
473 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
474 }
475}
476
mbonadeibc378472017-09-11 03:43:34 -0700477if (is_mac && !build_with_chromium) {
478 config("rtc_base_approved_objc_all_dependent_config") {
479 visibility = [ ":rtc_base_approved_objc" ]
480 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
481 }
482
483 rtc_source_set("rtc_base_approved_objc") {
484 visibility = [ ":rtc_base_approved" ]
485 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
486 sources = [
487 "logging_mac.mm",
488 ]
489 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100490 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700491 ]
492 }
493}
494
Artem Titov6bbeb082018-06-18 14:25:54 +0200495rtc_source_set("base64") {
496 visibility = [ "*" ]
497 sources = [
498 "base64.cc",
499 "base64.h",
500 ]
Artem Titov6bbeb082018-06-18 14:25:54 +0200501}
502
perkj650fdae2017-08-25 05:00:11 -0700503rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000504 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100505 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700506 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700507 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200508 ]
509
perkj650fdae2017-08-25 05:00:11 -0700510 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700511 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700512 }
513}
514
515# WebRTC targets must not directly depend on rtc_task_queue_api or
516# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
517# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
518# to the default implemenation in rtc_task_queue_impl or if an externally
519# provided implementation should be used. An external implementation should
520# depend on rtc_task_queue_api.
521rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100522 # The visibility list is commented out so that we won't break external
523 # implementations, but left here to manually test as well as for sake of what
524 # targets we expect to depend on rtc_task_queue_api.
525 # visibility = [
526 # ":rtc_task_queue",
527 # ":rtc_task_queue_impl",
528 # ":sequenced_task_checker",
529 # ]
nisse75dd6d42017-09-19 08:28:00 -0700530 sources = [
531 "task_queue.h",
532 ]
perkj650fdae2017-08-25 05:00:11 -0700533 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100534 ":macromagic",
535 ":ptr_util",
perkj650fdae2017-08-25 05:00:11 -0700536 ]
537}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200538
Tommi8d2c5a82018-03-19 11:12:48 +0100539if (rtc_enable_libevent) {
540 rtc_source_set("rtc_task_queue_libevent") {
541 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700542 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200543 "task_queue_libevent.cc",
544 "task_queue_posix.cc",
545 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700546 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100547 deps = [
548 ":checks",
549 ":criticalsection",
550 ":logging",
551 ":platform_thread",
552 ":ptr_util",
553 ":refcount",
554 ":rtc_task_queue_api",
555 ":safe_conversions",
556 ":timeutils",
557 ]
558 if (rtc_build_libevent) {
559 deps += [ "//base/third_party/libevent" ]
560 }
561 }
562}
563
564if (is_mac || is_ios) {
565 rtc_source_set("rtc_task_queue_gcd") {
566 visibility = [ ":rtc_task_queue_impl" ]
567 sources = [
568 "task_queue_gcd.cc",
569 "task_queue_posix.cc",
570 "task_queue_posix.h",
571 ]
572 deps = [
573 ":checks",
574 ":logging",
575 ":ptr_util",
576 ":refcount",
577 ":rtc_task_queue_api",
578 ]
579 }
580}
581
582if (is_win) {
583 rtc_source_set("rtc_task_queue_win") {
584 visibility = [ ":rtc_task_queue_impl" ]
585 sources = [
586 "task_queue_win.cc",
587 ]
588 deps = [
589 ":checks",
590 ":criticalsection",
591 ":logging",
592 ":macromagic",
593 ":platform_thread",
594 ":ptr_util",
595 ":refcount",
596 ":rtc_event",
597 ":rtc_task_queue_api",
598 ":safe_conversions",
599 ":timeutils",
600 ]
601 }
602}
603
604rtc_source_set("rtc_task_queue_impl") {
605 visibility = [ "*" ]
606 if (rtc_enable_libevent) {
607 deps = [
608 ":rtc_task_queue_libevent",
609 ]
perkj650fdae2017-08-25 05:00:11 -0700610 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200611 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100612 deps = [
613 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200614 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200615 }
616 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100617 deps = [
618 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200619 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200620 }
621 }
622}
623
Tommi8d2c5a82018-03-19 11:12:48 +0100624rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200625 sources = [
626 "sequenced_task_checker.h",
627 "sequenced_task_checker_impl.cc",
628 "sequenced_task_checker_impl.h",
629 ]
630 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100631 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100632 ":criticalsection",
633 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200634 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100635 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200636 ]
637}
638
639rtc_static_library("weak_ptr") {
640 sources = [
641 "weak_ptr.cc",
642 "weak_ptr.h",
643 ]
644 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100645 ":ptr_util",
646 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200647 ":sequenced_task_checker",
648 ]
649}
650
651rtc_static_library("rtc_numerics") {
652 sources = [
653 "numerics/exp_filter.cc",
654 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100655 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200656 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200657 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200658 ]
659 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100660 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200661 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100662 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200663 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200664 ]
665}
666
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200667rtc_source_set("rtc_json") {
Jonas Olsson55378f42018-05-25 10:23:10 +0200668 testonly = true
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200669 defines = []
670 sources = [
671 "json.cc",
672 "json.h",
673 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100674 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200675 if (rtc_build_json) {
676 public_deps = [
677 "//third_party/jsoncpp",
678 ]
679 } else {
680 include_dirs = [ "$rtc_jsoncpp_root" ]
681
682 # When defined changes the include path for json.h to where it is
683 # expected to be when building json outside of the standalone build.
684 defines += [ "WEBRTC_EXTERNAL_JSON" ]
685 }
686}
687
mbonadei9c5e5112017-09-05 05:17:02 -0700688rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000689 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500690 public_deps = []
691 if (!build_with_mozilla) {
692 public_deps += [ ":rtc_base_generic" ]
693 }
mbonadei310e32b2017-09-07 07:36:28 -0700694 if (is_win) {
695 sources = [
696 "noop.cc",
697 ]
698 }
699 if (is_ios || is_mac) {
700 sources = [
701 "noop.mm",
702 ]
703 public_deps += [ ":rtc_base_objc" ]
704 }
705}
706
707if (is_ios || is_mac) {
708 rtc_source_set("rtc_base_objc") {
709 sources = [
710 "thread_darwin.mm",
711 ]
712 deps = [
713 ":rtc_base_generic",
714 ]
715 visibility = [ ":rtc_base" ]
716 }
717}
718
719rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200720 cflags = []
721 cflags_cc = []
722 libs = []
723 defines = []
724 deps = [
Artem Titov6bbeb082018-06-18 14:25:54 +0200725 ":base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100726 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100727 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200728 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100729 "../api:array_view",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200730 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200731 ]
732 public_deps = [
733 ":rtc_base_approved",
734 ]
735 public_configs = []
736
737 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
738
739 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200740 "asyncinvoker-inl.h",
741 "asyncinvoker.cc",
742 "asyncinvoker.h",
743 "asyncpacketsocket.cc",
744 "asyncpacketsocket.h",
745 "asyncresolverinterface.cc",
746 "asyncresolverinterface.h",
747 "asyncsocket.cc",
748 "asyncsocket.h",
749 "asynctcpsocket.cc",
750 "asynctcpsocket.h",
751 "asyncudpsocket.cc",
752 "asyncudpsocket.h",
753 "crc32.cc",
754 "crc32.h",
755 "cryptstring.cc",
756 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100757 "data_rate_limiter.cc",
758 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100759 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200760 "filerotatingstream.cc",
761 "filerotatingstream.h",
762 "fileutils.cc",
763 "fileutils.h",
764 "gunit_prod.h",
765 "helpers.cc",
766 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200767 "httpcommon-inl.h",
768 "httpcommon.cc",
769 "httpcommon.h",
770 "ipaddress.cc",
771 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100772 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200773 "messagedigest.cc",
774 "messagedigest.h",
775 "messagehandler.cc",
776 "messagehandler.h",
777 "messagequeue.cc",
778 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800779 "nethelper.cc",
780 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200781 "nethelpers.cc",
782 "nethelpers.h",
783 "network.cc",
784 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200785 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200786 "networkmonitor.cc",
787 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100788 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200789 "nullsocketserver.cc",
790 "nullsocketserver.h",
791 "openssl.h",
792 "openssladapter.cc",
793 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700794 "opensslcertificate.cc",
795 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200796 "openssldigest.cc",
797 "openssldigest.h",
798 "opensslidentity.cc",
799 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700800 "opensslsessioncache.cc",
801 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200802 "opensslstreamadapter.cc",
803 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700804 "opensslutility.cc",
805 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806 "physicalsocketserver.cc",
807 "physicalsocketserver.h",
808 "proxyinfo.cc",
809 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200810 "rtccertificate.cc",
811 "rtccertificate.h",
812 "rtccertificategenerator.cc",
813 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700814 "signalthread.cc",
815 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200816 "sigslot.cc",
817 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700818 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700819 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 "socket.h",
821 "socketadapters.cc",
822 "socketadapters.h",
823 "socketaddress.cc",
824 "socketaddress.h",
825 "socketaddresspair.cc",
826 "socketaddresspair.h",
827 "socketfactory.h",
828 "socketserver.h",
829 "socketstream.cc",
830 "socketstream.h",
831 "ssladapter.cc",
832 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700833 "sslcertificate.cc",
834 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 "sslfingerprint.cc",
836 "sslfingerprint.h",
837 "sslidentity.cc",
838 "sslidentity.h",
839 "sslstreamadapter.cc",
840 "sslstreamadapter.h",
841 "stream.cc",
842 "stream.h",
843 "thread.cc",
844 "thread.h",
845 ]
846
mbonadei310e32b2017-09-07 07:36:28 -0700847 visibility = [
848 ":rtc_base",
849 ":rtc_base_objc",
850 ]
851
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200852 if (build_with_chromium) {
853 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200854 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200855 }
856 include_dirs = [ "../../boringssl/src/include" ]
857 public_configs += [ ":rtc_base_chromium_config" ]
858 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200859 sources += [
860 "callback.h",
861 "logsinks.cc",
862 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100863 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200864 "optionsfile.cc",
865 "optionsfile.h",
866 "rollingaccumulator.h",
867 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200868 ]
869
870 if (is_win) {
871 sources += [
872 "win32socketinit.cc",
873 "win32socketinit.h",
874 "win32socketserver.cc",
875 "win32socketserver.h",
876 ]
877 }
878 } # !build_with_chromium
879
880 if (rtc_build_ssl) {
881 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500882 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200883 configs += [ ":external_ssl_library" ]
884 }
885
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700886 if (rtc_builtin_ssl_root_certificates) {
Benjamin Wrighta7087e32018-05-29 17:46:04 -0700887 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700888 }
889
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200890 if (is_android) {
891 sources += [
892 "ifaddrs-android.cc",
893 "ifaddrs-android.h",
894 ]
895
896 libs += [
897 "log",
898 "GLESv2",
899 ]
900 }
901
902 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700903 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200904 }
905
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100906 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200907 libs += [
908 "dl",
909 "rt",
910 "Xext",
911 "X11",
912 "Xcomposite",
913 "Xrender",
914 ]
915 }
916
917 if (is_linux) {
918 libs += [
919 "dl",
920 "rt",
921 ]
922 }
923
924 if (is_mac) {
925 sources += [
926 "macutils.cc",
927 "macutils.h",
928 ]
929 libs += [
930 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
931 "ApplicationServices.framework",
932 ]
933 }
934
935 if (is_win) {
936 sources += [
937 "win32.cc",
938 "win32.h",
939 "win32filesystem.cc",
940 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200941 "win32window.cc",
942 "win32window.h",
943 ]
944
945 libs += [
946 "crypt32.lib",
947 "iphlpapi.lib",
948 "secur32.lib",
949 ]
950
951 cflags += [
952 # Suppress warnings about WIN32_LEAN_AND_MEAN.
953 "/wd4005",
954 "/wd4703",
955 ]
956
957 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
958 }
959
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700960 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200961 sources += [
962 "ifaddrs_converter.cc",
963 "ifaddrs_converter.h",
964 "unixfilesystem.cc",
965 "unixfilesystem.h",
966 ]
967 }
968
969 if (is_nacl) {
970 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
971 defines += [ "timezone=_timezone" ]
972 sources -= [ "ifaddrs_converter.cc" ]
973 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200974}
975
976rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000977 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200978 sources = [
979 "gtest_prod_util.h",
980 ]
981}
982
983config("rtc_base_tests_utils_exported_config") {
984 defines = [ "GTEST_RELATIVE_PATH" ]
985}
986
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987rtc_source_set("rtc_base_tests_utils") {
988 testonly = true
989 sources = [
990 # Also use this as a convenient dumping ground for misc files that are
991 # included by multiple targets below.
992 "cpu_time.cc",
993 "cpu_time.h",
994 "fakeclock.cc",
995 "fakeclock.h",
996 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700997 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200998 "fakesslidentity.h",
999 "firewallsocketserver.cc",
1000 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001001 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001002 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +01001003 "httpbase.cc",
1004 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001005 "httpserver.cc",
1006 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001007 "memory_usage.cc",
1008 "memory_usage.h",
1009 "natserver.cc",
1010 "natserver.h",
1011 "natsocketfactory.cc",
1012 "natsocketfactory.h",
1013 "nattypes.cc",
1014 "nattypes.h",
1015 "proxyserver.cc",
1016 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001017 "sigslottester.h",
1018 "sigslottester.h.pump",
1019 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001020 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 "testclient.cc",
1022 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001023 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001025 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001026 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 "virtualsocketserver.cc",
1028 "virtualsocketserver.h",
1029 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001030 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1031 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001032 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001033 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001034 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001035 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 "../test:field_trial",
1037 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001038 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001039 ]
1040 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001041 "//testing/gtest",
1042 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001043}
1044
Tommida8781f2018-02-19 12:41:43 +01001045rtc_source_set("rtc_task_queue_for_test") {
1046 visibility = [ "*" ]
1047 testonly = true
1048
1049 sources = [
1050 "task_queue_for_test.cc",
1051 "task_queue_for_test.h",
1052 ]
1053 deps = [
1054 ":checks",
1055 ":rtc_base_approved",
1056 ":rtc_task_queue",
1057 ]
1058}
1059
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001060if (rtc_include_tests) {
1061 rtc_source_set("rtc_base_tests_main") {
1062 testonly = true
1063 sources = [
1064 "unittest_main.cc",
1065 ]
1066 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1067 deps = [
1068 ":rtc_base",
1069 ":rtc_base_approved",
1070 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001071 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001072 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001073 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001074 "../test:test_support",
1075 ]
1076
1077 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 "//testing/gtest",
1079 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001080 }
1081
1082 rtc_source_set("rtc_base_nonparallel_tests") {
1083 testonly = true
1084
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001085 sources = [
1086 "cpu_time_unittest.cc",
1087 "filerotatingstream_unittest.cc",
1088 "nullsocketserver_unittest.cc",
1089 "physicalsocketserver_unittest.cc",
1090 "socket_unittest.cc",
1091 "socket_unittest.h",
1092 "socketaddress_unittest.cc",
1093 ]
1094 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001095 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001096 ":rtc_base",
1097 ":rtc_base_tests_main",
1098 ":rtc_base_tests_utils",
1099 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001100 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001101 "../test:test_support",
1102 "//testing/gtest",
1103 ]
1104 if (is_win) {
1105 sources += [ "win32socketserver_unittest.cc" ]
1106 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001107 }
1108
1109 rtc_source_set("rtc_base_approved_unittests") {
1110 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001111 if (is_msan) {
1112 cflags = [ "-fsanitize=memory" ]
1113 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001114 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001115 "atomicops_unittest.cc",
1116 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001117 "bind_unittest.cc",
1118 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001119 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001120 "buffer_unittest.cc",
1121 "bufferqueue_unittest.cc",
1122 "bytebuffer_unittest.cc",
1123 "byteorder_unittest.cc",
1124 "copyonwritebuffer_unittest.cc",
1125 "criticalsection_unittest.cc",
1126 "event_tracer_unittest.cc",
1127 "event_unittest.cc",
1128 "file_unittest.cc",
1129 "function_view_unittest.cc",
1130 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001131 "numerics/histogram_percentile_counter_unittest.cc",
1132 "numerics/mod_ops_unittest.cc",
1133 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001134 "numerics/safe_compare_unittest.cc",
1135 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001136 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001139 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001140 "platform_thread_unittest.cc",
1141 "random_unittest.cc",
1142 "rate_limiter_unittest.cc",
1143 "rate_statistics_unittest.cc",
1144 "ratetracker_unittest.cc",
1145 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001146 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001147 "string_to_number_unittest.cc",
1148 "stringencode_unittest.cc",
1149 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001150 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001151 "stringutils_unittest.cc",
1152 "swap_queue_unittest.cc",
1153 "thread_annotations_unittest.cc",
1154 "thread_checker_unittest.cc",
1155 "timestampaligner_unittest.cc",
1156 "timeutils_unittest.cc",
1157 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001158 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001159 ]
henrika3ca48a62018-05-21 13:34:51 +02001160 if (is_win) {
1161 sources += [ "win/windows_version_unittest.cc" ]
1162 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001163 deps = [
Artem Titov6bbeb082018-06-18 14:25:54 +02001164 ":base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001165 ":checks",
1166 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 ":rtc_base",
1168 ":rtc_base_approved",
1169 ":rtc_base_tests_main",
1170 ":rtc_base_tests_utils",
1171 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001172 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001173 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001174 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001175 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001176 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001177 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001178 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001179 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001180 "memory:unittests",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001181 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 }
1183
1184 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001185 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001186 testonly = true
1187
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001188 sources = [
1189 "task_queue_unittest.cc",
1190 ]
1191 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001192 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001193 ":rtc_base_tests_main",
1194 ":rtc_base_tests_utils",
1195 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001196 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001197 "../test:test_support",
1198 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 }
1200
1201 rtc_source_set("sequenced_task_checker_unittests") {
1202 testonly = true
1203
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001204 sources = [
1205 "sequenced_task_checker_unittest.cc",
1206 ]
1207 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001208 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001209 ":rtc_base_approved",
1210 ":rtc_base_tests_main",
1211 ":rtc_task_queue",
1212 ":sequenced_task_checker",
1213 "../test:test_support",
1214 ]
1215 }
1216
1217 rtc_source_set("weak_ptr_unittests") {
1218 testonly = true
1219
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001220 sources = [
1221 "weak_ptr_unittest.cc",
1222 ]
1223 deps = [
Tommi897e1362017-12-01 18:56:43 +01001224 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001225 ":rtc_base_tests_main",
1226 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001227 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001228 ":rtc_task_queue",
1229 ":weak_ptr",
1230 "../test:test_support",
1231 ]
1232 }
1233
1234 rtc_source_set("rtc_numerics_unittests") {
1235 testonly = true
1236
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001237 sources = [
1238 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001239 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001240 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001241 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001242 ]
1243 deps = [
1244 ":rtc_base_approved",
1245 ":rtc_base_tests_main",
1246 ":rtc_numerics",
1247 "../test:test_support",
1248 ]
1249 }
1250
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001251 rtc_source_set("rtc_base_unittests") {
1252 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001253 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001254
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001255 sources = [
1256 "callback_unittest.cc",
1257 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001258 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001259 "helpers_unittest.cc",
1260 "httpbase_unittest.cc",
1261 "httpcommon_unittest.cc",
1262 "httpserver_unittest.cc",
1263 "ipaddress_unittest.cc",
1264 "memory_usage_unittest.cc",
1265 "messagedigest_unittest.cc",
1266 "messagequeue_unittest.cc",
1267 "nat_unittest.cc",
1268 "network_unittest.cc",
1269 "optionsfile_unittest.cc",
1270 "proxy_unittest.cc",
1271 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001272 "rollingaccumulator_unittest.cc",
1273 "rtccertificate_unittest.cc",
1274 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001275 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001276 "sigslot_unittest.cc",
1277 "sigslottester_unittest.cc",
1278 "stream_unittest.cc",
1279 "testclient_unittest.cc",
1280 "thread_unittest.cc",
1281 ]
1282 if (is_win) {
1283 sources += [
1284 "win32_unittest.cc",
1285 "win32window_unittest.cc",
1286 ]
1287 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001288 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001289 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001290 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001291 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001292 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 "ssladapter_unittest.cc",
1294 "sslidentity_unittest.cc",
1295 "sslstreamadapter_unittest.cc",
1296 ]
1297 }
1298 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001299 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001300 ":rtc_base_tests_main",
1301 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001302 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001303 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001304 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001305 "../test:test_support",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001306 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001307 ]
1308 public_deps = [
1309 ":rtc_base",
1310 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001311 if (build_with_chromium) {
1312 include_dirs = [ "../../boringssl/src/include" ]
1313 }
1314 if (rtc_build_ssl) {
1315 deps += [ "//third_party/boringssl" ]
1316 } else {
1317 configs += [ ":external_ssl_library" ]
1318 }
Benjamin Wrighta7087e32018-05-29 17:46:04 -07001319 if (rtc_builtin_ssl_root_certificates) {
1320 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001321 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001322 }
1323}
1324
Henrik Kjellander73e21802017-06-20 08:38:58 +02001325if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001326 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001327 java_files = [
1328 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001329 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001330 "java/src/org/webrtc/Logging.java",
1331 "java/src/org/webrtc/Size.java",
1332 "java/src/org/webrtc/ThreadUtils.java",
1333 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001334 }
1335}