blob: f9702785d06912b9411296dd8a69924d870b885f [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.
Ilya Nikolaevskiy26341992018-11-05 12:55:18 +010071# TODO(bugs.webrtc.org/9838): Create small and focused build targets and remove
Mirko Bonadeica270912018-10-10 15:51:03 +020072# 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",
Sebastian Janssond28efe52018-10-18 12:26:46 +020079 ":safe_minmax",
Mirko Bonadeica270912018-10-10 15:51:03 +020080 ":type_traits",
81 "..:webrtc_common",
82 "../api:array_view",
Sebastian Janssond28efe52018-10-18 12:26:46 +020083 "../system_wrappers:field_trial",
84 "experiments:field_trial_parser",
Mirko Bonadeica270912018-10-10 15:51:03 +020085 "system:arch",
86 "system:unused",
87 "third_party/base64",
88 "//third_party/abseil-cpp/absl/memory:memory",
89 "//third_party/abseil-cpp/absl/types:optional",
90 ]
91
92 sources = [
93 "bind.h",
94 "bitbuffer.cc",
95 "bitbuffer.h",
96 "bitrateallocationstrategy.cc",
97 "bitrateallocationstrategy.h",
98 "buffer.h",
99 "bufferqueue.cc",
100 "bufferqueue.h",
101 "bytebuffer.cc",
102 "bytebuffer.h",
103 "byteorder.h",
104 "copyonwritebuffer.cc",
105 "copyonwritebuffer.h",
106 "event_tracer.cc",
107 "event_tracer.h",
108 "file.cc",
109 "file.h",
110 "flags.cc",
111 "flags.h",
112 "function_view.h",
113 "ignore_wundef.h",
114 "location.cc",
115 "location.h",
116 "message_buffer_reader.h",
117 "numerics/histogram_percentile_counter.cc",
118 "numerics/histogram_percentile_counter.h",
119 "numerics/mod_ops.h",
120 "numerics/moving_max_counter.h",
121 "numerics/sample_counter.cc",
122 "numerics/sample_counter.h",
123 "onetimeevent.h",
Mirko Bonadeica270912018-10-10 15:51:03 +0200124 "platform_file.cc",
125 "platform_file.h",
126 "race_checker.cc",
127 "race_checker.h",
128 "random.cc",
129 "random.h",
130 "rate_statistics.cc",
131 "rate_statistics.h",
132 "ratetracker.cc",
133 "ratetracker.h",
134 "swap_queue.h",
135 "template_util.h",
136 "timestampaligner.cc",
137 "timestampaligner.h",
138 "trace_event.h",
139 "zero_memory.cc",
140 "zero_memory.h",
141 ]
142
143 if (is_posix || is_fuchsia) {
144 sources += [ "file_posix.cc" ]
145 }
146
147 if (is_win) {
148 sources += [
149 "file_win.cc",
150 "win/windows_version.cc",
151 "win/windows_version.h",
152 ]
153 data_deps = [
154 "//build/win:runtime_libs",
155 ]
156 }
157
158 if (is_nacl) {
159 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
160 }
161
162 if (is_android) {
163 libs = [ "log" ]
164 }
165
166 public_deps = [ # no-presubmit-check TODO(webrtc:8603)
Tommi8d2c5a82018-03-19 11:12:48 +0100167 ":atomicops",
168 ":criticalsection",
169 ":logging",
170 ":macromagic",
171 ":platform_thread",
172 ":platform_thread_types",
173 ":ptr_util",
174 ":refcount",
Tommi8d2c5a82018-03-19 11:12:48 +0100175 ":rtc_event",
176 ":safe_conversions",
177 ":stringutils",
178 ":thread_checker",
179 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -0700180 ]
mbonadeibc378472017-09-11 03:43:34 -0700181}
182
Tommi8d2c5a82018-03-19 11:12:48 +0100183rtc_source_set("macromagic") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200184 # TODO(bugs.webrtc.org/9606): This should not be public.
185 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100186 sources = [
187 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100188 "constructormagic.h",
189 "format_macros.h",
190 "stringize_macros.h",
191 "thread_annotations.h",
192 ]
Niels Möllera12c42a2018-07-25 16:05:48 +0200193 deps = [
194 "system:arch",
195 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100196}
197
198rtc_source_set("platform_thread_types") {
199 sources = [
200 "platform_thread_types.cc",
201 "platform_thread_types.h",
202 ]
203}
204
205rtc_source_set("ptr_util") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200206 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100207 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100208 "scoped_ref_ptr.h",
209 ]
210}
211
212rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200213 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100214 sources = [
215 "refcount.h",
216 "refcountedobject.h",
217 "refcounter.h",
218 ]
219 deps = [
220 ":atomicops",
221 ":macromagic",
222 ]
223}
224
225rtc_source_set("criticalsection") {
226 sources = [
227 "criticalsection.cc",
228 "criticalsection.h",
229 ]
230 deps = [
231 ":atomicops",
232 ":checks",
233 ":macromagic",
234 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200235 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100236 ]
237}
238
239rtc_source_set("platform_thread") {
240 visibility = [
241 ":rtc_base_approved",
Tommi8d2c5a82018-03-19 11:12:48 +0100242 ":rtc_task_queue_libevent",
243 ":rtc_task_queue_win",
244 ":sequenced_task_checker",
245 ]
246 sources = [
247 "platform_thread.cc",
248 "platform_thread.h",
249 ]
250 deps = [
251 ":atomicops",
252 ":checks",
253 ":macromagic",
254 ":platform_thread_types",
255 ":rtc_event",
256 ":thread_checker",
257 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100258 ]
259}
260
261rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700262 deps = [
263 ":checks",
John Budorick6c9a7862018-03-26 06:23:34 -0700264 ]
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 = [
Yves Gerey988cc082018-10-23 12:03:01 +0200285 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100286 ":criticalsection",
287 ":macromagic",
288 ":platform_thread_types",
289 ":stringutils",
290 ":timeutils",
Jonas Olssonf2ce37c2018-09-12 15:32:47 +0200291 "//third_party/abseil-cpp/absl/strings",
Tommi8d2c5a82018-03-19 11:12:48 +0100292 ]
293
294 if (build_with_chromium) {
295 # Dependency on chromium's logging (in //base).
296 deps += [ "//base:base" ]
297 sources = [
298 "../../webrtc_overrides/rtc_base/logging.cc",
299 "../../webrtc_overrides/rtc_base/logging.h",
300 ]
301 } else {
Mirko Bonadei96ede162018-09-06 13:45:44 +0200302 configs += [
303 "..:no_exit_time_destructors",
304 "..:no_global_constructors",
305 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100306 sources = [
307 "logging.cc",
308 "logging.h",
309 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200310 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100311
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200312 if (is_mac) {
313 deps += [ ":logging_mac" ]
314 }
315
Tommi8d2c5a82018-03-19 11:12:48 +0100316 # logging.h needs the deprecation header while downstream projects are
317 # removing code that depends on logging implementation details.
318 deps += [ ":deprecation" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200319
320 if (is_android) {
321 libs += [ "log" ]
322 }
Tommi8d2c5a82018-03-19 11:12:48 +0100323 }
324}
325
326rtc_source_set("thread_checker") {
327 sources = [
328 "thread_checker.h",
329 "thread_checker_impl.cc",
330 "thread_checker_impl.h",
331 ]
332 deps = [
333 ":checks",
334 ":criticalsection",
335 ":macromagic",
336 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100337 ]
338}
339
340rtc_source_set("atomicops") {
341 sources = [
342 "atomicops.h",
343 ]
344}
345
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100346rtc_source_set("checks") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200347 # TODO(bugs.webrtc.org/9607): This should not be public.
348 visibility = [ "*" ]
Patrik Höglund77301932018-10-09 15:09:51 +0200349 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100350 sources = [
351 "checks.cc",
352 "checks.h",
353 ]
354 deps = [
355 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200356 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100357 ]
Patrik Höglund77301932018-10-09 15:09:51 +0200358 if (is_android) {
359 libs += [ "log" ]
360 }
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100361}
362
Patrik Höglund3e113432017-12-15 14:40:10 +0100363rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100364 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100365 "rate_limiter.cc",
366 "rate_limiter.h",
367 ]
368 deps = [
369 ":rtc_base_approved",
370 "../system_wrappers",
Yves Gerey988cc082018-10-23 12:03:01 +0200371 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100372 ]
373}
374
375rtc_source_set("sanitizer") {
376 sources = [
377 "sanitizer.h",
378 ]
379}
380
381rtc_source_set("safe_compare") {
382 sources = [
383 "numerics/safe_compare.h",
384 ]
385 deps = [
386 ":type_traits",
387 ]
388}
389
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100390rtc_source_set("safe_minmax") {
391 sources = [
392 "numerics/safe_minmax.h",
393 ]
394 deps = [
395 ":checks",
396 ":safe_compare",
397 ":type_traits",
398 ]
399}
400
Tommi8d2c5a82018-03-19 11:12:48 +0100401rtc_source_set("safe_conversions") {
402 sources = [
403 "numerics/safe_conversions.h",
404 "numerics/safe_conversions_impl.h",
405 ]
406 deps = [
407 ":checks",
408 ]
409}
410
411rtc_source_set("timeutils") {
Mirko Bonadei2ad8c432018-08-09 10:54:40 +0200412 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100413 sources = [
414 "timeutils.cc",
415 "timeutils.h",
416 ]
417 deps = [
418 ":checks",
419 ":safe_conversions",
Jonas Olsson366a50c2018-09-06 13:41:30 +0200420 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100421 ]
422}
423
Patrik Höglund3e113432017-12-15 14:40:10 +0100424rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100425 sources = [
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200426 "string_to_number.cc",
427 "string_to_number.h",
Tommi8d2c5a82018-03-19 11:12:48 +0100428 "stringencode.cc",
429 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100430 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100431 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100432 "stringutils.cc",
433 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100434 ]
435 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100436 ":checks",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200437 ":macromagic",
Karl Wiberg881f1682018-03-08 15:03:23 +0100438 ":safe_minmax",
439 "../api:array_view",
Jonas Olsson88e18482018-09-03 10:15:08 +0200440 "//third_party/abseil-cpp/absl/strings:strings",
Jonas Olsson6b1985d2018-07-05 11:59:48 +0200441 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglund3e113432017-12-15 14:40:10 +0100442 ]
443}
444
Jonas Olsson74395342018-04-03 12:22:07 +0200445rtc_source_set("audio_format_to_string") {
446 sources = [
447 "strings/audio_format_to_string.cc",
448 "strings/audio_format_to_string.h",
449 ]
450 deps = [
451 ":stringutils",
452 "../api/audio_codecs:audio_codecs_api",
453 ]
454}
455
Patrik Höglund3e113432017-12-15 14:40:10 +0100456rtc_source_set("type_traits") {
457 sources = [
458 "type_traits.h",
459 ]
460}
461
462rtc_source_set("deprecation") {
463 sources = [
464 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100465 ]
466}
467
mbonadeibc378472017-09-11 03:43:34 -0700468if (is_mac && !build_with_chromium) {
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200469 rtc_source_set("logging_mac") {
470 visibility = [ ":logging" ]
471 libs = [ "Foundation.framework" ]
mbonadeibc378472017-09-11 03:43:34 -0700472 sources = [
Mirko Bonadei99a70a22018-10-09 16:45:14 +0200473 "logging_mac.h",
mbonadeibc378472017-09-11 03:43:34 -0700474 "logging_mac.mm",
475 ]
mbonadeibc378472017-09-11 03:43:34 -0700476 }
477}
478
perkj650fdae2017-08-25 05:00:11 -0700479rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000480 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100481 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700482 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700483 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200484 ]
485
perkj650fdae2017-08-25 05:00:11 -0700486 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700487 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700488 }
489}
490
491# WebRTC targets must not directly depend on rtc_task_queue_api or
492# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
493# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
494# to the default implemenation in rtc_task_queue_impl or if an externally
495# provided implementation should be used. An external implementation should
496# depend on rtc_task_queue_api.
497rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100498 # The visibility list is commented out so that we won't break external
499 # implementations, but left here to manually test as well as for sake of what
500 # targets we expect to depend on rtc_task_queue_api.
501 # visibility = [
502 # ":rtc_task_queue",
503 # ":rtc_task_queue_impl",
504 # ":sequenced_task_checker",
505 # ]
nisse75dd6d42017-09-19 08:28:00 -0700506 sources = [
507 "task_queue.h",
508 ]
perkj650fdae2017-08-25 05:00:11 -0700509 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100510 ":macromagic",
511 ":ptr_util",
Mirko Bonadei3d255302018-10-11 10:50:45 +0200512 "system:rtc_export",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200513 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700514 ]
515}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200516
Danil Chapovalova10d1642018-08-31 13:47:59 +0200517rtc_source_set("rtc_cancelable_task") {
518 sources = [
519 "cancelable_periodic_task.h",
520 "cancelable_task_handle.cc",
521 "cancelable_task_handle.h",
522 ]
523 deps = [
524 ":checks",
525 ":logging",
526 ":macromagic",
527 ":ptr_util",
528 ":refcount",
529 ":rtc_task_queue",
530 ":safe_conversions",
531 ":sequenced_task_checker",
532 ":thread_checker",
533 "//third_party/abseil-cpp/absl/memory",
534 ]
535}
536
Tommi8d2c5a82018-03-19 11:12:48 +0100537if (rtc_enable_libevent) {
538 rtc_source_set("rtc_task_queue_libevent") {
539 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700540 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200541 "task_queue_libevent.cc",
542 "task_queue_posix.cc",
543 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700544 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100545 deps = [
546 ":checks",
547 ":criticalsection",
548 ":logging",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200549 ":macromagic",
Tommi8d2c5a82018-03-19 11:12:48 +0100550 ":platform_thread",
Yves Gerey2e00abc2018-10-05 15:39:24 +0200551 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100552 ":ptr_util",
553 ":refcount",
554 ":rtc_task_queue_api",
555 ":safe_conversions",
556 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200557 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100558 ]
559 if (rtc_build_libevent) {
560 deps += [ "//base/third_party/libevent" ]
561 }
562 }
563}
564
565if (is_mac || is_ios) {
566 rtc_source_set("rtc_task_queue_gcd") {
567 visibility = [ ":rtc_task_queue_impl" ]
568 sources = [
569 "task_queue_gcd.cc",
570 "task_queue_posix.cc",
571 "task_queue_posix.h",
572 ]
573 deps = [
574 ":checks",
575 ":logging",
576 ":ptr_util",
577 ":refcount",
578 ":rtc_task_queue_api",
579 ]
580 }
581}
582
583if (is_win) {
584 rtc_source_set("rtc_task_queue_win") {
585 visibility = [ ":rtc_task_queue_impl" ]
586 sources = [
587 "task_queue_win.cc",
588 ]
589 deps = [
590 ":checks",
591 ":criticalsection",
592 ":logging",
593 ":macromagic",
594 ":platform_thread",
595 ":ptr_util",
596 ":refcount",
597 ":rtc_event",
598 ":rtc_task_queue_api",
599 ":safe_conversions",
600 ":timeutils",
601 ]
602 }
603}
604
605rtc_source_set("rtc_task_queue_impl") {
606 visibility = [ "*" ]
607 if (rtc_enable_libevent) {
608 deps = [
609 ":rtc_task_queue_libevent",
610 ]
perkj650fdae2017-08-25 05:00:11 -0700611 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200612 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100613 deps = [
614 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200615 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200616 }
617 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100618 deps = [
619 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200620 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200621 }
622 }
623}
624
Tommi8d2c5a82018-03-19 11:12:48 +0100625rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200626 sources = [
627 "sequenced_task_checker.h",
628 "sequenced_task_checker_impl.cc",
629 "sequenced_task_checker_impl.h",
630 ]
631 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100632 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100633 ":criticalsection",
634 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200635 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100636 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200637 ]
638}
639
640rtc_static_library("weak_ptr") {
641 sources = [
642 "weak_ptr.cc",
643 "weak_ptr.h",
644 ]
645 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100646 ":ptr_util",
647 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200648 ":sequenced_task_checker",
649 ]
650}
651
652rtc_static_library("rtc_numerics") {
653 sources = [
654 "numerics/exp_filter.cc",
655 "numerics/exp_filter.h",
Ilya Nikolaevskiy26341992018-11-05 12:55:18 +0100656 "numerics/moving_average.cc",
657 "numerics/moving_average.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100658 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200659 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200660 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200661 ]
662 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100663 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200664 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100665 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200666 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200667 ]
668}
669
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200670rtc_source_set("rtc_json") {
671 defines = []
672 sources = [
Sam Zackrissonb45bdb52018-10-02 16:25:59 +0200673 "strings/json.cc",
674 "strings/json.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200675 ]
Jonas Olsson941a07c2018-09-13 10:07:07 +0200676 deps = [
677 ":stringutils",
678 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100679 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200680 if (rtc_build_json) {
681 public_deps = [
682 "//third_party/jsoncpp",
683 ]
684 } else {
685 include_dirs = [ "$rtc_jsoncpp_root" ]
686
687 # When defined changes the include path for json.h to where it is
688 # expected to be when building json outside of the standalone build.
689 defines += [ "WEBRTC_EXTERNAL_JSON" ]
690 }
691}
692
mbonadei9c5e5112017-09-05 05:17:02 -0700693rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000694 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200695 cflags = []
696 cflags_cc = []
697 libs = []
698 defines = []
699 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100700 ":checks",
Niels Möller15ca5a92018-11-01 14:32:47 +0100701
702 # For deprecation of rtc::PacketTime, in asyncpacketsocket.h.
703 ":deprecation",
Patrik Höglund3e113432017-12-15 14:40:10 +0100704 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200705 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100706 "../api:array_view",
Sebastian Janssone07864e2018-10-15 09:28:15 +0200707 "network:sent_packet",
Artem Titova76af0c2018-07-23 17:38:12 +0200708 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200709 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200710 "//third_party/abseil-cpp/absl/memory",
Niels Möller3c7d5992018-10-19 15:29:54 +0200711 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200712 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200713 ]
714 public_deps = [
715 ":rtc_base_approved",
716 ]
717 public_configs = []
718
719 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
720
721 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200722 "asyncinvoker-inl.h",
723 "asyncinvoker.cc",
724 "asyncinvoker.h",
725 "asyncpacketsocket.cc",
726 "asyncpacketsocket.h",
727 "asyncresolverinterface.cc",
728 "asyncresolverinterface.h",
729 "asyncsocket.cc",
730 "asyncsocket.h",
731 "asynctcpsocket.cc",
732 "asynctcpsocket.h",
733 "asyncudpsocket.cc",
734 "asyncudpsocket.h",
735 "crc32.cc",
736 "crc32.h",
737 "cryptstring.cc",
738 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100739 "data_rate_limiter.cc",
740 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100741 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200742 "filerotatingstream.cc",
743 "filerotatingstream.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200744 "gunit_prod.h",
745 "helpers.cc",
746 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200747 "httpcommon.cc",
748 "httpcommon.h",
749 "ipaddress.cc",
750 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100751 "keep_ref_until_done.h",
Benjamin Wrightb3f887b2018-10-30 13:53:30 -0700752 "key_derivation.cc",
753 "key_derivation.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700754 "mdns_responder_interface.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200755 "messagedigest.cc",
756 "messagedigest.h",
757 "messagehandler.cc",
758 "messagehandler.h",
759 "messagequeue.cc",
760 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800761 "nethelper.cc",
762 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200763 "nethelpers.cc",
764 "nethelpers.h",
765 "network.cc",
766 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200767 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200768 "networkmonitor.cc",
769 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100770 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200771 "nullsocketserver.cc",
772 "nullsocketserver.h",
773 "openssl.h",
Benjamin Wrightb3f887b2018-10-30 13:53:30 -0700774 "openssl_key_derivation_hkdf.cc",
775 "openssl_key_derivation_hkdf.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200776 "openssladapter.cc",
777 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700778 "opensslcertificate.cc",
779 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200780 "openssldigest.cc",
781 "openssldigest.h",
782 "opensslidentity.cc",
783 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700784 "opensslsessioncache.cc",
785 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200786 "opensslstreamadapter.cc",
787 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700788 "opensslutility.cc",
789 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200790 "physicalsocketserver.cc",
791 "physicalsocketserver.h",
792 "proxyinfo.cc",
793 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200794 "rtccertificate.cc",
795 "rtccertificate.h",
796 "rtccertificategenerator.cc",
797 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700798 "signalthread.cc",
799 "signalthread.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700800 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700801 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200802 "socket.h",
803 "socketadapters.cc",
804 "socketadapters.h",
805 "socketaddress.cc",
806 "socketaddress.h",
807 "socketaddresspair.cc",
808 "socketaddresspair.h",
809 "socketfactory.h",
810 "socketserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200811 "ssladapter.cc",
812 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700813 "sslcertificate.cc",
814 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200815 "sslfingerprint.cc",
816 "sslfingerprint.h",
817 "sslidentity.cc",
818 "sslidentity.h",
819 "sslstreamadapter.cc",
820 "sslstreamadapter.h",
821 "stream.cc",
822 "stream.h",
823 "thread.cc",
824 "thread.h",
825 ]
826
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200827 if (build_with_chromium) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200828 include_dirs = [ "../../boringssl/src/include" ]
829 public_configs += [ ":rtc_base_chromium_config" ]
830 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200831 sources += [
832 "callback.h",
833 "logsinks.cc",
834 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100835 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200836 "rollingaccumulator.h",
837 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200838 ]
839
840 if (is_win) {
841 sources += [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200842 "win32socketinit.h",
843 "win32socketserver.cc",
844 "win32socketserver.h",
845 ]
846 }
847 } # !build_with_chromium
848
849 if (rtc_build_ssl) {
850 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500851 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200852 configs += [ ":external_ssl_library" ]
853 }
854
855 if (is_android) {
856 sources += [
857 "ifaddrs-android.cc",
858 "ifaddrs-android.h",
859 ]
860
861 libs += [
862 "log",
863 "GLESv2",
864 ]
865 }
866
867 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700868 sources += [ "macifaddrs_converter.cc" ]
Kári Tristan Helgason62b13452018-10-12 12:57:49 +0200869 deps += [ "system:cocoa_threading" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200870 }
871
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100872 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200873 libs += [
874 "dl",
875 "rt",
876 "Xext",
877 "X11",
878 "Xcomposite",
879 "Xrender",
880 ]
881 }
882
883 if (is_linux) {
884 libs += [
885 "dl",
886 "rt",
887 ]
888 }
889
890 if (is_mac) {
891 sources += [
892 "macutils.cc",
893 "macutils.h",
894 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200895 }
896
897 if (is_win) {
898 sources += [
899 "win32.cc",
900 "win32.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",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200918 ]
919 }
920
921 if (is_nacl) {
922 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
923 defines += [ "timezone=_timezone" ]
924 sources -= [ "ifaddrs_converter.cc" ]
925 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200926}
927
928rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000929 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 sources = [
931 "gtest_prod_util.h",
932 ]
933}
934
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200935rtc_source_set("rtc_base_tests_utils") {
936 testonly = true
937 sources = [
938 # Also use this as a convenient dumping ground for misc files that are
939 # included by multiple targets below.
940 "cpu_time.cc",
941 "cpu_time.h",
Qingsi Wang09619332018-09-12 22:51:55 -0700942 "fake_mdns_responder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200943 "fakeclock.cc",
944 "fakeclock.h",
945 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700946 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200947 "fakesslidentity.h",
948 "firewallsocketserver.cc",
949 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800950 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200951 "gunit.h",
Niels Möllere7547d52018-11-01 09:33:08 +0100952 "memory_stream.cc",
953 "memory_stream.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",
Niels Möllercf58bf72018-10-18 17:02:05 +0200966 "socketstream.cc",
967 "socketstream.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200968 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700969 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200970 "testclient.cc",
971 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700972 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200973 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700974 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200975 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 "virtualsocketserver.cc",
977 "virtualsocketserver.h",
978 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200979 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100980 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200981 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100982 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +0200983 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200984 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100985 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +0200986 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200987 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200988 ]
989 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200990 "//testing/gtest",
991 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200992}
993
Tommida8781f2018-02-19 12:41:43 +0100994rtc_source_set("rtc_task_queue_for_test") {
995 visibility = [ "*" ]
996 testonly = true
997
998 sources = [
999 "task_queue_for_test.cc",
1000 "task_queue_for_test.h",
1001 ]
1002 deps = [
1003 ":checks",
1004 ":rtc_base_approved",
1005 ":rtc_task_queue",
1006 ]
1007}
1008
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001010 rtc_source_set("sigslot_unittest") {
1011 testonly = true
1012 sources = [
1013 "sigslot_unittest.cc",
1014 ]
1015 deps = [
1016 ":rtc_base",
1017 ":rtc_base_tests_utils",
1018 "third_party/sigslot",
1019 ]
1020 }
1021
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001022 rtc_source_set("rtc_base_tests_main") {
1023 testonly = true
1024 sources = [
1025 "unittest_main.cc",
1026 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 deps = [
1028 ":rtc_base",
1029 ":rtc_base_approved",
1030 ":rtc_base_tests_utils",
Mirko Bonadei17f48782018-09-28 08:51:10 +02001031 "../system_wrappers:field_trial",
1032 "../system_wrappers:metrics",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001033 "../test:field_trial",
1034 "../test:test_support",
1035 ]
1036
1037 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001038 "//testing/gtest",
1039 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040 }
1041
1042 rtc_source_set("rtc_base_nonparallel_tests") {
1043 testonly = true
1044
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001045 sources = [
1046 "cpu_time_unittest.cc",
1047 "filerotatingstream_unittest.cc",
1048 "nullsocketserver_unittest.cc",
1049 "physicalsocketserver_unittest.cc",
1050 "socket_unittest.cc",
1051 "socket_unittest.h",
1052 "socketaddress_unittest.cc",
1053 ]
1054 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001055 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001056 ":rtc_base",
1057 ":rtc_base_tests_main",
1058 ":rtc_base_tests_utils",
1059 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001060 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001061 "../test:test_support",
1062 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001063 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 ]
1065 if (is_win) {
1066 sources += [ "win32socketserver_unittest.cc" ]
1067 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001068 }
1069
1070 rtc_source_set("rtc_base_approved_unittests") {
1071 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001072 if (is_msan) {
1073 cflags = [ "-fsanitize=memory" ]
1074 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001075 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001076 "atomicops_unittest.cc",
1077 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 "bind_unittest.cc",
1079 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001080 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001081 "buffer_unittest.cc",
1082 "bufferqueue_unittest.cc",
1083 "bytebuffer_unittest.cc",
1084 "byteorder_unittest.cc",
1085 "copyonwritebuffer_unittest.cc",
1086 "criticalsection_unittest.cc",
1087 "event_tracer_unittest.cc",
1088 "event_unittest.cc",
1089 "file_unittest.cc",
1090 "function_view_unittest.cc",
1091 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001092 "numerics/histogram_percentile_counter_unittest.cc",
1093 "numerics/mod_ops_unittest.cc",
1094 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001095 "numerics/safe_compare_unittest.cc",
1096 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001097 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001098 "onetimeevent_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001099 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 "platform_thread_unittest.cc",
1101 "random_unittest.cc",
1102 "rate_limiter_unittest.cc",
1103 "rate_statistics_unittest.cc",
1104 "ratetracker_unittest.cc",
1105 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001106 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001107 "string_to_number_unittest.cc",
1108 "stringencode_unittest.cc",
1109 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001110 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001111 "stringutils_unittest.cc",
1112 "swap_queue_unittest.cc",
1113 "thread_annotations_unittest.cc",
1114 "thread_checker_unittest.cc",
1115 "timestampaligner_unittest.cc",
1116 "timeutils_unittest.cc",
1117 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001118 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001119 ]
henrika3ca48a62018-05-21 13:34:51 +02001120 if (is_win) {
1121 sources += [ "win/windows_version_unittest.cc" ]
1122 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001123 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001124 ":checks",
1125 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001126 ":rtc_base",
1127 ":rtc_base_approved",
1128 ":rtc_base_tests_main",
1129 ":rtc_base_tests_utils",
1130 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001131 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001132 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001133 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001134 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001135 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001136 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001137 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001139 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001140 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001141 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001142 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001143 }
1144
1145 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001146 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001147 testonly = true
1148
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001149 sources = [
Danil Chapovalova10d1642018-08-31 13:47:59 +02001150 "cancelable_periodic_task_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001151 "task_queue_unittest.cc",
1152 ]
1153 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001154 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001155 ":rtc_base_tests_main",
1156 ":rtc_base_tests_utils",
Danil Chapovalova10d1642018-08-31 13:47:59 +02001157 ":rtc_cancelable_task",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001158 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001159 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 "../test:test_support",
1161 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001162 }
1163
1164 rtc_source_set("sequenced_task_checker_unittests") {
1165 testonly = true
1166
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 sources = [
1168 "sequenced_task_checker_unittest.cc",
1169 ]
1170 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001171 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001172 ":rtc_base_approved",
1173 ":rtc_base_tests_main",
1174 ":rtc_task_queue",
1175 ":sequenced_task_checker",
1176 "../test:test_support",
1177 ]
1178 }
1179
1180 rtc_source_set("weak_ptr_unittests") {
1181 testonly = true
1182
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001183 sources = [
1184 "weak_ptr_unittest.cc",
1185 ]
1186 deps = [
Mirko Bonadeica270912018-10-10 15:51:03 +02001187 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001188 ":rtc_base_tests_main",
1189 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001190 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001191 ":rtc_task_queue",
1192 ":weak_ptr",
1193 "../test:test_support",
1194 ]
1195 }
1196
1197 rtc_source_set("rtc_numerics_unittests") {
1198 testonly = true
1199
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001200 sources = [
1201 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiy26341992018-11-05 12:55:18 +01001202 "numerics/moving_average_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001203 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001204 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001205 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001206 ]
1207 deps = [
1208 ":rtc_base_approved",
1209 ":rtc_base_tests_main",
1210 ":rtc_numerics",
1211 "../test:test_support",
1212 ]
1213 }
1214
Sam Zackrissonb45bdb52018-10-02 16:25:59 +02001215 rtc_source_set("rtc_json_unittests") {
1216 testonly = true
1217
1218 sources = [
1219 "strings/json_unittest.cc",
1220 ]
1221 deps = [
1222 ":rtc_base_tests_main",
1223 ":rtc_base_tests_utils",
1224 ":rtc_json",
1225 "../test:test_support",
1226 ]
1227 }
1228
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001229 rtc_source_set("rtc_base_unittests") {
1230 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001231 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001232
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001233 sources = [
1234 "callback_unittest.cc",
1235 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001236 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001237 "helpers_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001238 "ipaddress_unittest.cc",
1239 "memory_usage_unittest.cc",
1240 "messagedigest_unittest.cc",
1241 "messagequeue_unittest.cc",
1242 "nat_unittest.cc",
1243 "network_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001244 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001245 "rollingaccumulator_unittest.cc",
1246 "rtccertificate_unittest.cc",
1247 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001248 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001249 "sigslottester_unittest.cc",
1250 "stream_unittest.cc",
1251 "testclient_unittest.cc",
1252 "thread_unittest.cc",
1253 ]
1254 if (is_win) {
1255 sources += [
1256 "win32_unittest.cc",
1257 "win32window_unittest.cc",
1258 ]
1259 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001260 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001261 sources += [
Benjamin Wrightb3f887b2018-10-30 13:53:30 -07001262 "openssl_key_derivation_hkdf_unittest.cc",
Diogo Real1dca9d52017-08-29 12:18:32 -07001263 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001264 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001265 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001266 "ssladapter_unittest.cc",
1267 "sslidentity_unittest.cc",
1268 "sslstreamadapter_unittest.cc",
1269 ]
1270 }
1271 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001272 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001273 ":rtc_base_tests_main",
1274 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001275 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001276 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001277 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001278 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001279 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001280 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001281 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001282 ]
1283 public_deps = [
1284 ":rtc_base",
1285 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001286 if (build_with_chromium) {
1287 include_dirs = [ "../../boringssl/src/include" ]
1288 }
1289 if (rtc_build_ssl) {
1290 deps += [ "//third_party/boringssl" ]
1291 } else {
1292 configs += [ ":external_ssl_library" ]
1293 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001294 }
1295}
1296
Henrik Kjellander73e21802017-06-20 08:38:58 +02001297if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001298 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001299 java_files = [
1300 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001301 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001302 "java/src/org/webrtc/Logging.java",
1303 "java/src/org/webrtc/Size.java",
1304 "java/src/org/webrtc/ThreadUtils.java",
1305 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001306 }
1307}