blob: f7f5bb8b7e11749579a8a6aad098a1bd54a5a69c [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 }
mbonadei310e32b2017-09-07 07:36:28 -0700695 if (is_win) {
696 sources = [
697 "noop.cc",
698 ]
699 }
700 if (is_ios || is_mac) {
701 sources = [
702 "noop.mm",
703 ]
704 public_deps += [ ":rtc_base_objc" ]
705 }
706}
707
708if (is_ios || is_mac) {
709 rtc_source_set("rtc_base_objc") {
710 sources = [
711 "thread_darwin.mm",
712 ]
713 deps = [
714 ":rtc_base_generic",
715 ]
716 visibility = [ ":rtc_base" ]
717 }
718}
719
720rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200721 cflags = []
722 cflags_cc = []
723 libs = []
724 defines = []
725 deps = [
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",
Artem Titova76af0c2018-07-23 17:38:12 +0200730 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200731 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200732 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200733 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200734 ]
735 public_deps = [
736 ":rtc_base_approved",
737 ]
738 public_configs = []
739
740 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
741
742 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200743 "asyncinvoker-inl.h",
744 "asyncinvoker.cc",
745 "asyncinvoker.h",
746 "asyncpacketsocket.cc",
747 "asyncpacketsocket.h",
748 "asyncresolverinterface.cc",
749 "asyncresolverinterface.h",
750 "asyncsocket.cc",
751 "asyncsocket.h",
752 "asynctcpsocket.cc",
753 "asynctcpsocket.h",
754 "asyncudpsocket.cc",
755 "asyncudpsocket.h",
756 "crc32.cc",
757 "crc32.h",
758 "cryptstring.cc",
759 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100760 "data_rate_limiter.cc",
761 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100762 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200763 "filerotatingstream.cc",
764 "filerotatingstream.h",
765 "fileutils.cc",
766 "fileutils.h",
767 "gunit_prod.h",
768 "helpers.cc",
769 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200770 "httpcommon.cc",
771 "httpcommon.h",
772 "ipaddress.cc",
773 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100774 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700775 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200776 "messagedigest.cc",
777 "messagedigest.h",
778 "messagehandler.cc",
779 "messagehandler.h",
780 "messagequeue.cc",
781 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800782 "nethelper.cc",
783 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200784 "nethelpers.cc",
785 "nethelpers.h",
786 "network.cc",
787 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200788 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200789 "networkmonitor.cc",
790 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100791 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200792 "nullsocketserver.cc",
793 "nullsocketserver.h",
794 "openssl.h",
795 "openssladapter.cc",
796 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700797 "opensslcertificate.cc",
798 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200799 "openssldigest.cc",
800 "openssldigest.h",
801 "opensslidentity.cc",
802 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700803 "opensslsessioncache.cc",
804 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200805 "opensslstreamadapter.cc",
806 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700807 "opensslutility.cc",
808 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200809 "physicalsocketserver.cc",
810 "physicalsocketserver.h",
811 "proxyinfo.cc",
812 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200813 "rtccertificate.cc",
814 "rtccertificate.h",
815 "rtccertificategenerator.cc",
816 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700817 "signalthread.cc",
818 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700819 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700820 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200821 "socket.h",
822 "socketadapters.cc",
823 "socketadapters.h",
824 "socketaddress.cc",
825 "socketaddress.h",
826 "socketaddresspair.cc",
827 "socketaddresspair.h",
828 "socketfactory.h",
829 "socketserver.h",
830 "socketstream.cc",
831 "socketstream.h",
832 "ssladapter.cc",
833 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700834 "sslcertificate.cc",
835 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200836 "sslfingerprint.cc",
837 "sslfingerprint.h",
838 "sslidentity.cc",
839 "sslidentity.h",
840 "sslstreamadapter.cc",
841 "sslstreamadapter.h",
842 "stream.cc",
843 "stream.h",
844 "thread.cc",
845 "thread.h",
846 ]
847
mbonadei310e32b2017-09-07 07:36:28 -0700848 visibility = [
849 ":rtc_base",
850 ":rtc_base_objc",
851 ]
852
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200853 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200854 include_dirs = [ "../../boringssl/src/include" ]
855 public_configs += [ ":rtc_base_chromium_config" ]
856 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200857 sources += [
858 "callback.h",
859 "logsinks.cc",
860 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100861 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200862 "optionsfile.cc",
863 "optionsfile.h",
864 "rollingaccumulator.h",
865 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200866 ]
867
868 if (is_win) {
869 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200870 "win32socketinit.h",
871 "win32socketserver.cc",
872 "win32socketserver.h",
873 ]
874 }
875 } # !build_with_chromium
876
877 if (rtc_build_ssl) {
878 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500879 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200880 configs += [ ":external_ssl_library" ]
881 }
882
883 if (is_android) {
884 sources += [
885 "ifaddrs-android.cc",
886 "ifaddrs-android.h",
887 ]
888
889 libs += [
890 "log",
891 "GLESv2",
892 ]
893 }
894
895 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700896 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200897 }
898
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100899 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200900 libs += [
901 "dl",
902 "rt",
903 "Xext",
904 "X11",
905 "Xcomposite",
906 "Xrender",
907 ]
908 }
909
910 if (is_linux) {
911 libs += [
912 "dl",
913 "rt",
914 ]
915 }
916
917 if (is_mac) {
918 sources += [
919 "macutils.cc",
920 "macutils.h",
921 ]
922 libs += [
923 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
924 "ApplicationServices.framework",
925 ]
926 }
927
928 if (is_win) {
929 sources += [
930 "win32.cc",
931 "win32.h",
932 "win32filesystem.cc",
933 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200934 "win32window.cc",
935 "win32window.h",
936 ]
937
938 libs += [
939 "crypt32.lib",
940 "iphlpapi.lib",
941 "secur32.lib",
942 ]
943
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200944 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
945 }
946
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700947 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200948 sources += [
949 "ifaddrs_converter.cc",
950 "ifaddrs_converter.h",
951 "unixfilesystem.cc",
952 "unixfilesystem.h",
953 ]
954 }
955
956 if (is_nacl) {
957 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
958 defines += [ "timezone=_timezone" ]
959 sources -= [ "ifaddrs_converter.cc" ]
960 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200961}
962
963rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000964 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200965 sources = [
966 "gtest_prod_util.h",
967 ]
968}
969
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200970rtc_source_set("rtc_base_tests_utils") {
971 testonly = true
972 sources = [
973 # Also use this as a convenient dumping ground for misc files that are
974 # included by multiple targets below.
975 "cpu_time.cc",
976 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700977 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200978 "fakeclock.cc",
979 "fakeclock.h",
980 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700981 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200982 "fakesslidentity.h",
983 "firewallsocketserver.cc",
984 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800985 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200986 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987 "memory_usage.cc",
988 "memory_usage.h",
989 "natserver.cc",
990 "natserver.h",
991 "natsocketfactory.cc",
992 "natsocketfactory.h",
993 "nattypes.cc",
994 "nattypes.h",
995 "proxyserver.cc",
996 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200997 "sigslottester.h",
998 "sigslottester.h.pump",
999 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001000 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001001 "testclient.cc",
1002 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001003 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001004 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001005 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001007 "virtualsocketserver.cc",
1008 "virtualsocketserver.h",
1009 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001010 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001011 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001012 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001013 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001014 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001015 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001016 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001017 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001018 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 ]
1020 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 "//testing/gtest",
1022 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001023}
1024
Tommida8781f2018-02-19 12:41:43 +01001025rtc_source_set("rtc_task_queue_for_test") {
1026 visibility = [ "*" ]
1027 testonly = true
1028
1029 sources = [
1030 "task_queue_for_test.cc",
1031 "task_queue_for_test.h",
1032 ]
1033 deps = [
1034 ":checks",
1035 ":rtc_base_approved",
1036 ":rtc_task_queue",
1037 ]
1038}
1039
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001041 rtc_source_set("sigslot_unittest") {
1042 testonly = true
1043 sources = [
1044 "sigslot_unittest.cc",
1045 ]
1046 deps = [
1047 ":rtc_base",
1048 ":rtc_base_tests_utils",
1049 "third_party/sigslot",
1050 ]
1051 }
1052
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001053 rtc_source_set("rtc_base_tests_main") {
1054 testonly = true
1055 sources = [
1056 "unittest_main.cc",
1057 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001058 deps = [
1059 ":rtc_base",
1060 ":rtc_base_approved",
1061 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001062 "../system_wrappers:field_trial",
1063 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 "../test:field_trial",
1065 "../test:test_support",
1066 ]
1067
1068 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001069 "//testing/gtest",
1070 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001071 }
1072
1073 rtc_source_set("rtc_base_nonparallel_tests") {
1074 testonly = true
1075
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001076 sources = [
1077 "cpu_time_unittest.cc",
1078 "filerotatingstream_unittest.cc",
1079 "nullsocketserver_unittest.cc",
1080 "physicalsocketserver_unittest.cc",
1081 "socket_unittest.cc",
1082 "socket_unittest.h",
1083 "socketaddress_unittest.cc",
1084 ]
1085 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001086 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001087 ":rtc_base",
1088 ":rtc_base_tests_main",
1089 ":rtc_base_tests_utils",
1090 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001091 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001092 "../test:test_support",
1093 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001094 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 ]
1096 if (is_win) {
1097 sources += [ "win32socketserver_unittest.cc" ]
1098 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001099 }
1100
1101 rtc_source_set("rtc_base_approved_unittests") {
1102 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001103 if (is_msan) {
1104 cflags = [ "-fsanitize=memory" ]
1105 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001106 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001107 "atomicops_unittest.cc",
1108 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001109 "bind_unittest.cc",
1110 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001111 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001112 "buffer_unittest.cc",
1113 "bufferqueue_unittest.cc",
1114 "bytebuffer_unittest.cc",
1115 "byteorder_unittest.cc",
1116 "copyonwritebuffer_unittest.cc",
1117 "criticalsection_unittest.cc",
1118 "event_tracer_unittest.cc",
1119 "event_unittest.cc",
1120 "file_unittest.cc",
1121 "function_view_unittest.cc",
1122 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001123 "numerics/histogram_percentile_counter_unittest.cc",
1124 "numerics/mod_ops_unittest.cc",
1125 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001126 "numerics/safe_compare_unittest.cc",
1127 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001128 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001129 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001130 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001131 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001132 "platform_thread_unittest.cc",
1133 "random_unittest.cc",
1134 "rate_limiter_unittest.cc",
1135 "rate_statistics_unittest.cc",
1136 "ratetracker_unittest.cc",
1137 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001138 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 "string_to_number_unittest.cc",
1140 "stringencode_unittest.cc",
1141 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001142 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001143 "stringutils_unittest.cc",
1144 "swap_queue_unittest.cc",
1145 "thread_annotations_unittest.cc",
1146 "thread_checker_unittest.cc",
1147 "timestampaligner_unittest.cc",
1148 "timeutils_unittest.cc",
1149 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001150 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001151 ]
henrika3ca48a62018-05-21 13:34:51 +02001152 if (is_win) {
1153 sources += [ "win/windows_version_unittest.cc" ]
1154 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001155 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001156 ":checks",
1157 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001158 ":rtc_base",
1159 ":rtc_base_approved",
1160 ":rtc_base_tests_main",
1161 ":rtc_base_tests_utils",
1162 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001163 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001164 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001165 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001166 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001167 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001168 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001169 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001170 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001171 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001172 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001173 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001174 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001175 }
1176
1177 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001178 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001179 testonly = true
1180
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001181 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001182 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001183 "task_queue_unittest.cc",
1184 ]
1185 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001186 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001187 ":rtc_base_tests_main",
1188 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001189 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001190 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001191 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001192 "../test:test_support",
1193 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001194 }
1195
1196 rtc_source_set("sequenced_task_checker_unittests") {
1197 testonly = true
1198
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 sources = [
1200 "sequenced_task_checker_unittest.cc",
1201 ]
1202 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001203 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001204 ":rtc_base_approved",
1205 ":rtc_base_tests_main",
1206 ":rtc_task_queue",
1207 ":sequenced_task_checker",
1208 "../test:test_support",
1209 ]
1210 }
1211
1212 rtc_source_set("weak_ptr_unittests") {
1213 testonly = true
1214
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001215 sources = [
1216 "weak_ptr_unittest.cc",
1217 ]
1218 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001219 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001220 ":rtc_base_tests_main",
1221 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001222 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001223 ":rtc_task_queue",
1224 ":weak_ptr",
1225 "../test:test_support",
1226 ]
1227 }
1228
1229 rtc_source_set("rtc_numerics_unittests") {
1230 testonly = true
1231
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001232 sources = [
1233 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001234 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001235 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001236 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001237 ]
1238 deps = [
1239 ":rtc_base_approved",
1240 ":rtc_base_tests_main",
1241 ":rtc_numerics",
1242 "../test:test_support",
1243 ]
1244 }
1245
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001246 rtc_source_set("rtc_json_unittests") {
1247 testonly = true
1248
1249 sources = [
1250 "strings/json_unittest.cc",
1251 ]
1252 deps = [
1253 ":rtc_base_tests_main",
1254 ":rtc_base_tests_utils",
1255 ":rtc_json",
1256 "../test:test_support",
1257 ]
1258 }
1259
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001260 rtc_source_set("rtc_base_unittests") {
1261 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001262 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001263
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001264 sources = [
1265 "callback_unittest.cc",
1266 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001267 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001268 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001269 "ipaddress_unittest.cc",
1270 "memory_usage_unittest.cc",
1271 "messagedigest_unittest.cc",
1272 "messagequeue_unittest.cc",
1273 "nat_unittest.cc",
1274 "network_unittest.cc",
1275 "optionsfile_unittest.cc",
1276 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001277 "rollingaccumulator_unittest.cc",
1278 "rtccertificate_unittest.cc",
1279 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001280 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001281 "sigslottester_unittest.cc",
1282 "stream_unittest.cc",
1283 "testclient_unittest.cc",
1284 "thread_unittest.cc",
1285 ]
1286 if (is_win) {
1287 sources += [
1288 "win32_unittest.cc",
1289 "win32window_unittest.cc",
1290 ]
1291 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001292 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001294 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001295 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001296 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001297 "ssladapter_unittest.cc",
1298 "sslidentity_unittest.cc",
1299 "sslstreamadapter_unittest.cc",
1300 ]
1301 }
1302 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001303 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001304 ":rtc_base_tests_main",
1305 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001306 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001307 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001308 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001309 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001310 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001311 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001312 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001313 ]
1314 public_deps = [
1315 ":rtc_base",
1316 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001317 if (build_with_chromium) {
1318 include_dirs = [ "../../boringssl/src/include" ]
1319 }
1320 if (rtc_build_ssl) {
1321 deps += [ "//third_party/boringssl" ]
1322 } else {
1323 configs += [ ":external_ssl_library" ]
1324 }
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}