blob: 72dd7567e542737a3b6e130231b5598f9908af01 [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",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200510 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700511 ]
512}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200513
Danil Chapovalova10d1642018-08-31 13:47:59 +0200514rtc_source_set("rtc_cancelable_task") {
515 sources = [
516 "cancelable_periodic_task.h",
517 "cancelable_task_handle.cc",
518 "cancelable_task_handle.h",
519 ]
520 deps = [
521 ":checks",
522 ":logging",
523 ":macromagic",
524 ":ptr_util",
525 ":refcount",
526 ":rtc_task_queue",
527 ":safe_conversions",
528 ":sequenced_task_checker",
529 ":thread_checker",
530 "//third_party/abseil-cpp/absl/memory",
531 ]
532}
533
Tommi8d2c5a82018-03-19 11:12:48 +0100534if (rtc_enable_libevent) {
535 rtc_source_set("rtc_task_queue_libevent") {
536 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700537 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200538 "task_queue_libevent.cc",
539 "task_queue_posix.cc",
540 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700541 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100542 deps = [
543 ":checks",
544 ":criticalsection",
545 ":logging",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200546 ":macromagic",
Tommi8d2c5a82018-03-19 11:12:48 +0100547 ":platform_thread",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200548 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100549 ":ptr_util",
550 ":refcount",
551 ":rtc_task_queue_api",
552 ":safe_conversions",
553 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200554 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100555 ]
556 if (rtc_build_libevent) {
557 deps += [ "//base/third_party/libevent" ]
558 }
559 }
560}
561
562if (is_mac || is_ios) {
563 rtc_source_set("rtc_task_queue_gcd") {
564 visibility = [ ":rtc_task_queue_impl" ]
565 sources = [
566 "task_queue_gcd.cc",
567 "task_queue_posix.cc",
568 "task_queue_posix.h",
569 ]
570 deps = [
571 ":checks",
572 ":logging",
573 ":ptr_util",
574 ":refcount",
575 ":rtc_task_queue_api",
576 ]
577 }
578}
579
580if (is_win) {
581 rtc_source_set("rtc_task_queue_win") {
582 visibility = [ ":rtc_task_queue_impl" ]
583 sources = [
584 "task_queue_win.cc",
585 ]
586 deps = [
587 ":checks",
588 ":criticalsection",
589 ":logging",
590 ":macromagic",
591 ":platform_thread",
592 ":ptr_util",
593 ":refcount",
594 ":rtc_event",
595 ":rtc_task_queue_api",
596 ":safe_conversions",
597 ":timeutils",
598 ]
599 }
600}
601
602rtc_source_set("rtc_task_queue_impl") {
603 visibility = [ "*" ]
604 if (rtc_enable_libevent) {
605 deps = [
606 ":rtc_task_queue_libevent",
607 ]
perkj650fdae2017-08-25 05:00:11 -0700608 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200609 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100610 deps = [
611 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200612 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200613 }
614 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100615 deps = [
616 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200617 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200618 }
619 }
620}
621
Tommi8d2c5a82018-03-19 11:12:48 +0100622rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200623 sources = [
624 "sequenced_task_checker.h",
625 "sequenced_task_checker_impl.cc",
626 "sequenced_task_checker_impl.h",
627 ]
628 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100629 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100630 ":criticalsection",
631 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200632 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100633 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200634 ]
635}
636
637rtc_static_library("weak_ptr") {
638 sources = [
639 "weak_ptr.cc",
640 "weak_ptr.h",
641 ]
642 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100643 ":ptr_util",
644 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200645 ":sequenced_task_checker",
646 ]
647}
648
649rtc_static_library("rtc_numerics") {
650 sources = [
651 "numerics/exp_filter.cc",
652 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100653 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200654 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200655 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200656 ]
657 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100658 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200659 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100660 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200661 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200662 ]
663}
664
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200665rtc_source_set("rtc_json") {
666 defines = []
667 sources = [
Sam Zackrissonb45bdb52018-10-02 16:25:59 +0200668 "strings/json.cc",
669 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200670 ]
Jonas Olsson941a07c2018-09-13 10:07:07 +0200671 deps = [
672 ":stringutils",
673 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100674 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200675 if (rtc_build_json) {
676 public_deps = [
677 "//third_party/jsoncpp",
678 ]
679 } else {
680 include_dirs = [ "$rtc_jsoncpp_root" ]
681
682 # When defined changes the include path for json.h to where it is
683 # expected to be when building json outside of the standalone build.
684 defines += [ "WEBRTC_EXTERNAL_JSON" ]
685 }
686}
687
mbonadei9c5e5112017-09-05 05:17:02 -0700688rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000689 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500690 public_deps = []
691 if (!build_with_mozilla) {
692 public_deps += [ ":rtc_base_generic" ]
693 }
mbonadei310e32b2017-09-07 07:36:28 -0700694 if (is_win) {
695 sources = [
696 "noop.cc",
697 ]
698 }
699 if (is_ios || is_mac) {
700 sources = [
701 "noop.mm",
702 ]
703 public_deps += [ ":rtc_base_objc" ]
704 }
705}
706
707if (is_ios || is_mac) {
708 rtc_source_set("rtc_base_objc") {
709 sources = [
710 "thread_darwin.mm",
711 ]
712 deps = [
713 ":rtc_base_generic",
714 ]
715 visibility = [ ":rtc_base" ]
716 }
717}
718
719rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200720 cflags = []
721 cflags_cc = []
722 libs = []
723 defines = []
724 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100725 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100726 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200727 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100728 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200729 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200730 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200731 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200732 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200733 ]
734 public_deps = [
735 ":rtc_base_approved",
736 ]
737 public_configs = []
738
739 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
740
741 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200742 "asyncinvoker-inl.h",
743 "asyncinvoker.cc",
744 "asyncinvoker.h",
745 "asyncpacketsocket.cc",
746 "asyncpacketsocket.h",
747 "asyncresolverinterface.cc",
748 "asyncresolverinterface.h",
749 "asyncsocket.cc",
750 "asyncsocket.h",
751 "asynctcpsocket.cc",
752 "asynctcpsocket.h",
753 "asyncudpsocket.cc",
754 "asyncudpsocket.h",
755 "crc32.cc",
756 "crc32.h",
757 "cryptstring.cc",
758 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100759 "data_rate_limiter.cc",
760 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100761 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200762 "filerotatingstream.cc",
763 "filerotatingstream.h",
764 "fileutils.cc",
765 "fileutils.h",
766 "gunit_prod.h",
767 "helpers.cc",
768 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200769 "httpcommon.cc",
770 "httpcommon.h",
771 "ipaddress.cc",
772 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100773 "keep_ref_until_done.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700774 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200775 "messagedigest.cc",
776 "messagedigest.h",
777 "messagehandler.cc",
778 "messagehandler.h",
779 "messagequeue.cc",
780 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800781 "nethelper.cc",
782 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200783 "nethelpers.cc",
784 "nethelpers.h",
785 "network.cc",
786 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200787 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200788 "networkmonitor.cc",
789 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100790 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200791 "nullsocketserver.cc",
792 "nullsocketserver.h",
793 "openssl.h",
794 "openssladapter.cc",
795 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700796 "opensslcertificate.cc",
797 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200798 "openssldigest.cc",
799 "openssldigest.h",
800 "opensslidentity.cc",
801 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700802 "opensslsessioncache.cc",
803 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200804 "opensslstreamadapter.cc",
805 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700806 "opensslutility.cc",
807 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200808 "physicalsocketserver.cc",
809 "physicalsocketserver.h",
810 "proxyinfo.cc",
811 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200812 "rtccertificate.cc",
813 "rtccertificate.h",
814 "rtccertificategenerator.cc",
815 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700816 "signalthread.cc",
817 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700818 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700819 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 "socket.h",
821 "socketadapters.cc",
822 "socketadapters.h",
823 "socketaddress.cc",
824 "socketaddress.h",
825 "socketaddresspair.cc",
826 "socketaddresspair.h",
827 "socketfactory.h",
828 "socketserver.h",
829 "socketstream.cc",
830 "socketstream.h",
831 "ssladapter.cc",
832 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700833 "sslcertificate.cc",
834 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 "sslfingerprint.cc",
836 "sslfingerprint.h",
837 "sslidentity.cc",
838 "sslidentity.h",
839 "sslstreamadapter.cc",
840 "sslstreamadapter.h",
841 "stream.cc",
842 "stream.h",
843 "thread.cc",
844 "thread.h",
845 ]
846
mbonadei310e32b2017-09-07 07:36:28 -0700847 visibility = [
848 ":rtc_base",
849 ":rtc_base_objc",
850 ]
851
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200852 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200853 include_dirs = [ "../../boringssl/src/include" ]
854 public_configs += [ ":rtc_base_chromium_config" ]
855 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200856 sources += [
857 "callback.h",
858 "logsinks.cc",
859 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100860 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200861 "optionsfile.cc",
862 "optionsfile.h",
863 "rollingaccumulator.h",
864 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200865 ]
866
867 if (is_win) {
868 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200869 "win32socketinit.h",
870 "win32socketserver.cc",
871 "win32socketserver.h",
872 ]
873 }
874 } # !build_with_chromium
875
876 if (rtc_build_ssl) {
877 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500878 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200879 configs += [ ":external_ssl_library" ]
880 }
881
882 if (is_android) {
883 sources += [
884 "ifaddrs-android.cc",
885 "ifaddrs-android.h",
886 ]
887
888 libs += [
889 "log",
890 "GLESv2",
891 ]
892 }
893
894 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700895 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200896 }
897
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100898 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200899 libs += [
900 "dl",
901 "rt",
902 "Xext",
903 "X11",
904 "Xcomposite",
905 "Xrender",
906 ]
907 }
908
909 if (is_linux) {
910 libs += [
911 "dl",
912 "rt",
913 ]
914 }
915
916 if (is_mac) {
917 sources += [
918 "macutils.cc",
919 "macutils.h",
920 ]
921 libs += [
922 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
923 "ApplicationServices.framework",
924 ]
925 }
926
927 if (is_win) {
928 sources += [
929 "win32.cc",
930 "win32.h",
931 "win32filesystem.cc",
932 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200933 "win32window.cc",
934 "win32window.h",
935 ]
936
937 libs += [
938 "crypt32.lib",
939 "iphlpapi.lib",
940 "secur32.lib",
941 ]
942
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200943 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
944 }
945
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700946 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200947 sources += [
948 "ifaddrs_converter.cc",
949 "ifaddrs_converter.h",
950 "unixfilesystem.cc",
951 "unixfilesystem.h",
952 ]
953 }
954
955 if (is_nacl) {
956 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
957 defines += [ "timezone=_timezone" ]
958 sources -= [ "ifaddrs_converter.cc" ]
959 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200960}
961
962rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000963 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200964 sources = [
965 "gtest_prod_util.h",
966 ]
967}
968
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200969rtc_source_set("rtc_base_tests_utils") {
970 testonly = true
971 sources = [
972 # Also use this as a convenient dumping ground for misc files that are
973 # included by multiple targets below.
974 "cpu_time.cc",
975 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700976 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200977 "fakeclock.cc",
978 "fakeclock.h",
979 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700980 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200981 "fakesslidentity.h",
982 "firewallsocketserver.cc",
983 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800984 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200985 "gunit.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200986 "memory_usage.cc",
987 "memory_usage.h",
988 "natserver.cc",
989 "natserver.h",
990 "natsocketfactory.cc",
991 "natsocketfactory.h",
992 "nattypes.cc",
993 "nattypes.h",
994 "proxyserver.cc",
995 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200996 "sigslottester.h",
997 "sigslottester.h.pump",
998 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700999 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001000 "testclient.cc",
1001 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001002 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001003 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001004 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001005 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "virtualsocketserver.cc",
1007 "virtualsocketserver.h",
1008 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001010 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001011 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001012 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001013 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001014 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001015 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001016 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001017 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001018 ]
1019 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001020 "//testing/gtest",
1021 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001022}
1023
Tommida8781f2018-02-19 12:41:43 +01001024rtc_source_set("rtc_task_queue_for_test") {
1025 visibility = [ "*" ]
1026 testonly = true
1027
1028 sources = [
1029 "task_queue_for_test.cc",
1030 "task_queue_for_test.h",
1031 ]
1032 deps = [
1033 ":checks",
1034 ":rtc_base_approved",
1035 ":rtc_task_queue",
1036 ]
1037}
1038
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001039if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001040 rtc_source_set("sigslot_unittest") {
1041 testonly = true
1042 sources = [
1043 "sigslot_unittest.cc",
1044 ]
1045 deps = [
1046 ":rtc_base",
1047 ":rtc_base_tests_utils",
1048 "third_party/sigslot",
1049 ]
1050 }
1051
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001052 rtc_source_set("rtc_base_tests_main") {
1053 testonly = true
1054 sources = [
1055 "unittest_main.cc",
1056 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001057 deps = [
1058 ":rtc_base",
1059 ":rtc_base_approved",
1060 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001061 "../system_wrappers:field_trial",
1062 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001063 "../test:field_trial",
1064 "../test:test_support",
1065 ]
1066
1067 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001068 "//testing/gtest",
1069 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001070 }
1071
1072 rtc_source_set("rtc_base_nonparallel_tests") {
1073 testonly = true
1074
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001075 sources = [
1076 "cpu_time_unittest.cc",
1077 "filerotatingstream_unittest.cc",
1078 "nullsocketserver_unittest.cc",
1079 "physicalsocketserver_unittest.cc",
1080 "socket_unittest.cc",
1081 "socket_unittest.h",
1082 "socketaddress_unittest.cc",
1083 ]
1084 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001085 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001086 ":rtc_base",
1087 ":rtc_base_tests_main",
1088 ":rtc_base_tests_utils",
1089 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001090 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001091 "../test:test_support",
1092 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001093 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001094 ]
1095 if (is_win) {
1096 sources += [ "win32socketserver_unittest.cc" ]
1097 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001098 }
1099
1100 rtc_source_set("rtc_base_approved_unittests") {
1101 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001102 if (is_msan) {
1103 cflags = [ "-fsanitize=memory" ]
1104 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001105 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001106 "atomicops_unittest.cc",
1107 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001108 "bind_unittest.cc",
1109 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001110 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001111 "buffer_unittest.cc",
1112 "bufferqueue_unittest.cc",
1113 "bytebuffer_unittest.cc",
1114 "byteorder_unittest.cc",
1115 "copyonwritebuffer_unittest.cc",
1116 "criticalsection_unittest.cc",
1117 "event_tracer_unittest.cc",
1118 "event_unittest.cc",
1119 "file_unittest.cc",
1120 "function_view_unittest.cc",
1121 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001122 "numerics/histogram_percentile_counter_unittest.cc",
1123 "numerics/mod_ops_unittest.cc",
1124 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001125 "numerics/safe_compare_unittest.cc",
1126 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001127 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001128 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001129 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001130 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001131 "platform_thread_unittest.cc",
1132 "random_unittest.cc",
1133 "rate_limiter_unittest.cc",
1134 "rate_statistics_unittest.cc",
1135 "ratetracker_unittest.cc",
1136 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001137 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 "string_to_number_unittest.cc",
1139 "stringencode_unittest.cc",
1140 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001141 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001142 "stringutils_unittest.cc",
1143 "swap_queue_unittest.cc",
1144 "thread_annotations_unittest.cc",
1145 "thread_checker_unittest.cc",
1146 "timestampaligner_unittest.cc",
1147 "timeutils_unittest.cc",
1148 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001149 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001150 ]
henrika3ca48a62018-05-21 13:34:51 +02001151 if (is_win) {
1152 sources += [ "win/windows_version_unittest.cc" ]
1153 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001154 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001155 ":checks",
1156 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001157 ":rtc_base",
1158 ":rtc_base_approved",
1159 ":rtc_base_tests_main",
1160 ":rtc_base_tests_utils",
1161 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001162 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001163 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001164 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001165 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001166 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001168 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001169 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001170 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001171 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001172 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001173 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001174 }
1175
1176 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001177 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001178 testonly = true
1179
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001180 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001181 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 "task_queue_unittest.cc",
1183 ]
1184 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001185 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001186 ":rtc_base_tests_main",
1187 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001188 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001189 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001190 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001191 "../test:test_support",
1192 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001193 }
1194
1195 rtc_source_set("sequenced_task_checker_unittests") {
1196 testonly = true
1197
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 sources = [
1199 "sequenced_task_checker_unittest.cc",
1200 ]
1201 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001202 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 ":rtc_base_approved",
1204 ":rtc_base_tests_main",
1205 ":rtc_task_queue",
1206 ":sequenced_task_checker",
1207 "../test:test_support",
1208 ]
1209 }
1210
1211 rtc_source_set("weak_ptr_unittests") {
1212 testonly = true
1213
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001214 sources = [
1215 "weak_ptr_unittest.cc",
1216 ]
1217 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001218 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001219 ":rtc_base_tests_main",
1220 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001221 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001222 ":rtc_task_queue",
1223 ":weak_ptr",
1224 "../test:test_support",
1225 ]
1226 }
1227
1228 rtc_source_set("rtc_numerics_unittests") {
1229 testonly = true
1230
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001231 sources = [
1232 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001233 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001234 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001235 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001236 ]
1237 deps = [
1238 ":rtc_base_approved",
1239 ":rtc_base_tests_main",
1240 ":rtc_numerics",
1241 "../test:test_support",
1242 ]
1243 }
1244
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001245 rtc_source_set("rtc_json_unittests") {
1246 testonly = true
1247
1248 sources = [
1249 "strings/json_unittest.cc",
1250 ]
1251 deps = [
1252 ":rtc_base_tests_main",
1253 ":rtc_base_tests_utils",
1254 ":rtc_json",
1255 "../test:test_support",
1256 ]
1257 }
1258
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001259 rtc_source_set("rtc_base_unittests") {
1260 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001261 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001262
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001263 sources = [
1264 "callback_unittest.cc",
1265 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001266 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001267 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001268 "ipaddress_unittest.cc",
1269 "memory_usage_unittest.cc",
1270 "messagedigest_unittest.cc",
1271 "messagequeue_unittest.cc",
1272 "nat_unittest.cc",
1273 "network_unittest.cc",
1274 "optionsfile_unittest.cc",
1275 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001276 "rollingaccumulator_unittest.cc",
1277 "rtccertificate_unittest.cc",
1278 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001279 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001280 "sigslottester_unittest.cc",
1281 "stream_unittest.cc",
1282 "testclient_unittest.cc",
1283 "thread_unittest.cc",
1284 ]
1285 if (is_win) {
1286 sources += [
1287 "win32_unittest.cc",
1288 "win32window_unittest.cc",
1289 ]
1290 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001291 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001293 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001294 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001295 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001296 "ssladapter_unittest.cc",
1297 "sslidentity_unittest.cc",
1298 "sslstreamadapter_unittest.cc",
1299 ]
1300 }
1301 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001302 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001303 ":rtc_base_tests_main",
1304 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001305 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001306 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001307 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001308 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001309 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001310 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001311 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001312 ]
1313 public_deps = [
1314 ":rtc_base",
1315 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001316 if (build_with_chromium) {
1317 include_dirs = [ "../../boringssl/src/include" ]
1318 }
1319 if (rtc_build_ssl) {
1320 deps += [ "//third_party/boringssl" ]
1321 } else {
1322 configs += [ ":external_ssl_library" ]
1323 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001324 }
1325}
1326
Henrik Kjellander73e21802017-06-20 08:38:58 +02001327if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001328 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001329 java_files = [
1330 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001331 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001332 "java/src/org/webrtc/Logging.java",
1333 "java/src/org/webrtc/Size.java",
1334 "java/src/org/webrtc/ThreadUtils.java",
1335 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001336 }
1337}