blob: bb8af917af6d8aaf8e7de45ee8968831446f2058 [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
Oleh Prypindd214742018-07-17 13:49:46 +020063rtc_source_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
Oleh Prypindd214742018-07-17 13:49:46 +020075rtc_source_set("compile_assert_c") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020076 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",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100374 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100375 ":criticalsection",
376 ":logging",
377 ":macromagic",
378 ":platform_thread",
379 ":platform_thread_types",
380 ":ptr_util",
381 ":refcount",
382 ":rtc_event",
383 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100384 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100385 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100386 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100387 ":thread_checker",
388 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100389 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100390 "../:typedefs",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200391 "system:arch",
Artem Titova76af0c2018-07-23 17:38:12 +0200392 "third_party/base64",
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 = [
Artem Titov6bbeb082018-06-18 14:25:54 +0200498 "base64.h",
499 ]
Artem Titova76af0c2018-07-23 17:38:12 +0200500 deps = [
501 "third_party/base64",
502 ]
Artem Titov6bbeb082018-06-18 14:25:54 +0200503}
504
perkj650fdae2017-08-25 05:00:11 -0700505rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000506 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100507 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700508 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700509 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200510 ]
511
perkj650fdae2017-08-25 05:00:11 -0700512 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700513 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700514 }
515}
516
517# WebRTC targets must not directly depend on rtc_task_queue_api or
518# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
519# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
520# to the default implemenation in rtc_task_queue_impl or if an externally
521# provided implementation should be used. An external implementation should
522# depend on rtc_task_queue_api.
523rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100524 # The visibility list is commented out so that we won't break external
525 # implementations, but left here to manually test as well as for sake of what
526 # targets we expect to depend on rtc_task_queue_api.
527 # visibility = [
528 # ":rtc_task_queue",
529 # ":rtc_task_queue_impl",
530 # ":sequenced_task_checker",
531 # ]
nisse75dd6d42017-09-19 08:28:00 -0700532 sources = [
533 "task_queue.h",
534 ]
perkj650fdae2017-08-25 05:00:11 -0700535 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100536 ":macromagic",
537 ":ptr_util",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200538 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700539 ]
540}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200541
Tommi8d2c5a82018-03-19 11:12:48 +0100542if (rtc_enable_libevent) {
543 rtc_source_set("rtc_task_queue_libevent") {
544 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700545 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200546 "task_queue_libevent.cc",
547 "task_queue_posix.cc",
548 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700549 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100550 deps = [
551 ":checks",
552 ":criticalsection",
553 ":logging",
554 ":platform_thread",
555 ":ptr_util",
556 ":refcount",
557 ":rtc_task_queue_api",
558 ":safe_conversions",
559 ":timeutils",
560 ]
561 if (rtc_build_libevent) {
562 deps += [ "//base/third_party/libevent" ]
563 }
564 }
565}
566
567if (is_mac || is_ios) {
568 rtc_source_set("rtc_task_queue_gcd") {
569 visibility = [ ":rtc_task_queue_impl" ]
570 sources = [
571 "task_queue_gcd.cc",
572 "task_queue_posix.cc",
573 "task_queue_posix.h",
574 ]
575 deps = [
576 ":checks",
577 ":logging",
578 ":ptr_util",
579 ":refcount",
580 ":rtc_task_queue_api",
581 ]
582 }
583}
584
585if (is_win) {
586 rtc_source_set("rtc_task_queue_win") {
587 visibility = [ ":rtc_task_queue_impl" ]
588 sources = [
589 "task_queue_win.cc",
590 ]
591 deps = [
592 ":checks",
593 ":criticalsection",
594 ":logging",
595 ":macromagic",
596 ":platform_thread",
597 ":ptr_util",
598 ":refcount",
599 ":rtc_event",
600 ":rtc_task_queue_api",
601 ":safe_conversions",
602 ":timeutils",
603 ]
604 }
605}
606
607rtc_source_set("rtc_task_queue_impl") {
608 visibility = [ "*" ]
609 if (rtc_enable_libevent) {
610 deps = [
611 ":rtc_task_queue_libevent",
612 ]
perkj650fdae2017-08-25 05:00:11 -0700613 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200614 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100615 deps = [
616 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200617 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200618 }
619 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100620 deps = [
621 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200622 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200623 }
624 }
625}
626
Tommi8d2c5a82018-03-19 11:12:48 +0100627rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200628 sources = [
629 "sequenced_task_checker.h",
630 "sequenced_task_checker_impl.cc",
631 "sequenced_task_checker_impl.h",
632 ]
633 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100634 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100635 ":criticalsection",
636 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200637 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100638 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200639 ]
640}
641
642rtc_static_library("weak_ptr") {
643 sources = [
644 "weak_ptr.cc",
645 "weak_ptr.h",
646 ]
647 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100648 ":ptr_util",
649 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200650 ":sequenced_task_checker",
651 ]
652}
653
654rtc_static_library("rtc_numerics") {
655 sources = [
656 "numerics/exp_filter.cc",
657 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100658 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200659 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200660 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200661 ]
662 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100663 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200664 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100665 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200666 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200667 ]
668}
669
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200670rtc_source_set("rtc_json") {
Jonas Olsson55378f42018-05-25 10:23:10 +0200671 testonly = true
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200672 defines = []
673 sources = [
674 "json.cc",
675 "json.h",
676 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100677 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200678 if (rtc_build_json) {
679 public_deps = [
680 "//third_party/jsoncpp",
681 ]
682 } else {
683 include_dirs = [ "$rtc_jsoncpp_root" ]
684
685 # When defined changes the include path for json.h to where it is
686 # expected to be when building json outside of the standalone build.
687 defines += [ "WEBRTC_EXTERNAL_JSON" ]
688 }
689}
690
mbonadei9c5e5112017-09-05 05:17:02 -0700691rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000692 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500693 public_deps = []
694 if (!build_with_mozilla) {
695 public_deps += [ ":rtc_base_generic" ]
696 }
mbonadei310e32b2017-09-07 07:36:28 -0700697 if (is_win) {
698 sources = [
699 "noop.cc",
700 ]
701 }
702 if (is_ios || is_mac) {
703 sources = [
704 "noop.mm",
705 ]
706 public_deps += [ ":rtc_base_objc" ]
707 }
708}
709
710if (is_ios || is_mac) {
711 rtc_source_set("rtc_base_objc") {
712 sources = [
713 "thread_darwin.mm",
714 ]
715 deps = [
716 ":rtc_base_generic",
717 ]
718 visibility = [ ":rtc_base" ]
719 }
720}
721
722rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200723 cflags = []
724 cflags_cc = []
725 libs = []
726 defines = []
727 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100728 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100729 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200730 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100731 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200732 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200733 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200734 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200735 ]
736 public_deps = [
737 ":rtc_base_approved",
738 ]
739 public_configs = []
740
741 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
742
743 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200744 "asyncinvoker-inl.h",
745 "asyncinvoker.cc",
746 "asyncinvoker.h",
747 "asyncpacketsocket.cc",
748 "asyncpacketsocket.h",
749 "asyncresolverinterface.cc",
750 "asyncresolverinterface.h",
751 "asyncsocket.cc",
752 "asyncsocket.h",
753 "asynctcpsocket.cc",
754 "asynctcpsocket.h",
755 "asyncudpsocket.cc",
756 "asyncudpsocket.h",
757 "crc32.cc",
758 "crc32.h",
759 "cryptstring.cc",
760 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100761 "data_rate_limiter.cc",
762 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100763 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200764 "filerotatingstream.cc",
765 "filerotatingstream.h",
766 "fileutils.cc",
767 "fileutils.h",
768 "gunit_prod.h",
769 "helpers.cc",
770 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200771 "httpcommon-inl.h",
772 "httpcommon.cc",
773 "httpcommon.h",
774 "ipaddress.cc",
775 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100776 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200777 "messagedigest.cc",
778 "messagedigest.h",
779 "messagehandler.cc",
780 "messagehandler.h",
781 "messagequeue.cc",
782 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800783 "nethelper.cc",
784 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200785 "nethelpers.cc",
786 "nethelpers.h",
787 "network.cc",
788 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200789 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200790 "networkmonitor.cc",
791 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100792 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200793 "nullsocketserver.cc",
794 "nullsocketserver.h",
795 "openssl.h",
796 "openssladapter.cc",
797 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700798 "opensslcertificate.cc",
799 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200800 "openssldigest.cc",
801 "openssldigest.h",
802 "opensslidentity.cc",
803 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700804 "opensslsessioncache.cc",
805 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806 "opensslstreamadapter.cc",
807 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700808 "opensslutility.cc",
809 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200810 "physicalsocketserver.cc",
811 "physicalsocketserver.h",
812 "proxyinfo.cc",
813 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200814 "rtccertificate.cc",
815 "rtccertificate.h",
816 "rtccertificategenerator.cc",
817 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700818 "signalthread.cc",
819 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 "sigslot.cc",
821 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700822 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700823 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200824 "socket.h",
825 "socketadapters.cc",
826 "socketadapters.h",
827 "socketaddress.cc",
828 "socketaddress.h",
829 "socketaddresspair.cc",
830 "socketaddresspair.h",
831 "socketfactory.h",
832 "socketserver.h",
833 "socketstream.cc",
834 "socketstream.h",
835 "ssladapter.cc",
836 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700837 "sslcertificate.cc",
838 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 "sslfingerprint.cc",
840 "sslfingerprint.h",
841 "sslidentity.cc",
842 "sslidentity.h",
843 "sslstreamadapter.cc",
844 "sslstreamadapter.h",
845 "stream.cc",
846 "stream.h",
847 "thread.cc",
848 "thread.h",
849 ]
850
mbonadei310e32b2017-09-07 07:36:28 -0700851 visibility = [
852 ":rtc_base",
853 ":rtc_base_objc",
854 ]
855
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200856 if (build_with_chromium) {
857 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200858 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200859 }
860 include_dirs = [ "../../boringssl/src/include" ]
861 public_configs += [ ":rtc_base_chromium_config" ]
862 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200863 sources += [
864 "callback.h",
865 "logsinks.cc",
866 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100867 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200868 "optionsfile.cc",
869 "optionsfile.h",
870 "rollingaccumulator.h",
871 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200872 ]
873
874 if (is_win) {
875 sources += [
876 "win32socketinit.cc",
877 "win32socketinit.h",
878 "win32socketserver.cc",
879 "win32socketserver.h",
880 ]
881 }
882 } # !build_with_chromium
883
884 if (rtc_build_ssl) {
885 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500886 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200887 configs += [ ":external_ssl_library" ]
888 }
889
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700890 if (rtc_builtin_ssl_root_certificates) {
Benjamin Wrighta7087e32018-05-29 17:46:04 -0700891 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700892 }
893
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200894 if (is_android) {
895 sources += [
896 "ifaddrs-android.cc",
897 "ifaddrs-android.h",
898 ]
899
900 libs += [
901 "log",
902 "GLESv2",
903 ]
904 }
905
906 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700907 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200908 }
909
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100910 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200911 libs += [
912 "dl",
913 "rt",
914 "Xext",
915 "X11",
916 "Xcomposite",
917 "Xrender",
918 ]
919 }
920
921 if (is_linux) {
922 libs += [
923 "dl",
924 "rt",
925 ]
926 }
927
928 if (is_mac) {
929 sources += [
930 "macutils.cc",
931 "macutils.h",
932 ]
933 libs += [
934 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
935 "ApplicationServices.framework",
936 ]
937 }
938
939 if (is_win) {
940 sources += [
941 "win32.cc",
942 "win32.h",
943 "win32filesystem.cc",
944 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200945 "win32window.cc",
946 "win32window.h",
947 ]
948
949 libs += [
950 "crypt32.lib",
951 "iphlpapi.lib",
952 "secur32.lib",
953 ]
954
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200955 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
956 }
957
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700958 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200959 sources += [
960 "ifaddrs_converter.cc",
961 "ifaddrs_converter.h",
962 "unixfilesystem.cc",
963 "unixfilesystem.h",
964 ]
965 }
966
967 if (is_nacl) {
968 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
969 defines += [ "timezone=_timezone" ]
970 sources -= [ "ifaddrs_converter.cc" ]
971 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200972}
973
974rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000975 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 sources = [
977 "gtest_prod_util.h",
978 ]
979}
980
981config("rtc_base_tests_utils_exported_config") {
982 defines = [ "GTEST_RELATIVE_PATH" ]
983}
984
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200985rtc_source_set("rtc_base_tests_utils") {
986 testonly = true
987 sources = [
988 # Also use this as a convenient dumping ground for misc files that are
989 # included by multiple targets below.
990 "cpu_time.cc",
991 "cpu_time.h",
992 "fakeclock.cc",
993 "fakeclock.h",
994 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700995 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200996 "fakesslidentity.h",
997 "firewallsocketserver.cc",
998 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800999 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001000 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +01001001 "httpbase.cc",
1002 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001003 "httpserver.cc",
1004 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001005 "memory_usage.cc",
1006 "memory_usage.h",
1007 "natserver.cc",
1008 "natserver.h",
1009 "natsocketfactory.cc",
1010 "natsocketfactory.h",
1011 "nattypes.cc",
1012 "nattypes.h",
1013 "proxyserver.cc",
1014 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001015 "sigslottester.h",
1016 "sigslottester.h.pump",
1017 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001018 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 "testclient.cc",
1020 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001021 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001022 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001023 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 "virtualsocketserver.cc",
1026 "virtualsocketserver.h",
1027 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1029 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001030 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001032 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001033 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001034 "../test:field_trial",
1035 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001036 "system:fallthrough",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001037 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001038 ]
1039 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040 "//testing/gtest",
1041 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001042}
1043
Tommida8781f2018-02-19 12:41:43 +01001044rtc_source_set("rtc_task_queue_for_test") {
1045 visibility = [ "*" ]
1046 testonly = true
1047
1048 sources = [
1049 "task_queue_for_test.cc",
1050 "task_queue_for_test.h",
1051 ]
1052 deps = [
1053 ":checks",
1054 ":rtc_base_approved",
1055 ":rtc_task_queue",
1056 ]
1057}
1058
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001059if (rtc_include_tests) {
1060 rtc_source_set("rtc_base_tests_main") {
1061 testonly = true
1062 sources = [
1063 "unittest_main.cc",
1064 ]
1065 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1066 deps = [
1067 ":rtc_base",
1068 ":rtc_base_approved",
1069 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001070 "../system_wrappers:field_trial_default",
Qingsi Wang7fc821d2018-07-12 12:54:53 -07001071 "../system_wrappers:metrics_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",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001103 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001104 ]
1105 if (is_win) {
1106 sources += [ "win32socketserver_unittest.cc" ]
1107 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001108 }
1109
1110 rtc_source_set("rtc_base_approved_unittests") {
1111 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001112 if (is_msan) {
1113 cflags = [ "-fsanitize=memory" ]
1114 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001115 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001116 "atomicops_unittest.cc",
1117 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001118 "bind_unittest.cc",
1119 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001120 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001121 "buffer_unittest.cc",
1122 "bufferqueue_unittest.cc",
1123 "bytebuffer_unittest.cc",
1124 "byteorder_unittest.cc",
1125 "copyonwritebuffer_unittest.cc",
1126 "criticalsection_unittest.cc",
1127 "event_tracer_unittest.cc",
1128 "event_unittest.cc",
1129 "file_unittest.cc",
1130 "function_view_unittest.cc",
1131 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001132 "numerics/histogram_percentile_counter_unittest.cc",
1133 "numerics/mod_ops_unittest.cc",
1134 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001135 "numerics/safe_compare_unittest.cc",
1136 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001137 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001140 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 "platform_thread_unittest.cc",
1142 "random_unittest.cc",
1143 "rate_limiter_unittest.cc",
1144 "rate_statistics_unittest.cc",
1145 "ratetracker_unittest.cc",
1146 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001147 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001148 "string_to_number_unittest.cc",
1149 "stringencode_unittest.cc",
1150 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001151 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001152 "stringutils_unittest.cc",
1153 "swap_queue_unittest.cc",
1154 "thread_annotations_unittest.cc",
1155 "thread_checker_unittest.cc",
1156 "timestampaligner_unittest.cc",
1157 "timeutils_unittest.cc",
1158 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001159 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 ]
henrika3ca48a62018-05-21 13:34:51 +02001161 if (is_win) {
1162 sources += [ "win/windows_version_unittest.cc" ]
1163 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001164 deps = [
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",
Artem Titova76af0c2018-07-23 17:38:12 +02001181 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001182 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001183 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001184 }
1185
1186 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001187 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001188 testonly = true
1189
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001190 sources = [
1191 "task_queue_unittest.cc",
1192 ]
1193 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001194 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001195 ":rtc_base_tests_main",
1196 ":rtc_base_tests_utils",
1197 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001198 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 "../test:test_support",
1200 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001201 }
1202
1203 rtc_source_set("sequenced_task_checker_unittests") {
1204 testonly = true
1205
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001206 sources = [
1207 "sequenced_task_checker_unittest.cc",
1208 ]
1209 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001210 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001211 ":rtc_base_approved",
1212 ":rtc_base_tests_main",
1213 ":rtc_task_queue",
1214 ":sequenced_task_checker",
1215 "../test:test_support",
1216 ]
1217 }
1218
1219 rtc_source_set("weak_ptr_unittests") {
1220 testonly = true
1221
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001222 sources = [
1223 "weak_ptr_unittest.cc",
1224 ]
1225 deps = [
Tommi897e1362017-12-01 18:56:43 +01001226 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001227 ":rtc_base_tests_main",
1228 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001229 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001230 ":rtc_task_queue",
1231 ":weak_ptr",
1232 "../test:test_support",
1233 ]
1234 }
1235
1236 rtc_source_set("rtc_numerics_unittests") {
1237 testonly = true
1238
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001239 sources = [
1240 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001241 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001242 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001243 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001244 ]
1245 deps = [
1246 ":rtc_base_approved",
1247 ":rtc_base_tests_main",
1248 ":rtc_numerics",
1249 "../test:test_support",
1250 ]
1251 }
1252
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001253 rtc_source_set("rtc_base_unittests") {
1254 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001255 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001256
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001257 sources = [
1258 "callback_unittest.cc",
1259 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001260 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001261 "helpers_unittest.cc",
1262 "httpbase_unittest.cc",
1263 "httpcommon_unittest.cc",
1264 "httpserver_unittest.cc",
1265 "ipaddress_unittest.cc",
1266 "memory_usage_unittest.cc",
1267 "messagedigest_unittest.cc",
1268 "messagequeue_unittest.cc",
1269 "nat_unittest.cc",
1270 "network_unittest.cc",
1271 "optionsfile_unittest.cc",
1272 "proxy_unittest.cc",
1273 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001274 "rollingaccumulator_unittest.cc",
1275 "rtccertificate_unittest.cc",
1276 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001277 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001278 "sigslot_unittest.cc",
1279 "sigslottester_unittest.cc",
1280 "stream_unittest.cc",
1281 "testclient_unittest.cc",
1282 "thread_unittest.cc",
1283 ]
1284 if (is_win) {
1285 sources += [
1286 "win32_unittest.cc",
1287 "win32window_unittest.cc",
1288 ]
1289 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001290 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001291 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001292 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001293 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001294 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001295 "ssladapter_unittest.cc",
1296 "sslidentity_unittest.cc",
1297 "sslstreamadapter_unittest.cc",
1298 ]
1299 }
1300 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001301 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001302 ":rtc_base_tests_main",
1303 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001304 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001305 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001306 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001307 "../test:test_support",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001308 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001309 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001310 ]
1311 public_deps = [
1312 ":rtc_base",
1313 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001314 if (build_with_chromium) {
1315 include_dirs = [ "../../boringssl/src/include" ]
1316 }
1317 if (rtc_build_ssl) {
1318 deps += [ "//third_party/boringssl" ]
1319 } else {
1320 configs += [ ":external_ssl_library" ]
1321 }
Benjamin Wrighta7087e32018-05-29 17:46:04 -07001322 if (rtc_builtin_ssl_root_certificates) {
1323 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001324 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001325 }
1326}
1327
Henrik Kjellander73e21802017-06-20 08:38:58 +02001328if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001329 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001330 java_files = [
1331 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001332 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001333 "java/src/org/webrtc/Logging.java",
1334 "java/src/org/webrtc/Size.java",
1335 "java/src/org/webrtc/ThreadUtils.java",
1336 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001337 }
1338}