blob: 2580d46177facc1ba4f3aa6fabfe9f9ef035169d [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
Mirko Bonadeica270912018-10-10 15:51:03 +020070# The subset of rtc_base approved for use outside of libjingle.
71# TODO(bugs.webrtc.org/9838): Create small and focues build targets and remove
72# the old concept of rtc_base and rtc_base_approved.
mbonadeibc378472017-09-11 03:43:34 -070073rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000074 visibility = [ "*" ]
Mirko Bonadeica270912018-10-10 15:51:03 +020075 deps = [
76 ":checks",
77 ":rtc_task_queue",
78 ":safe_compare",
79 ":type_traits",
80 "..:webrtc_common",
81 "../api:array_view",
82 "system:arch",
83 "system:unused",
84 "third_party/base64",
85 "//third_party/abseil-cpp/absl/memory:memory",
86 "//third_party/abseil-cpp/absl/types:optional",
87 ]
88
89 sources = [
90 "bind.h",
91 "bitbuffer.cc",
92 "bitbuffer.h",
93 "bitrateallocationstrategy.cc",
94 "bitrateallocationstrategy.h",
95 "buffer.h",
96 "bufferqueue.cc",
97 "bufferqueue.h",
98 "bytebuffer.cc",
99 "bytebuffer.h",
100 "byteorder.h",
101 "copyonwritebuffer.cc",
102 "copyonwritebuffer.h",
103 "event_tracer.cc",
104 "event_tracer.h",
105 "file.cc",
106 "file.h",
107 "flags.cc",
108 "flags.h",
109 "function_view.h",
110 "ignore_wundef.h",
111 "location.cc",
112 "location.h",
113 "message_buffer_reader.h",
114 "numerics/histogram_percentile_counter.cc",
115 "numerics/histogram_percentile_counter.h",
116 "numerics/mod_ops.h",
117 "numerics/moving_max_counter.h",
118 "numerics/sample_counter.cc",
119 "numerics/sample_counter.h",
120 "onetimeevent.h",
121 "pathutils.cc",
122 "pathutils.h",
123 "platform_file.cc",
124 "platform_file.h",
125 "race_checker.cc",
126 "race_checker.h",
127 "random.cc",
128 "random.h",
129 "rate_statistics.cc",
130 "rate_statistics.h",
131 "ratetracker.cc",
132 "ratetracker.h",
133 "swap_queue.h",
134 "template_util.h",
135 "timestampaligner.cc",
136 "timestampaligner.h",
137 "trace_event.h",
138 "zero_memory.cc",
139 "zero_memory.h",
140 ]
141
142 if (is_posix || is_fuchsia) {
143 sources += [ "file_posix.cc" ]
144 }
145
146 if (is_win) {
147 sources += [
148 "file_win.cc",
149 "win/windows_version.cc",
150 "win/windows_version.h",
151 ]
152 data_deps = [
153 "//build/win:runtime_libs",
154 ]
155 }
156
157 if (is_nacl) {
158 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
159 }
160
161 if (is_android) {
162 libs = [ "log" ]
163 }
164
165 public_deps = [ # no-presubmit-check TODO(webrtc:8603)
Tommi8d2c5a82018-03-19 11:12:48 +0100166 ":atomicops",
167 ":criticalsection",
168 ":logging",
169 ":macromagic",
170 ":platform_thread",
171 ":platform_thread_types",
172 ":ptr_util",
173 ":refcount",
Tommi8d2c5a82018-03-19 11:12:48 +0100174 ":rtc_event",
175 ":safe_conversions",
176 ":stringutils",
177 ":thread_checker",
178 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -0700179 ]
mbonadeibc378472017-09-11 03:43:34 -0700180}
181
Tommi8d2c5a82018-03-19 11:12:48 +0100182rtc_source_set("macromagic") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200183 # TODO(bugs.webrtc.org/9606): This should not be public.
184 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100185 sources = [
186 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100187 "constructormagic.h",
188 "format_macros.h",
189 "stringize_macros.h",
190 "thread_annotations.h",
191 ]
Niels Möllera12c42a2018-07-25 16:05:48 +0200192 deps = [
193 "system:arch",
194 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100195}
196
197rtc_source_set("platform_thread_types") {
198 sources = [
199 "platform_thread_types.cc",
200 "platform_thread_types.h",
201 ]
202}
203
204rtc_source_set("ptr_util") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200205 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100206 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100207 "scoped_ref_ptr.h",
208 ]
209}
210
211rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200212 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100213 sources = [
214 "refcount.h",
215 "refcountedobject.h",
216 "refcounter.h",
217 ]
218 deps = [
219 ":atomicops",
220 ":macromagic",
221 ]
222}
223
224rtc_source_set("criticalsection") {
225 sources = [
226 "criticalsection.cc",
227 "criticalsection.h",
228 ]
229 deps = [
230 ":atomicops",
231 ":checks",
232 ":macromagic",
233 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200234 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100235 ]
236}
237
238rtc_source_set("platform_thread") {
239 visibility = [
240 ":rtc_base_approved",
Tommi8d2c5a82018-03-19 11:12:48 +0100241 ":rtc_task_queue_libevent",
242 ":rtc_task_queue_win",
243 ":sequenced_task_checker",
244 ]
245 sources = [
246 "platform_thread.cc",
247 "platform_thread.h",
248 ]
249 deps = [
250 ":atomicops",
251 ":checks",
252 ":macromagic",
253 ":platform_thread_types",
254 ":rtc_event",
255 ":thread_checker",
256 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100257 ]
258}
259
260rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700261 deps = [
262 ":checks",
263 ":macromagic",
264 ]
265
Tommi8d2c5a82018-03-19 11:12:48 +0100266 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700267 # Dependency on chromium's waitable_event (in //base).
268 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100269 sources = [
270 "../../webrtc_overrides/rtc_base/event.cc",
271 "../../webrtc_overrides/rtc_base/event.h",
272 ]
273 } else {
274 sources = [
275 "event.cc",
276 "event.h",
277 ]
278 }
Tommi8d2c5a82018-03-19 11:12:48 +0100279}
280
281rtc_source_set("logging") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200282 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200283 libs = []
Tommi8d2c5a82018-03-19 11:12:48 +0100284 deps = [
285 ":criticalsection",
286 ":macromagic",
287 ":platform_thread_types",
288 ":stringutils",
289 ":timeutils",
Jonas Olssonf2ce37c2018-09-12 15:32:47 +0200290 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 11:12:48 +0100291 ]
292
293 if (build_with_chromium) {
294 # Dependency on chromium's logging (in //base).
295 deps += [ "//base:base" ]
296 sources = [
297 "../../webrtc_overrides/rtc_base/logging.cc",
298 "../../webrtc_overrides/rtc_base/logging.h",
299 ]
300 } else {
Mirko Bonadei96ede162018-09-06 13:45:44 +0200301 configs += [
302 "..:no_exit_time_destructors",
303 "..:no_global_constructors",
304 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100305 sources = [
306 "logging.cc",
307 "logging.h",
308 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200309 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100310
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200311 if (is_mac) {
312 deps += [ ":logging_mac" ]
313 }
314
Tommi8d2c5a82018-03-19 11:12:48 +0100315 # logging.h needs the deprecation header while downstream projects are
316 # removing code that depends on logging implementation details.
317 deps += [ ":deprecation" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200318
319 if (is_android) {
320 libs += [ "log" ]
321 }
Tommi8d2c5a82018-03-19 11:12:48 +0100322 }
323}
324
325rtc_source_set("thread_checker") {
326 sources = [
327 "thread_checker.h",
328 "thread_checker_impl.cc",
329 "thread_checker_impl.h",
330 ]
331 deps = [
332 ":checks",
333 ":criticalsection",
334 ":macromagic",
335 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100336 ]
337}
338
339rtc_source_set("atomicops") {
340 sources = [
341 "atomicops.h",
342 ]
343}
344
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100345rtc_source_set("checks") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200346 # TODO(bugs.webrtc.org/9607): This should not be public.
347 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200348 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100349 sources = [
350 "checks.cc",
351 "checks.h",
352 ]
353 deps = [
354 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200355 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100356 ]
Patrik Höglund77301932018-10-09 15:09:51 +0200357 if (is_android) {
358 libs += [ "log" ]
359 }
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100360}
361
Patrik Höglund3e113432017-12-15 14:40:10 +0100362rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100363 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100364 "rate_limiter.cc",
365 "rate_limiter.h",
366 ]
367 deps = [
368 ":rtc_base_approved",
369 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100370 ]
371}
372
373rtc_source_set("sanitizer") {
374 sources = [
375 "sanitizer.h",
376 ]
377}
378
379rtc_source_set("safe_compare") {
380 sources = [
381 "numerics/safe_compare.h",
382 ]
383 deps = [
384 ":type_traits",
385 ]
386}
387
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100388rtc_source_set("safe_minmax") {
389 sources = [
390 "numerics/safe_minmax.h",
391 ]
392 deps = [
393 ":checks",
394 ":safe_compare",
395 ":type_traits",
396 ]
397}
398
Tommi8d2c5a82018-03-19 11:12:48 +0100399rtc_source_set("safe_conversions") {
400 sources = [
401 "numerics/safe_conversions.h",
402 "numerics/safe_conversions_impl.h",
403 ]
404 deps = [
405 ":checks",
406 ]
407}
408
409rtc_source_set("timeutils") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200410 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100411 sources = [
412 "timeutils.cc",
413 "timeutils.h",
414 ]
415 deps = [
416 ":checks",
417 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 13:41:30 +0200418 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100419 ]
420}
421
Patrik Höglund3e113432017-12-15 14:40:10 +0100422rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100423 sources = [
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200424 "string_to_number.cc",
425 "string_to_number.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100426 "stringencode.cc",
427 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100428 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100429 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100430 "stringutils.cc",
431 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100432 ]
433 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100434 ":checks",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200435 ":macromagic",
Karl Wiberg881f1682018-03-08 15:03:23 +0100436 ":safe_minmax",
437 "../api:array_view",
Jonas Olsson88e18482018-09-03 10:15:08 +0200438 "//third_party/abseil-cpp/absl/strings:strings",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200439 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 14:40:10 +0100440 ]
441}
442
Jonas Olsson74395342018-04-03 12:22:07 +0200443rtc_source_set("audio_format_to_string") {
444 sources = [
445 "strings/audio_format_to_string.cc",
446 "strings/audio_format_to_string.h",
447 ]
448 deps = [
449 ":stringutils",
450 "../api/audio_codecs:audio_codecs_api",
451 ]
452}
453
Patrik Höglund3e113432017-12-15 14:40:10 +0100454rtc_source_set("type_traits") {
455 sources = [
456 "type_traits.h",
457 ]
458}
459
460rtc_source_set("deprecation") {
461 sources = [
462 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100463 ]
464}
465
mbonadeibc378472017-09-11 03:43:34 -0700466if (is_mac && !build_with_chromium) {
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200467 rtc_source_set("logging_mac") {
468 visibility = [ ":logging" ]
469 libs = [ "Foundation.framework" ]
mbonadeibc378472017-09-11 03:43:34 -0700470 sources = [
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200471 "logging_mac.h",
mbonadeibc378472017-09-11 03:43:34 -0700472 "logging_mac.mm",
473 ]
mbonadeibc378472017-09-11 03:43:34 -0700474 }
475}
476
perkj650fdae2017-08-25 05:00:11 -0700477rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000478 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100479 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700480 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700481 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200482 ]
483
perkj650fdae2017-08-25 05:00:11 -0700484 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700485 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700486 }
487}
488
489# WebRTC targets must not directly depend on rtc_task_queue_api or
490# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
491# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
492# to the default implemenation in rtc_task_queue_impl or if an externally
493# provided implementation should be used. An external implementation should
494# depend on rtc_task_queue_api.
495rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100496 # The visibility list is commented out so that we won't break external
497 # implementations, but left here to manually test as well as for sake of what
498 # targets we expect to depend on rtc_task_queue_api.
499 # visibility = [
500 # ":rtc_task_queue",
501 # ":rtc_task_queue_impl",
502 # ":sequenced_task_checker",
503 # ]
nisse75dd6d42017-09-19 08:28:00 -0700504 sources = [
505 "task_queue.h",
506 ]
perkj650fdae2017-08-25 05:00:11 -0700507 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100508 ":macromagic",
509 ":ptr_util",
Mirko Bonadei3d255302018-10-11 10:50:45 +0200510 "system:rtc_export",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200511 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700512 ]
513}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200514
Danil Chapovalova10d1642018-08-31 13:47:59 +0200515rtc_source_set("rtc_cancelable_task") {
516 sources = [
517 "cancelable_periodic_task.h",
518 "cancelable_task_handle.cc",
519 "cancelable_task_handle.h",
520 ]
521 deps = [
522 ":checks",
523 ":logging",
524 ":macromagic",
525 ":ptr_util",
526 ":refcount",
527 ":rtc_task_queue",
528 ":safe_conversions",
529 ":sequenced_task_checker",
530 ":thread_checker",
531 "//third_party/abseil-cpp/absl/memory",
532 ]
533}
534
Tommi8d2c5a82018-03-19 11:12:48 +0100535if (rtc_enable_libevent) {
536 rtc_source_set("rtc_task_queue_libevent") {
537 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700538 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200539 "task_queue_libevent.cc",
540 "task_queue_posix.cc",
541 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700542 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100543 deps = [
544 ":checks",
545 ":criticalsection",
546 ":logging",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200547 ":macromagic",
Tommi8d2c5a82018-03-19 11:12:48 +0100548 ":platform_thread",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200549 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100550 ":ptr_util",
551 ":refcount",
552 ":rtc_task_queue_api",
553 ":safe_conversions",
554 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200555 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100556 ]
557 if (rtc_build_libevent) {
558 deps += [ "//base/third_party/libevent" ]
559 }
560 }
561}
562
563if (is_mac || is_ios) {
564 rtc_source_set("rtc_task_queue_gcd") {
565 visibility = [ ":rtc_task_queue_impl" ]
566 sources = [
567 "task_queue_gcd.cc",
568 "task_queue_posix.cc",
569 "task_queue_posix.h",
570 ]
571 deps = [
572 ":checks",
573 ":logging",
574 ":ptr_util",
575 ":refcount",
576 ":rtc_task_queue_api",
577 ]
578 }
579}
580
581if (is_win) {
582 rtc_source_set("rtc_task_queue_win") {
583 visibility = [ ":rtc_task_queue_impl" ]
584 sources = [
585 "task_queue_win.cc",
586 ]
587 deps = [
588 ":checks",
589 ":criticalsection",
590 ":logging",
591 ":macromagic",
592 ":platform_thread",
593 ":ptr_util",
594 ":refcount",
595 ":rtc_event",
596 ":rtc_task_queue_api",
597 ":safe_conversions",
598 ":timeutils",
599 ]
600 }
601}
602
603rtc_source_set("rtc_task_queue_impl") {
604 visibility = [ "*" ]
605 if (rtc_enable_libevent) {
606 deps = [
607 ":rtc_task_queue_libevent",
608 ]
perkj650fdae2017-08-25 05:00:11 -0700609 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200610 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100611 deps = [
612 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200613 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200614 }
615 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100616 deps = [
617 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200618 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200619 }
620 }
621}
622
Tommi8d2c5a82018-03-19 11:12:48 +0100623rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200624 sources = [
625 "sequenced_task_checker.h",
626 "sequenced_task_checker_impl.cc",
627 "sequenced_task_checker_impl.h",
628 ]
629 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100630 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100631 ":criticalsection",
632 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200633 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100634 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200635 ]
636}
637
638rtc_static_library("weak_ptr") {
639 sources = [
640 "weak_ptr.cc",
641 "weak_ptr.h",
642 ]
643 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100644 ":ptr_util",
645 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200646 ":sequenced_task_checker",
647 ]
648}
649
650rtc_static_library("rtc_numerics") {
651 sources = [
652 "numerics/exp_filter.cc",
653 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100654 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200655 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200656 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200657 ]
658 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100659 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200660 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100661 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200662 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200663 ]
664}
665
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200666rtc_source_set("rtc_json") {
667 defines = []
668 sources = [
Sam Zackrissonb45bdb52018-10-02 16:25:59 +0200669 "strings/json.cc",
670 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200671 ]
Jonas Olsson941a07c2018-09-13 10:07:07 +0200672 deps = [
673 ":stringutils",
674 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100675 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200676 if (rtc_build_json) {
677 public_deps = [
678 "//third_party/jsoncpp",
679 ]
680 } else {
681 include_dirs = [ "$rtc_jsoncpp_root" ]
682
683 # When defined changes the include path for json.h to where it is
684 # expected to be when building json outside of the standalone build.
685 defines += [ "WEBRTC_EXTERNAL_JSON" ]
686 }
687}
688
mbonadei9c5e5112017-09-05 05:17:02 -0700689rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000690 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500691 public_deps = []
692 if (!build_with_mozilla) {
693 public_deps += [ ":rtc_base_generic" ]
694 }
Kári Tristan Helgason62b13452018-10-12 12:57:49 +0200695 if (is_win || is_mac || is_ios) {
mbonadei310e32b2017-09-07 07:36:28 -0700696 sources = [
697 "noop.cc",
698 ]
699 }
mbonadei310e32b2017-09-07 07:36:28 -0700700}
701
702rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200703 cflags = []
704 cflags_cc = []
705 libs = []
706 defines = []
707 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100708 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100709 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200710 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100711 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200712 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200713 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200714 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200715 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200716 ]
717 public_deps = [
718 ":rtc_base_approved",
719 ]
720 public_configs = []
721
722 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
723
724 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200725 "asyncinvoker-inl.h",
726 "asyncinvoker.cc",
727 "asyncinvoker.h",
728 "asyncpacketsocket.cc",
729 "asyncpacketsocket.h",
730 "asyncresolverinterface.cc",
731 "asyncresolverinterface.h",
732 "asyncsocket.cc",
733 "asyncsocket.h",
734 "asynctcpsocket.cc",
735 "asynctcpsocket.h",
736 "asyncudpsocket.cc",
737 "asyncudpsocket.h",
738 "crc32.cc",
739 "crc32.h",
740 "cryptstring.cc",
741 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100742 "data_rate_limiter.cc",
743 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100744 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200745 "filerotatingstream.cc",
746 "filerotatingstream.h",
747 "fileutils.cc",
748 "fileutils.h",
749 "gunit_prod.h",
750 "helpers.cc",
751 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200752 "httpcommon.cc",
753 "httpcommon.h",
754 "ipaddress.cc",
755 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100756 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700757 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200758 "messagedigest.cc",
759 "messagedigest.h",
760 "messagehandler.cc",
761 "messagehandler.h",
762 "messagequeue.cc",
763 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800764 "nethelper.cc",
765 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200766 "nethelpers.cc",
767 "nethelpers.h",
768 "network.cc",
769 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200770 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200771 "networkmonitor.cc",
772 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100773 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200774 "nullsocketserver.cc",
775 "nullsocketserver.h",
776 "openssl.h",
777 "openssladapter.cc",
778 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700779 "opensslcertificate.cc",
780 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200781 "openssldigest.cc",
782 "openssldigest.h",
783 "opensslidentity.cc",
784 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700785 "opensslsessioncache.cc",
786 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200787 "opensslstreamadapter.cc",
788 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700789 "opensslutility.cc",
790 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200791 "physicalsocketserver.cc",
792 "physicalsocketserver.h",
793 "proxyinfo.cc",
794 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200795 "rtccertificate.cc",
796 "rtccertificate.h",
797 "rtccertificategenerator.cc",
798 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700799 "signalthread.cc",
800 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700801 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700802 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200803 "socket.h",
804 "socketadapters.cc",
805 "socketadapters.h",
806 "socketaddress.cc",
807 "socketaddress.h",
808 "socketaddresspair.cc",
809 "socketaddresspair.h",
810 "socketfactory.h",
811 "socketserver.h",
812 "socketstream.cc",
813 "socketstream.h",
814 "ssladapter.cc",
815 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700816 "sslcertificate.cc",
817 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200818 "sslfingerprint.cc",
819 "sslfingerprint.h",
820 "sslidentity.cc",
821 "sslidentity.h",
822 "sslstreamadapter.cc",
823 "sslstreamadapter.h",
824 "stream.cc",
825 "stream.h",
826 "thread.cc",
827 "thread.h",
828 ]
829
mbonadei310e32b2017-09-07 07:36:28 -0700830 visibility = [
831 ":rtc_base",
832 ":rtc_base_objc",
833 ]
834
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200836 include_dirs = [ "../../boringssl/src/include" ]
837 public_configs += [ ":rtc_base_chromium_config" ]
838 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 sources += [
840 "callback.h",
841 "logsinks.cc",
842 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100843 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200844 "optionsfile.cc",
845 "optionsfile.h",
846 "rollingaccumulator.h",
847 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200848 ]
849
850 if (is_win) {
851 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200852 "win32socketinit.h",
853 "win32socketserver.cc",
854 "win32socketserver.h",
855 ]
856 }
857 } # !build_with_chromium
858
859 if (rtc_build_ssl) {
860 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500861 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200862 configs += [ ":external_ssl_library" ]
863 }
864
865 if (is_android) {
866 sources += [
867 "ifaddrs-android.cc",
868 "ifaddrs-android.h",
869 ]
870
871 libs += [
872 "log",
873 "GLESv2",
874 ]
875 }
876
877 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700878 sources += [ "macifaddrs_converter.cc" ]
Kári Tristan Helgason62b13452018-10-12 12:57:49 +0200879 deps += [ "system:cocoa_threading" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200880 }
881
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100882 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200883 libs += [
884 "dl",
885 "rt",
886 "Xext",
887 "X11",
888 "Xcomposite",
889 "Xrender",
890 ]
891 }
892
893 if (is_linux) {
894 libs += [
895 "dl",
896 "rt",
897 ]
898 }
899
900 if (is_mac) {
901 sources += [
902 "macutils.cc",
903 "macutils.h",
904 ]
905 libs += [
906 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
907 "ApplicationServices.framework",
908 ]
909 }
910
911 if (is_win) {
912 sources += [
913 "win32.cc",
914 "win32.h",
915 "win32filesystem.cc",
916 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200917 "win32window.cc",
918 "win32window.h",
919 ]
920
921 libs += [
922 "crypt32.lib",
923 "iphlpapi.lib",
924 "secur32.lib",
925 ]
926
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200927 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
928 }
929
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700930 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200931 sources += [
932 "ifaddrs_converter.cc",
933 "ifaddrs_converter.h",
934 "unixfilesystem.cc",
935 "unixfilesystem.h",
936 ]
937 }
938
939 if (is_nacl) {
940 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
941 defines += [ "timezone=_timezone" ]
942 sources -= [ "ifaddrs_converter.cc" ]
943 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200944}
945
946rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000947 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200948 sources = [
949 "gtest_prod_util.h",
950 ]
951}
952
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953rtc_source_set("rtc_base_tests_utils") {
954 testonly = true
955 sources = [
956 # Also use this as a convenient dumping ground for misc files that are
957 # included by multiple targets below.
958 "cpu_time.cc",
959 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700960 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200961 "fakeclock.cc",
962 "fakeclock.h",
963 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700964 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200965 "fakesslidentity.h",
966 "firewallsocketserver.cc",
967 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800968 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200969 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200970 "memory_usage.cc",
971 "memory_usage.h",
972 "natserver.cc",
973 "natserver.h",
974 "natsocketfactory.cc",
975 "natsocketfactory.h",
976 "nattypes.cc",
977 "nattypes.h",
978 "proxyserver.cc",
979 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200980 "sigslottester.h",
981 "sigslottester.h.pump",
982 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700983 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200984 "testclient.cc",
985 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700986 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700988 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200989 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200990 "virtualsocketserver.cc",
991 "virtualsocketserver.h",
992 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200993 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100994 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200995 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100996 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +0200997 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200998 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100999 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001000 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001001 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001002 ]
1003 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001004 "//testing/gtest",
1005 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006}
1007
Tommida8781f2018-02-19 12:41:43 +01001008rtc_source_set("rtc_task_queue_for_test") {
1009 visibility = [ "*" ]
1010 testonly = true
1011
1012 sources = [
1013 "task_queue_for_test.cc",
1014 "task_queue_for_test.h",
1015 ]
1016 deps = [
1017 ":checks",
1018 ":rtc_base_approved",
1019 ":rtc_task_queue",
1020 ]
1021}
1022
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001023if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001024 rtc_source_set("sigslot_unittest") {
1025 testonly = true
1026 sources = [
1027 "sigslot_unittest.cc",
1028 ]
1029 deps = [
1030 ":rtc_base",
1031 ":rtc_base_tests_utils",
1032 "third_party/sigslot",
1033 ]
1034 }
1035
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 rtc_source_set("rtc_base_tests_main") {
1037 testonly = true
1038 sources = [
1039 "unittest_main.cc",
1040 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001041 deps = [
1042 ":rtc_base",
1043 ":rtc_base_approved",
1044 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001045 "../system_wrappers:field_trial",
1046 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001047 "../test:field_trial",
1048 "../test:test_support",
1049 ]
1050
1051 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001052 "//testing/gtest",
1053 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001054 }
1055
1056 rtc_source_set("rtc_base_nonparallel_tests") {
1057 testonly = true
1058
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001059 sources = [
1060 "cpu_time_unittest.cc",
1061 "filerotatingstream_unittest.cc",
1062 "nullsocketserver_unittest.cc",
1063 "physicalsocketserver_unittest.cc",
1064 "socket_unittest.cc",
1065 "socket_unittest.h",
1066 "socketaddress_unittest.cc",
1067 ]
1068 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001069 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001070 ":rtc_base",
1071 ":rtc_base_tests_main",
1072 ":rtc_base_tests_utils",
1073 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001074 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001075 "../test:test_support",
1076 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001077 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 ]
1079 if (is_win) {
1080 sources += [ "win32socketserver_unittest.cc" ]
1081 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001082 }
1083
1084 rtc_source_set("rtc_base_approved_unittests") {
1085 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001086 if (is_msan) {
1087 cflags = [ "-fsanitize=memory" ]
1088 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001089 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001090 "atomicops_unittest.cc",
1091 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001092 "bind_unittest.cc",
1093 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001094 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 "buffer_unittest.cc",
1096 "bufferqueue_unittest.cc",
1097 "bytebuffer_unittest.cc",
1098 "byteorder_unittest.cc",
1099 "copyonwritebuffer_unittest.cc",
1100 "criticalsection_unittest.cc",
1101 "event_tracer_unittest.cc",
1102 "event_unittest.cc",
1103 "file_unittest.cc",
1104 "function_view_unittest.cc",
1105 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001106 "numerics/histogram_percentile_counter_unittest.cc",
1107 "numerics/mod_ops_unittest.cc",
1108 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001109 "numerics/safe_compare_unittest.cc",
1110 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001111 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001112 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001113 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001114 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001115 "platform_thread_unittest.cc",
1116 "random_unittest.cc",
1117 "rate_limiter_unittest.cc",
1118 "rate_statistics_unittest.cc",
1119 "ratetracker_unittest.cc",
1120 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001121 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 "string_to_number_unittest.cc",
1123 "stringencode_unittest.cc",
1124 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001125 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001126 "stringutils_unittest.cc",
1127 "swap_queue_unittest.cc",
1128 "thread_annotations_unittest.cc",
1129 "thread_checker_unittest.cc",
1130 "timestampaligner_unittest.cc",
1131 "timeutils_unittest.cc",
1132 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001133 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 ]
henrika3ca48a62018-05-21 13:34:51 +02001135 if (is_win) {
1136 sources += [ "win/windows_version_unittest.cc" ]
1137 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001139 ":checks",
1140 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 ":rtc_base",
1142 ":rtc_base_approved",
1143 ":rtc_base_tests_main",
1144 ":rtc_base_tests_utils",
1145 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001146 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001147 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001148 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001149 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001150 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001151 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001152 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001154 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001155 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001156 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001157 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001158 }
1159
1160 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001161 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001162 testonly = true
1163
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001164 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001165 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001166 "task_queue_unittest.cc",
1167 ]
1168 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001169 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001170 ":rtc_base_tests_main",
1171 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001172 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001173 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001174 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001175 "../test:test_support",
1176 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001177 }
1178
1179 rtc_source_set("sequenced_task_checker_unittests") {
1180 testonly = true
1181
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 sources = [
1183 "sequenced_task_checker_unittest.cc",
1184 ]
1185 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001186 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001187 ":rtc_base_approved",
1188 ":rtc_base_tests_main",
1189 ":rtc_task_queue",
1190 ":sequenced_task_checker",
1191 "../test:test_support",
1192 ]
1193 }
1194
1195 rtc_source_set("weak_ptr_unittests") {
1196 testonly = true
1197
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 sources = [
1199 "weak_ptr_unittest.cc",
1200 ]
1201 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001202 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 ":rtc_base_tests_main",
1204 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001205 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001206 ":rtc_task_queue",
1207 ":weak_ptr",
1208 "../test:test_support",
1209 ]
1210 }
1211
1212 rtc_source_set("rtc_numerics_unittests") {
1213 testonly = true
1214
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001215 sources = [
1216 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001217 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001218 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001219 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001220 ]
1221 deps = [
1222 ":rtc_base_approved",
1223 ":rtc_base_tests_main",
1224 ":rtc_numerics",
1225 "../test:test_support",
1226 ]
1227 }
1228
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001229 rtc_source_set("rtc_json_unittests") {
1230 testonly = true
1231
1232 sources = [
1233 "strings/json_unittest.cc",
1234 ]
1235 deps = [
1236 ":rtc_base_tests_main",
1237 ":rtc_base_tests_utils",
1238 ":rtc_json",
1239 "../test:test_support",
1240 ]
1241 }
1242
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001243 rtc_source_set("rtc_base_unittests") {
1244 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001245 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001246
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001247 sources = [
1248 "callback_unittest.cc",
1249 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001250 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001251 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001252 "ipaddress_unittest.cc",
1253 "memory_usage_unittest.cc",
1254 "messagedigest_unittest.cc",
1255 "messagequeue_unittest.cc",
1256 "nat_unittest.cc",
1257 "network_unittest.cc",
1258 "optionsfile_unittest.cc",
1259 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001260 "rollingaccumulator_unittest.cc",
1261 "rtccertificate_unittest.cc",
1262 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001263 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001264 "sigslottester_unittest.cc",
1265 "stream_unittest.cc",
1266 "testclient_unittest.cc",
1267 "thread_unittest.cc",
1268 ]
1269 if (is_win) {
1270 sources += [
1271 "win32_unittest.cc",
1272 "win32window_unittest.cc",
1273 ]
1274 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001275 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001276 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001277 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001278 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001279 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001280 "ssladapter_unittest.cc",
1281 "sslidentity_unittest.cc",
1282 "sslstreamadapter_unittest.cc",
1283 ]
1284 }
1285 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001286 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001287 ":rtc_base_tests_main",
1288 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001289 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001290 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001291 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001293 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001294 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001295 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001296 ]
1297 public_deps = [
1298 ":rtc_base",
1299 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001300 if (build_with_chromium) {
1301 include_dirs = [ "../../boringssl/src/include" ]
1302 }
1303 if (rtc_build_ssl) {
1304 deps += [ "//third_party/boringssl" ]
1305 } else {
1306 configs += [ ":external_ssl_library" ]
1307 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001308 }
1309}
1310
Henrik Kjellander73e21802017-06-20 08:38:58 +02001311if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001312 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001313 java_files = [
1314 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001315 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001316 "java/src/org/webrtc/Logging.java",
1317 "java/src/org/webrtc/Size.java",
1318 "java/src/org/webrtc/ThreadUtils.java",
1319 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001320 }
1321}