blob: faec2696969a4881b9c1fae6b7a0d7caa03c8ea9 [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",
Artem Titova76af0c2018-07-23 17:38:12 +0200700 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200701 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200702 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200703 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200704 ]
705 public_deps = [
706 ":rtc_base_approved",
707 ]
708 public_configs = []
709
710 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
711
712 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200713 "asyncinvoker-inl.h",
714 "asyncinvoker.cc",
715 "asyncinvoker.h",
716 "asyncpacketsocket.cc",
717 "asyncpacketsocket.h",
718 "asyncresolverinterface.cc",
719 "asyncresolverinterface.h",
720 "asyncsocket.cc",
721 "asyncsocket.h",
722 "asynctcpsocket.cc",
723 "asynctcpsocket.h",
724 "asyncudpsocket.cc",
725 "asyncudpsocket.h",
726 "crc32.cc",
727 "crc32.h",
728 "cryptstring.cc",
729 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100730 "data_rate_limiter.cc",
731 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100732 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200733 "filerotatingstream.cc",
734 "filerotatingstream.h",
735 "fileutils.cc",
736 "fileutils.h",
737 "gunit_prod.h",
738 "helpers.cc",
739 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200740 "httpcommon.cc",
741 "httpcommon.h",
742 "ipaddress.cc",
743 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100744 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700745 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200746 "messagedigest.cc",
747 "messagedigest.h",
748 "messagehandler.cc",
749 "messagehandler.h",
750 "messagequeue.cc",
751 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800752 "nethelper.cc",
753 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200754 "nethelpers.cc",
755 "nethelpers.h",
756 "network.cc",
757 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200758 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200759 "networkmonitor.cc",
760 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100761 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200762 "nullsocketserver.cc",
763 "nullsocketserver.h",
764 "openssl.h",
765 "openssladapter.cc",
766 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700767 "opensslcertificate.cc",
768 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200769 "openssldigest.cc",
770 "openssldigest.h",
771 "opensslidentity.cc",
772 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700773 "opensslsessioncache.cc",
774 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200775 "opensslstreamadapter.cc",
776 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700777 "opensslutility.cc",
778 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200779 "physicalsocketserver.cc",
780 "physicalsocketserver.h",
781 "proxyinfo.cc",
782 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200783 "rtccertificate.cc",
784 "rtccertificate.h",
785 "rtccertificategenerator.cc",
786 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700787 "signalthread.cc",
788 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700789 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700790 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200791 "socket.h",
792 "socketadapters.cc",
793 "socketadapters.h",
794 "socketaddress.cc",
795 "socketaddress.h",
796 "socketaddresspair.cc",
797 "socketaddresspair.h",
798 "socketfactory.h",
799 "socketserver.h",
800 "socketstream.cc",
801 "socketstream.h",
802 "ssladapter.cc",
803 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700804 "sslcertificate.cc",
805 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806 "sslfingerprint.cc",
807 "sslfingerprint.h",
808 "sslidentity.cc",
809 "sslidentity.h",
810 "sslstreamadapter.cc",
811 "sslstreamadapter.h",
812 "stream.cc",
813 "stream.h",
814 "thread.cc",
815 "thread.h",
816 ]
817
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200818 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200819 include_dirs = [ "../../boringssl/src/include" ]
820 public_configs += [ ":rtc_base_chromium_config" ]
821 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200822 sources += [
823 "callback.h",
824 "logsinks.cc",
825 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100826 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200827 "optionsfile.cc",
828 "optionsfile.h",
829 "rollingaccumulator.h",
830 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200831 ]
832
833 if (is_win) {
834 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 "win32socketinit.h",
836 "win32socketserver.cc",
837 "win32socketserver.h",
838 ]
839 }
840 } # !build_with_chromium
841
842 if (rtc_build_ssl) {
843 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500844 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200845 configs += [ ":external_ssl_library" ]
846 }
847
848 if (is_android) {
849 sources += [
850 "ifaddrs-android.cc",
851 "ifaddrs-android.h",
852 ]
853
854 libs += [
855 "log",
856 "GLESv2",
857 ]
858 }
859
860 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700861 sources += [ "macifaddrs_converter.cc" ]
Kári Tristan Helgason62b13452018-10-12 12:57:49 +0200862 deps += [ "system:cocoa_threading" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200863 }
864
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100865 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200866 libs += [
867 "dl",
868 "rt",
869 "Xext",
870 "X11",
871 "Xcomposite",
872 "Xrender",
873 ]
874 }
875
876 if (is_linux) {
877 libs += [
878 "dl",
879 "rt",
880 ]
881 }
882
883 if (is_mac) {
884 sources += [
885 "macutils.cc",
886 "macutils.h",
887 ]
888 libs += [
889 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
890 "ApplicationServices.framework",
891 ]
892 }
893
894 if (is_win) {
895 sources += [
896 "win32.cc",
897 "win32.h",
898 "win32filesystem.cc",
899 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200900 "win32window.cc",
901 "win32window.h",
902 ]
903
904 libs += [
905 "crypt32.lib",
906 "iphlpapi.lib",
907 "secur32.lib",
908 ]
909
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200910 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
911 }
912
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700913 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200914 sources += [
915 "ifaddrs_converter.cc",
916 "ifaddrs_converter.h",
917 "unixfilesystem.cc",
918 "unixfilesystem.h",
919 ]
920 }
921
922 if (is_nacl) {
923 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
924 defines += [ "timezone=_timezone" ]
925 sources -= [ "ifaddrs_converter.cc" ]
926 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200927}
928
929rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000930 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200931 sources = [
932 "gtest_prod_util.h",
933 ]
934}
935
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200936rtc_source_set("rtc_base_tests_utils") {
937 testonly = true
938 sources = [
939 # Also use this as a convenient dumping ground for misc files that are
940 # included by multiple targets below.
941 "cpu_time.cc",
942 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700943 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200944 "fakeclock.cc",
945 "fakeclock.h",
946 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700947 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200948 "fakesslidentity.h",
949 "firewallsocketserver.cc",
950 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800951 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200952 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 "memory_usage.cc",
954 "memory_usage.h",
955 "natserver.cc",
956 "natserver.h",
957 "natsocketfactory.cc",
958 "natsocketfactory.h",
959 "nattypes.cc",
960 "nattypes.h",
961 "proxyserver.cc",
962 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200963 "sigslottester.h",
964 "sigslottester.h.pump",
965 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700966 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200967 "testclient.cc",
968 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700969 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200970 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700971 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200972 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200973 "virtualsocketserver.cc",
974 "virtualsocketserver.h",
975 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100977 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200978 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100979 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +0200980 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200981 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100982 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +0200983 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200984 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200985 ]
986 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987 "//testing/gtest",
988 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200989}
990
Tommida8781f2018-02-19 12:41:43 +0100991rtc_source_set("rtc_task_queue_for_test") {
992 visibility = [ "*" ]
993 testonly = true
994
995 sources = [
996 "task_queue_for_test.cc",
997 "task_queue_for_test.h",
998 ]
999 deps = [
1000 ":checks",
1001 ":rtc_base_approved",
1002 ":rtc_task_queue",
1003 ]
1004}
1005
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001007 rtc_source_set("sigslot_unittest") {
1008 testonly = true
1009 sources = [
1010 "sigslot_unittest.cc",
1011 ]
1012 deps = [
1013 ":rtc_base",
1014 ":rtc_base_tests_utils",
1015 "third_party/sigslot",
1016 ]
1017 }
1018
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 rtc_source_set("rtc_base_tests_main") {
1020 testonly = true
1021 sources = [
1022 "unittest_main.cc",
1023 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 deps = [
1025 ":rtc_base",
1026 ":rtc_base_approved",
1027 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001028 "../system_wrappers:field_trial",
1029 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001030 "../test:field_trial",
1031 "../test:test_support",
1032 ]
1033
1034 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001035 "//testing/gtest",
1036 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001037 }
1038
1039 rtc_source_set("rtc_base_nonparallel_tests") {
1040 testonly = true
1041
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001042 sources = [
1043 "cpu_time_unittest.cc",
1044 "filerotatingstream_unittest.cc",
1045 "nullsocketserver_unittest.cc",
1046 "physicalsocketserver_unittest.cc",
1047 "socket_unittest.cc",
1048 "socket_unittest.h",
1049 "socketaddress_unittest.cc",
1050 ]
1051 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001052 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001053 ":rtc_base",
1054 ":rtc_base_tests_main",
1055 ":rtc_base_tests_utils",
1056 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001057 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001058 "../test:test_support",
1059 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001060 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001061 ]
1062 if (is_win) {
1063 sources += [ "win32socketserver_unittest.cc" ]
1064 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001065 }
1066
1067 rtc_source_set("rtc_base_approved_unittests") {
1068 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001069 if (is_msan) {
1070 cflags = [ "-fsanitize=memory" ]
1071 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001072 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001073 "atomicops_unittest.cc",
1074 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001075 "bind_unittest.cc",
1076 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001077 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 "buffer_unittest.cc",
1079 "bufferqueue_unittest.cc",
1080 "bytebuffer_unittest.cc",
1081 "byteorder_unittest.cc",
1082 "copyonwritebuffer_unittest.cc",
1083 "criticalsection_unittest.cc",
1084 "event_tracer_unittest.cc",
1085 "event_unittest.cc",
1086 "file_unittest.cc",
1087 "function_view_unittest.cc",
1088 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001089 "numerics/histogram_percentile_counter_unittest.cc",
1090 "numerics/mod_ops_unittest.cc",
1091 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001092 "numerics/safe_compare_unittest.cc",
1093 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001094 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001096 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001097 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001098 "platform_thread_unittest.cc",
1099 "random_unittest.cc",
1100 "rate_limiter_unittest.cc",
1101 "rate_statistics_unittest.cc",
1102 "ratetracker_unittest.cc",
1103 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001104 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001105 "string_to_number_unittest.cc",
1106 "stringencode_unittest.cc",
1107 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001108 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001109 "stringutils_unittest.cc",
1110 "swap_queue_unittest.cc",
1111 "thread_annotations_unittest.cc",
1112 "thread_checker_unittest.cc",
1113 "timestampaligner_unittest.cc",
1114 "timeutils_unittest.cc",
1115 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001116 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001117 ]
henrika3ca48a62018-05-21 13:34:51 +02001118 if (is_win) {
1119 sources += [ "win/windows_version_unittest.cc" ]
1120 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001121 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001122 ":checks",
1123 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001124 ":rtc_base",
1125 ":rtc_base_approved",
1126 ":rtc_base_tests_main",
1127 ":rtc_base_tests_utils",
1128 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001129 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001130 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001131 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001132 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001133 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001135 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001136 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001137 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001138 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001139 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001140 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 }
1142
1143 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001144 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001145 testonly = true
1146
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001147 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001148 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001149 "task_queue_unittest.cc",
1150 ]
1151 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001152 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 ":rtc_base_tests_main",
1154 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001155 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001156 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001157 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001158 "../test:test_support",
1159 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 }
1161
1162 rtc_source_set("sequenced_task_checker_unittests") {
1163 testonly = true
1164
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001165 sources = [
1166 "sequenced_task_checker_unittest.cc",
1167 ]
1168 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001169 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001170 ":rtc_base_approved",
1171 ":rtc_base_tests_main",
1172 ":rtc_task_queue",
1173 ":sequenced_task_checker",
1174 "../test:test_support",
1175 ]
1176 }
1177
1178 rtc_source_set("weak_ptr_unittests") {
1179 testonly = true
1180
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001181 sources = [
1182 "weak_ptr_unittest.cc",
1183 ]
1184 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001185 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001186 ":rtc_base_tests_main",
1187 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001188 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001189 ":rtc_task_queue",
1190 ":weak_ptr",
1191 "../test:test_support",
1192 ]
1193 }
1194
1195 rtc_source_set("rtc_numerics_unittests") {
1196 testonly = true
1197
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 sources = [
1199 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001200 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001201 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001202 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 ]
1204 deps = [
1205 ":rtc_base_approved",
1206 ":rtc_base_tests_main",
1207 ":rtc_numerics",
1208 "../test:test_support",
1209 ]
1210 }
1211
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001212 rtc_source_set("rtc_json_unittests") {
1213 testonly = true
1214
1215 sources = [
1216 "strings/json_unittest.cc",
1217 ]
1218 deps = [
1219 ":rtc_base_tests_main",
1220 ":rtc_base_tests_utils",
1221 ":rtc_json",
1222 "../test:test_support",
1223 ]
1224 }
1225
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001226 rtc_source_set("rtc_base_unittests") {
1227 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001228 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001229
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001230 sources = [
1231 "callback_unittest.cc",
1232 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001233 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001234 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001235 "ipaddress_unittest.cc",
1236 "memory_usage_unittest.cc",
1237 "messagedigest_unittest.cc",
1238 "messagequeue_unittest.cc",
1239 "nat_unittest.cc",
1240 "network_unittest.cc",
1241 "optionsfile_unittest.cc",
1242 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001243 "rollingaccumulator_unittest.cc",
1244 "rtccertificate_unittest.cc",
1245 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001246 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001247 "sigslottester_unittest.cc",
1248 "stream_unittest.cc",
1249 "testclient_unittest.cc",
1250 "thread_unittest.cc",
1251 ]
1252 if (is_win) {
1253 sources += [
1254 "win32_unittest.cc",
1255 "win32window_unittest.cc",
1256 ]
1257 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001258 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001259 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001260 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001261 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001262 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001263 "ssladapter_unittest.cc",
1264 "sslidentity_unittest.cc",
1265 "sslstreamadapter_unittest.cc",
1266 ]
1267 }
1268 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001269 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001270 ":rtc_base_tests_main",
1271 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001272 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001273 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001274 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001275 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001276 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001277 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001278 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001279 ]
1280 public_deps = [
1281 ":rtc_base",
1282 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001283 if (build_with_chromium) {
1284 include_dirs = [ "../../boringssl/src/include" ]
1285 }
1286 if (rtc_build_ssl) {
1287 deps += [ "//third_party/boringssl" ]
1288 } else {
1289 configs += [ ":external_ssl_library" ]
1290 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001291 }
1292}
1293
Henrik Kjellander73e21802017-06-20 08:38:58 +02001294if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001295 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001296 java_files = [
1297 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001298 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001299 "java/src/org/webrtc/Logging.java",
1300 "java/src/org/webrtc/Size.java",
1301 "java/src/org/webrtc/ThreadUtils.java",
1302 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001303 }
1304}