blob: a4c2205fd89862c7015f4b0ce1076ee47245d56b [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 = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200691 cflags = []
692 cflags_cc = []
693 libs = []
694 defines = []
695 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100696 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100697 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200698 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100699 "../api:array_view",
Sebastian Janssone07864e2018-10-15 09:28:15 +0200700 "network:sent_packet",
Artem Titova76af0c2018-07-23 17:38:12 +0200701 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200702 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200703 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200704 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200705 ]
706 public_deps = [
707 ":rtc_base_approved",
708 ]
709 public_configs = []
710
711 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
712
713 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200714 "asyncinvoker-inl.h",
715 "asyncinvoker.cc",
716 "asyncinvoker.h",
717 "asyncpacketsocket.cc",
718 "asyncpacketsocket.h",
719 "asyncresolverinterface.cc",
720 "asyncresolverinterface.h",
721 "asyncsocket.cc",
722 "asyncsocket.h",
723 "asynctcpsocket.cc",
724 "asynctcpsocket.h",
725 "asyncudpsocket.cc",
726 "asyncudpsocket.h",
727 "crc32.cc",
728 "crc32.h",
729 "cryptstring.cc",
730 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100731 "data_rate_limiter.cc",
732 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100733 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200734 "filerotatingstream.cc",
735 "filerotatingstream.h",
736 "fileutils.cc",
737 "fileutils.h",
738 "gunit_prod.h",
739 "helpers.cc",
740 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200741 "httpcommon.cc",
742 "httpcommon.h",
743 "ipaddress.cc",
744 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100745 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700746 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200747 "messagedigest.cc",
748 "messagedigest.h",
749 "messagehandler.cc",
750 "messagehandler.h",
751 "messagequeue.cc",
752 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800753 "nethelper.cc",
754 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200755 "nethelpers.cc",
756 "nethelpers.h",
757 "network.cc",
758 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200759 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200760 "networkmonitor.cc",
761 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100762 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200763 "nullsocketserver.cc",
764 "nullsocketserver.h",
765 "openssl.h",
766 "openssladapter.cc",
767 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700768 "opensslcertificate.cc",
769 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200770 "openssldigest.cc",
771 "openssldigest.h",
772 "opensslidentity.cc",
773 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700774 "opensslsessioncache.cc",
775 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200776 "opensslstreamadapter.cc",
777 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700778 "opensslutility.cc",
779 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200780 "physicalsocketserver.cc",
781 "physicalsocketserver.h",
782 "proxyinfo.cc",
783 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200784 "rtccertificate.cc",
785 "rtccertificate.h",
786 "rtccertificategenerator.cc",
787 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700788 "signalthread.cc",
789 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700790 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700791 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200792 "socket.h",
793 "socketadapters.cc",
794 "socketadapters.h",
795 "socketaddress.cc",
796 "socketaddress.h",
797 "socketaddresspair.cc",
798 "socketaddresspair.h",
799 "socketfactory.h",
800 "socketserver.h",
801 "socketstream.cc",
802 "socketstream.h",
803 "ssladapter.cc",
804 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700805 "sslcertificate.cc",
806 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200807 "sslfingerprint.cc",
808 "sslfingerprint.h",
809 "sslidentity.cc",
810 "sslidentity.h",
811 "sslstreamadapter.cc",
812 "sslstreamadapter.h",
813 "stream.cc",
814 "stream.h",
815 "thread.cc",
816 "thread.h",
817 ]
818
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200819 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 include_dirs = [ "../../boringssl/src/include" ]
821 public_configs += [ ":rtc_base_chromium_config" ]
822 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200823 sources += [
824 "callback.h",
825 "logsinks.cc",
826 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100827 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200828 "optionsfile.cc",
829 "optionsfile.h",
830 "rollingaccumulator.h",
831 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200832 ]
833
834 if (is_win) {
835 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200836 "win32socketinit.h",
837 "win32socketserver.cc",
838 "win32socketserver.h",
839 ]
840 }
841 } # !build_with_chromium
842
843 if (rtc_build_ssl) {
844 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500845 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200846 configs += [ ":external_ssl_library" ]
847 }
848
849 if (is_android) {
850 sources += [
851 "ifaddrs-android.cc",
852 "ifaddrs-android.h",
853 ]
854
855 libs += [
856 "log",
857 "GLESv2",
858 ]
859 }
860
861 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700862 sources += [ "macifaddrs_converter.cc" ]
Kári Tristan Helgason62b13452018-10-12 12:57:49 +0200863 deps += [ "system:cocoa_threading" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200864 }
865
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100866 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200867 libs += [
868 "dl",
869 "rt",
870 "Xext",
871 "X11",
872 "Xcomposite",
873 "Xrender",
874 ]
875 }
876
877 if (is_linux) {
878 libs += [
879 "dl",
880 "rt",
881 ]
882 }
883
884 if (is_mac) {
885 sources += [
886 "macutils.cc",
887 "macutils.h",
888 ]
889 libs += [
890 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
891 "ApplicationServices.framework",
892 ]
893 }
894
895 if (is_win) {
896 sources += [
897 "win32.cc",
898 "win32.h",
899 "win32filesystem.cc",
900 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200901 "win32window.cc",
902 "win32window.h",
903 ]
904
905 libs += [
906 "crypt32.lib",
907 "iphlpapi.lib",
908 "secur32.lib",
909 ]
910
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200911 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
912 }
913
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700914 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200915 sources += [
916 "ifaddrs_converter.cc",
917 "ifaddrs_converter.h",
918 "unixfilesystem.cc",
919 "unixfilesystem.h",
920 ]
921 }
922
923 if (is_nacl) {
924 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
925 defines += [ "timezone=_timezone" ]
926 sources -= [ "ifaddrs_converter.cc" ]
927 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200928}
929
930rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000931 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200932 sources = [
933 "gtest_prod_util.h",
934 ]
935}
936
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200937rtc_source_set("rtc_base_tests_utils") {
938 testonly = true
939 sources = [
940 # Also use this as a convenient dumping ground for misc files that are
941 # included by multiple targets below.
942 "cpu_time.cc",
943 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700944 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200945 "fakeclock.cc",
946 "fakeclock.h",
947 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700948 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200949 "fakesslidentity.h",
950 "firewallsocketserver.cc",
951 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800952 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200954 "memory_usage.cc",
955 "memory_usage.h",
956 "natserver.cc",
957 "natserver.h",
958 "natsocketfactory.cc",
959 "natsocketfactory.h",
960 "nattypes.cc",
961 "nattypes.h",
962 "proxyserver.cc",
963 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200964 "sigslottester.h",
965 "sigslottester.h.pump",
966 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700967 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200968 "testclient.cc",
969 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700970 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200971 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700972 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200973 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200974 "virtualsocketserver.cc",
975 "virtualsocketserver.h",
976 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200977 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100978 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200979 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100980 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +0200981 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200982 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100983 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +0200984 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200985 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200986 ]
987 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200988 "//testing/gtest",
989 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200990}
991
Tommida8781f2018-02-19 12:41:43 +0100992rtc_source_set("rtc_task_queue_for_test") {
993 visibility = [ "*" ]
994 testonly = true
995
996 sources = [
997 "task_queue_for_test.cc",
998 "task_queue_for_test.h",
999 ]
1000 deps = [
1001 ":checks",
1002 ":rtc_base_approved",
1003 ":rtc_task_queue",
1004 ]
1005}
1006
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001007if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001008 rtc_source_set("sigslot_unittest") {
1009 testonly = true
1010 sources = [
1011 "sigslot_unittest.cc",
1012 ]
1013 deps = [
1014 ":rtc_base",
1015 ":rtc_base_tests_utils",
1016 "third_party/sigslot",
1017 ]
1018 }
1019
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001020 rtc_source_set("rtc_base_tests_main") {
1021 testonly = true
1022 sources = [
1023 "unittest_main.cc",
1024 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 deps = [
1026 ":rtc_base",
1027 ":rtc_base_approved",
1028 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001029 "../system_wrappers:field_trial",
1030 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 "../test:field_trial",
1032 "../test:test_support",
1033 ]
1034
1035 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 "//testing/gtest",
1037 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001038 }
1039
1040 rtc_source_set("rtc_base_nonparallel_tests") {
1041 testonly = true
1042
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001043 sources = [
1044 "cpu_time_unittest.cc",
1045 "filerotatingstream_unittest.cc",
1046 "nullsocketserver_unittest.cc",
1047 "physicalsocketserver_unittest.cc",
1048 "socket_unittest.cc",
1049 "socket_unittest.h",
1050 "socketaddress_unittest.cc",
1051 ]
1052 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001053 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001054 ":rtc_base",
1055 ":rtc_base_tests_main",
1056 ":rtc_base_tests_utils",
1057 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001058 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001059 "../test:test_support",
1060 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001061 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001062 ]
1063 if (is_win) {
1064 sources += [ "win32socketserver_unittest.cc" ]
1065 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 }
1067
1068 rtc_source_set("rtc_base_approved_unittests") {
1069 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001070 if (is_msan) {
1071 cflags = [ "-fsanitize=memory" ]
1072 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001073 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001074 "atomicops_unittest.cc",
1075 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001076 "bind_unittest.cc",
1077 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001078 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001079 "buffer_unittest.cc",
1080 "bufferqueue_unittest.cc",
1081 "bytebuffer_unittest.cc",
1082 "byteorder_unittest.cc",
1083 "copyonwritebuffer_unittest.cc",
1084 "criticalsection_unittest.cc",
1085 "event_tracer_unittest.cc",
1086 "event_unittest.cc",
1087 "file_unittest.cc",
1088 "function_view_unittest.cc",
1089 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001090 "numerics/histogram_percentile_counter_unittest.cc",
1091 "numerics/mod_ops_unittest.cc",
1092 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001093 "numerics/safe_compare_unittest.cc",
1094 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001095 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001096 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001097 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001098 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001099 "platform_thread_unittest.cc",
1100 "random_unittest.cc",
1101 "rate_limiter_unittest.cc",
1102 "rate_statistics_unittest.cc",
1103 "ratetracker_unittest.cc",
1104 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001105 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001106 "string_to_number_unittest.cc",
1107 "stringencode_unittest.cc",
1108 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001109 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001110 "stringutils_unittest.cc",
1111 "swap_queue_unittest.cc",
1112 "thread_annotations_unittest.cc",
1113 "thread_checker_unittest.cc",
1114 "timestampaligner_unittest.cc",
1115 "timeutils_unittest.cc",
1116 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001117 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001118 ]
henrika3ca48a62018-05-21 13:34:51 +02001119 if (is_win) {
1120 sources += [ "win/windows_version_unittest.cc" ]
1121 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001123 ":checks",
1124 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001125 ":rtc_base",
1126 ":rtc_base_approved",
1127 ":rtc_base_tests_main",
1128 ":rtc_base_tests_utils",
1129 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001130 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001131 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001132 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001133 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001134 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001135 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001136 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001138 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001139 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001140 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001142 }
1143
1144 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001145 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001146 testonly = true
1147
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001148 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001149 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001150 "task_queue_unittest.cc",
1151 ]
1152 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001153 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001154 ":rtc_base_tests_main",
1155 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001156 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001157 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001158 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001159 "../test:test_support",
1160 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001161 }
1162
1163 rtc_source_set("sequenced_task_checker_unittests") {
1164 testonly = true
1165
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001166 sources = [
1167 "sequenced_task_checker_unittest.cc",
1168 ]
1169 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001170 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001171 ":rtc_base_approved",
1172 ":rtc_base_tests_main",
1173 ":rtc_task_queue",
1174 ":sequenced_task_checker",
1175 "../test:test_support",
1176 ]
1177 }
1178
1179 rtc_source_set("weak_ptr_unittests") {
1180 testonly = true
1181
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 sources = [
1183 "weak_ptr_unittest.cc",
1184 ]
1185 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001186 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001187 ":rtc_base_tests_main",
1188 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001189 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001190 ":rtc_task_queue",
1191 ":weak_ptr",
1192 "../test:test_support",
1193 ]
1194 }
1195
1196 rtc_source_set("rtc_numerics_unittests") {
1197 testonly = true
1198
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 sources = [
1200 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001201 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001202 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001203 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001204 ]
1205 deps = [
1206 ":rtc_base_approved",
1207 ":rtc_base_tests_main",
1208 ":rtc_numerics",
1209 "../test:test_support",
1210 ]
1211 }
1212
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001213 rtc_source_set("rtc_json_unittests") {
1214 testonly = true
1215
1216 sources = [
1217 "strings/json_unittest.cc",
1218 ]
1219 deps = [
1220 ":rtc_base_tests_main",
1221 ":rtc_base_tests_utils",
1222 ":rtc_json",
1223 "../test:test_support",
1224 ]
1225 }
1226
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001227 rtc_source_set("rtc_base_unittests") {
1228 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001229 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001230
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001231 sources = [
1232 "callback_unittest.cc",
1233 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001234 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001235 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001236 "ipaddress_unittest.cc",
1237 "memory_usage_unittest.cc",
1238 "messagedigest_unittest.cc",
1239 "messagequeue_unittest.cc",
1240 "nat_unittest.cc",
1241 "network_unittest.cc",
1242 "optionsfile_unittest.cc",
1243 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001244 "rollingaccumulator_unittest.cc",
1245 "rtccertificate_unittest.cc",
1246 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001247 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001248 "sigslottester_unittest.cc",
1249 "stream_unittest.cc",
1250 "testclient_unittest.cc",
1251 "thread_unittest.cc",
1252 ]
1253 if (is_win) {
1254 sources += [
1255 "win32_unittest.cc",
1256 "win32window_unittest.cc",
1257 ]
1258 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001259 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001260 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001261 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001262 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001263 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001264 "ssladapter_unittest.cc",
1265 "sslidentity_unittest.cc",
1266 "sslstreamadapter_unittest.cc",
1267 ]
1268 }
1269 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001270 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001271 ":rtc_base_tests_main",
1272 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001273 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001274 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001275 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001276 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001277 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001278 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001279 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001280 ]
1281 public_deps = [
1282 ":rtc_base",
1283 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001284 if (build_with_chromium) {
1285 include_dirs = [ "../../boringssl/src/include" ]
1286 }
1287 if (rtc_build_ssl) {
1288 deps += [ "//third_party/boringssl" ]
1289 } else {
1290 configs += [ ":external_ssl_library" ]
1291 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 }
1293}
1294
Henrik Kjellander73e21802017-06-20 08:38:58 +02001295if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001296 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001297 java_files = [
1298 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001299 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001300 "java/src/org/webrtc/Logging.java",
1301 "java/src/org/webrtc/Size.java",
1302 "java/src/org/webrtc/ThreadUtils.java",
1303 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001304 }
1305}