blob: 2dd4dc7a74ba9df65f628236694c133045f1d525 [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) {
57 public_deps = [
58 "//third_party/protobuf:protobuf_lite",
59 ]
60 }
61}
62
Oleh Prypindd214742018-07-17 13:49:46 +020063rtc_source_set("compile_assert_c") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020064 sources = [
65 "compile_assert_c.h",
66 ]
67}
68
mbonadeibc378472017-09-11 03:43:34 -070069rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000070 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070071 public_deps = [
Tommi8d2c5a82018-03-19 11:12:48 +010072 ":atomicops",
73 ":criticalsection",
74 ":logging",
75 ":macromagic",
76 ":platform_thread",
77 ":platform_thread_types",
78 ":ptr_util",
79 ":refcount",
mbonadeibc378472017-09-11 03:43:34 -070080 ":rtc_base_approved_generic",
Tommi8d2c5a82018-03-19 11:12:48 +010081 ":rtc_event",
82 ":safe_conversions",
83 ":stringutils",
84 ":thread_checker",
85 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -070086 ]
87 if (is_mac && !build_with_chromium) {
88 public_deps += [ ":rtc_base_approved_objc" ]
89 }
90}
91
Tommi8d2c5a82018-03-19 11:12:48 +010092rtc_source_set("macromagic") {
93 sources = [
94 "arraysize.h",
Tommi8d2c5a82018-03-19 11:12:48 +010095 "constructormagic.h",
96 "format_macros.h",
97 "stringize_macros.h",
98 "thread_annotations.h",
99 ]
Niels Möllera12c42a2018-07-25 16:05:48 +0200100 deps = [
101 "system:arch",
102 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100103}
104
105rtc_source_set("platform_thread_types") {
106 sources = [
107 "platform_thread_types.cc",
108 "platform_thread_types.h",
109 ]
110}
111
112rtc_source_set("ptr_util") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200113 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100114 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100115 "scoped_ref_ptr.h",
116 ]
117}
118
119rtc_source_set("refcount") {
Mirko Bonadeica14a3a2018-08-09 09:47:12 +0200120 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100121 sources = [
122 "refcount.h",
123 "refcountedobject.h",
124 "refcounter.h",
125 ]
126 deps = [
127 ":atomicops",
128 ":macromagic",
129 ]
130}
131
132rtc_source_set("criticalsection") {
133 sources = [
134 "criticalsection.cc",
135 "criticalsection.h",
136 ]
137 deps = [
138 ":atomicops",
139 ":checks",
140 ":macromagic",
141 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200142 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100143 ]
144}
145
146rtc_source_set("platform_thread") {
147 visibility = [
148 ":rtc_base_approved",
149 ":rtc_base_approved_generic",
150 ":rtc_task_queue_libevent",
151 ":rtc_task_queue_win",
152 ":sequenced_task_checker",
153 ]
154 sources = [
155 "platform_thread.cc",
156 "platform_thread.h",
157 ]
158 deps = [
159 ":atomicops",
160 ":checks",
161 ":macromagic",
162 ":platform_thread_types",
163 ":rtc_event",
164 ":thread_checker",
165 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100166 ]
167}
168
169rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700170 deps = [
171 ":checks",
172 ":macromagic",
173 ]
174
Tommi8d2c5a82018-03-19 11:12:48 +0100175 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700176 # Dependency on chromium's waitable_event (in //base).
177 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100178 sources = [
179 "../../webrtc_overrides/rtc_base/event.cc",
180 "../../webrtc_overrides/rtc_base/event.h",
181 ]
182 } else {
183 sources = [
184 "event.cc",
185 "event.h",
186 ]
187 }
Tommi8d2c5a82018-03-19 11:12:48 +0100188}
189
190rtc_source_set("logging") {
191 deps = [
192 ":criticalsection",
193 ":macromagic",
194 ":platform_thread_types",
195 ":stringutils",
196 ":timeutils",
197 ]
198
199 if (build_with_chromium) {
200 # Dependency on chromium's logging (in //base).
201 deps += [ "//base:base" ]
202 sources = [
203 "../../webrtc_overrides/rtc_base/logging.cc",
204 "../../webrtc_overrides/rtc_base/logging.h",
205 ]
206 } else {
207 sources = [
208 "logging.cc",
209 "logging.h",
210 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200211 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100212
213 # logging.h needs the deprecation header while downstream projects are
214 # removing code that depends on logging implementation details.
215 deps += [ ":deprecation" ]
216 }
217}
218
219rtc_source_set("thread_checker") {
220 sources = [
221 "thread_checker.h",
222 "thread_checker_impl.cc",
223 "thread_checker_impl.h",
224 ]
225 deps = [
226 ":checks",
227 ":criticalsection",
228 ":macromagic",
229 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100230 ]
231}
232
233rtc_source_set("atomicops") {
234 sources = [
235 "atomicops.h",
236 ]
237}
238
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100239rtc_source_set("checks") {
240 sources = [
241 "checks.cc",
242 "checks.h",
243 ]
244 deps = [
245 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200246 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100247 ]
248}
249
Patrik Höglund3e113432017-12-15 14:40:10 +0100250rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100251 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100252 "rate_limiter.cc",
253 "rate_limiter.h",
254 ]
255 deps = [
256 ":rtc_base_approved",
257 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100258 ]
259}
260
261rtc_source_set("sanitizer") {
262 sources = [
263 "sanitizer.h",
264 ]
265}
266
267rtc_source_set("safe_compare") {
268 sources = [
269 "numerics/safe_compare.h",
270 ]
271 deps = [
272 ":type_traits",
273 ]
274}
275
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100276rtc_source_set("safe_minmax") {
277 sources = [
278 "numerics/safe_minmax.h",
279 ]
280 deps = [
281 ":checks",
282 ":safe_compare",
283 ":type_traits",
284 ]
285}
286
Tommi8d2c5a82018-03-19 11:12:48 +0100287rtc_source_set("safe_conversions") {
288 sources = [
289 "numerics/safe_conversions.h",
290 "numerics/safe_conversions_impl.h",
291 ]
292 deps = [
293 ":checks",
294 ]
295}
296
297rtc_source_set("timeutils") {
298 sources = [
299 "timeutils.cc",
300 "timeutils.h",
301 ]
302 deps = [
303 ":checks",
304 ":safe_conversions",
305 ]
306}
307
Patrik Höglund3e113432017-12-15 14:40:10 +0100308rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100309 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100310 "stringencode.cc",
311 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100312 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100313 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100314 "stringutils.cc",
315 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100316 ]
317 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100318 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100319 ":safe_minmax",
320 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100321 ]
322}
323
Jonas Olsson74395342018-04-03 12:22:07 +0200324rtc_source_set("audio_format_to_string") {
325 sources = [
326 "strings/audio_format_to_string.cc",
327 "strings/audio_format_to_string.h",
328 ]
329 deps = [
330 ":stringutils",
331 "../api/audio_codecs:audio_codecs_api",
332 ]
333}
334
Patrik Höglund3e113432017-12-15 14:40:10 +0100335rtc_source_set("type_traits") {
336 sources = [
337 "type_traits.h",
338 ]
339}
340
341rtc_source_set("deprecation") {
342 sources = [
343 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100344 ]
345}
346
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200347# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700348rtc_source_set("rtc_base_approved_generic") {
349 visibility = [
350 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100351 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700352 ]
353
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100354 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200355 defines = []
356 libs = []
Michael Achenbach22060972018-04-09 09:34:21 +0200357 data_deps = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100358 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100359 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100360 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100361 ":criticalsection",
362 ":logging",
363 ":macromagic",
364 ":platform_thread",
365 ":platform_thread_types",
366 ":ptr_util",
367 ":refcount",
368 ":rtc_event",
369 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100370 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100371 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100372 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100373 ":thread_checker",
374 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100375 ":type_traits",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200376 "system:arch",
Niels Möllera12c42a2018-07-25 16:05:48 +0200377 "system:unused",
Artem Titova76af0c2018-07-23 17:38:12 +0200378 "third_party/base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100379 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200380
381 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200382 "bind.h",
383 "bitbuffer.cc",
384 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200385 "bitrateallocationstrategy.cc",
386 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200387 "buffer.h",
388 "bufferqueue.cc",
389 "bufferqueue.h",
390 "bytebuffer.cc",
391 "bytebuffer.h",
392 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200393 "copyonwritebuffer.cc",
394 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200395 "event_tracer.cc",
396 "event_tracer.h",
397 "file.cc",
398 "file.h",
399 "flags.cc",
400 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200401 "function_view.h",
402 "ignore_wundef.h",
403 "location.cc",
404 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100405 "numerics/histogram_percentile_counter.cc",
406 "numerics/histogram_percentile_counter.h",
407 "numerics/mod_ops.h",
408 "numerics/moving_max_counter.h",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +0200409 "numerics/sample_counter.cc",
410 "numerics/sample_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200411 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200412 "pathutils.cc",
413 "pathutils.h",
414 "platform_file.cc",
415 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200416 "race_checker.cc",
417 "race_checker.h",
418 "random.cc",
419 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200420 "rate_statistics.cc",
421 "rate_statistics.h",
422 "ratetracker.cc",
423 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200424 "string_to_number.cc",
425 "string_to_number.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200426 "swap_queue.h",
427 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200428 "timestampaligner.cc",
429 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200430 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100431 "zero_memory.cc",
432 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200433 ]
434
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100435 deps += [
436 "..:webrtc_common",
437 "../api:array_view",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200438 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100439 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200440
441 if (is_android) {
442 libs += [ "log" ]
443 }
444
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700445 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200446 sources += [ "file_posix.cc" ]
447 }
448
449 if (is_win) {
henrika3ca48a62018-05-21 13:34:51 +0200450 sources += [
451 "file_win.cc",
452 "win/windows_version.cc",
453 "win/windows_version.h",
454 ]
Michael Achenbach22060972018-04-09 09:34:21 +0200455 data_deps += [ "//build/win:runtime_libs" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200456 }
457
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200458 if (is_nacl) {
459 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
460 }
461}
462
mbonadeibc378472017-09-11 03:43:34 -0700463if (is_mac && !build_with_chromium) {
464 config("rtc_base_approved_objc_all_dependent_config") {
465 visibility = [ ":rtc_base_approved_objc" ]
466 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
467 }
468
469 rtc_source_set("rtc_base_approved_objc") {
470 visibility = [ ":rtc_base_approved" ]
471 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
472 sources = [
473 "logging_mac.mm",
474 ]
475 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100476 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700477 ]
478 }
479}
480
perkj650fdae2017-08-25 05:00:11 -0700481rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000482 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100483 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700484 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700485 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200486 ]
487
perkj650fdae2017-08-25 05:00:11 -0700488 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700489 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700490 }
491}
492
493# WebRTC targets must not directly depend on rtc_task_queue_api or
494# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
495# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
496# to the default implemenation in rtc_task_queue_impl or if an externally
497# provided implementation should be used. An external implementation should
498# depend on rtc_task_queue_api.
499rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100500 # The visibility list is commented out so that we won't break external
501 # implementations, but left here to manually test as well as for sake of what
502 # targets we expect to depend on rtc_task_queue_api.
503 # visibility = [
504 # ":rtc_task_queue",
505 # ":rtc_task_queue_impl",
506 # ":sequenced_task_checker",
507 # ]
nisse75dd6d42017-09-19 08:28:00 -0700508 sources = [
509 "task_queue.h",
510 ]
perkj650fdae2017-08-25 05:00:11 -0700511 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100512 ":macromagic",
513 ":ptr_util",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200514 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700515 ]
516}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200517
Tommi8d2c5a82018-03-19 11:12:48 +0100518if (rtc_enable_libevent) {
519 rtc_source_set("rtc_task_queue_libevent") {
520 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700521 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200522 "task_queue_libevent.cc",
523 "task_queue_posix.cc",
524 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700525 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100526 deps = [
527 ":checks",
528 ":criticalsection",
529 ":logging",
530 ":platform_thread",
531 ":ptr_util",
532 ":refcount",
533 ":rtc_task_queue_api",
534 ":safe_conversions",
535 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200536 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100537 ]
538 if (rtc_build_libevent) {
539 deps += [ "//base/third_party/libevent" ]
540 }
541 }
542}
543
544if (is_mac || is_ios) {
545 rtc_source_set("rtc_task_queue_gcd") {
546 visibility = [ ":rtc_task_queue_impl" ]
547 sources = [
548 "task_queue_gcd.cc",
549 "task_queue_posix.cc",
550 "task_queue_posix.h",
551 ]
552 deps = [
553 ":checks",
554 ":logging",
555 ":ptr_util",
556 ":refcount",
557 ":rtc_task_queue_api",
558 ]
559 }
560}
561
562if (is_win) {
563 rtc_source_set("rtc_task_queue_win") {
564 visibility = [ ":rtc_task_queue_impl" ]
565 sources = [
566 "task_queue_win.cc",
567 ]
568 deps = [
569 ":checks",
570 ":criticalsection",
571 ":logging",
572 ":macromagic",
573 ":platform_thread",
574 ":ptr_util",
575 ":refcount",
576 ":rtc_event",
577 ":rtc_task_queue_api",
578 ":safe_conversions",
579 ":timeutils",
580 ]
581 }
582}
583
584rtc_source_set("rtc_task_queue_impl") {
585 visibility = [ "*" ]
586 if (rtc_enable_libevent) {
587 deps = [
588 ":rtc_task_queue_libevent",
589 ]
perkj650fdae2017-08-25 05:00:11 -0700590 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200591 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100592 deps = [
593 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200594 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200595 }
596 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100597 deps = [
598 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200599 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200600 }
601 }
602}
603
Tommi8d2c5a82018-03-19 11:12:48 +0100604rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200605 sources = [
606 "sequenced_task_checker.h",
607 "sequenced_task_checker_impl.cc",
608 "sequenced_task_checker_impl.h",
609 ]
610 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100611 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100612 ":criticalsection",
613 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200614 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100615 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200616 ]
617}
618
619rtc_static_library("weak_ptr") {
620 sources = [
621 "weak_ptr.cc",
622 "weak_ptr.h",
623 ]
624 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100625 ":ptr_util",
626 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200627 ":sequenced_task_checker",
628 ]
629}
630
631rtc_static_library("rtc_numerics") {
632 sources = [
633 "numerics/exp_filter.cc",
634 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100635 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200636 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200637 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200638 ]
639 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100640 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200641 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100642 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200643 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200644 ]
645}
646
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200647rtc_source_set("rtc_json") {
Jonas Olsson55378f42018-05-25 10:23:10 +0200648 testonly = true
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200649 defines = []
650 sources = [
651 "json.cc",
652 "json.h",
653 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100654 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200655 if (rtc_build_json) {
656 public_deps = [
657 "//third_party/jsoncpp",
658 ]
659 } else {
660 include_dirs = [ "$rtc_jsoncpp_root" ]
661
662 # When defined changes the include path for json.h to where it is
663 # expected to be when building json outside of the standalone build.
664 defines += [ "WEBRTC_EXTERNAL_JSON" ]
665 }
666}
667
mbonadei9c5e5112017-09-05 05:17:02 -0700668rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000669 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500670 public_deps = []
671 if (!build_with_mozilla) {
672 public_deps += [ ":rtc_base_generic" ]
673 }
mbonadei310e32b2017-09-07 07:36:28 -0700674 if (is_win) {
675 sources = [
676 "noop.cc",
677 ]
678 }
679 if (is_ios || is_mac) {
680 sources = [
681 "noop.mm",
682 ]
683 public_deps += [ ":rtc_base_objc" ]
684 }
685}
686
687if (is_ios || is_mac) {
688 rtc_source_set("rtc_base_objc") {
689 sources = [
690 "thread_darwin.mm",
691 ]
692 deps = [
693 ":rtc_base_generic",
694 ]
695 visibility = [ ":rtc_base" ]
696 }
697}
698
699rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200700 cflags = []
701 cflags_cc = []
702 libs = []
703 defines = []
704 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100705 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100706 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200707 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100708 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200709 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200710 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200711 "//third_party/abseil-cpp/absl/memory",
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",
744 "fileutils.cc",
745 "fileutils.h",
746 "gunit_prod.h",
747 "helpers.cc",
748 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200749 "httpcommon-inl.h",
750 "httpcommon.cc",
751 "httpcommon.h",
752 "ipaddress.cc",
753 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100754 "keep_ref_until_done.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",
774 "openssladapter.cc",
775 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700776 "opensslcertificate.cc",
777 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200778 "openssldigest.cc",
779 "openssldigest.h",
780 "opensslidentity.cc",
781 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700782 "opensslsessioncache.cc",
783 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200784 "opensslstreamadapter.cc",
785 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700786 "opensslutility.cc",
787 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200788 "physicalsocketserver.cc",
789 "physicalsocketserver.h",
790 "proxyinfo.cc",
791 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200792 "rtccertificate.cc",
793 "rtccertificate.h",
794 "rtccertificategenerator.cc",
795 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700796 "signalthread.cc",
797 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200798 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700799 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700800 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200801 "socket.h",
802 "socketadapters.cc",
803 "socketadapters.h",
804 "socketaddress.cc",
805 "socketaddress.h",
806 "socketaddresspair.cc",
807 "socketaddresspair.h",
808 "socketfactory.h",
809 "socketserver.h",
810 "socketstream.cc",
811 "socketstream.h",
812 "ssladapter.cc",
813 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700814 "sslcertificate.cc",
815 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200816 "sslfingerprint.cc",
817 "sslfingerprint.h",
818 "sslidentity.cc",
819 "sslidentity.h",
820 "sslstreamadapter.cc",
821 "sslstreamadapter.h",
822 "stream.cc",
823 "stream.h",
824 "thread.cc",
825 "thread.h",
826 ]
827
mbonadei310e32b2017-09-07 07:36:28 -0700828 visibility = [
829 ":rtc_base",
830 ":rtc_base_objc",
831 ]
832
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200833 if (build_with_chromium) {
834 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200835 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200836 }
837 include_dirs = [ "../../boringssl/src/include" ]
838 public_configs += [ ":rtc_base_chromium_config" ]
839 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200840 sources += [
841 "callback.h",
842 "logsinks.cc",
843 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100844 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200845 "optionsfile.cc",
846 "optionsfile.h",
847 "rollingaccumulator.h",
848 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200849 ]
850
851 if (is_win) {
852 sources += [
853 "win32socketinit.cc",
854 "win32socketinit.h",
855 "win32socketserver.cc",
856 "win32socketserver.h",
857 ]
858 }
859 } # !build_with_chromium
860
861 if (rtc_build_ssl) {
862 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500863 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200864 configs += [ ":external_ssl_library" ]
865 }
866
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700867 if (rtc_builtin_ssl_root_certificates) {
Benjamin Wrighta7087e32018-05-29 17:46:04 -0700868 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700869 }
870
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200871 if (is_android) {
872 sources += [
873 "ifaddrs-android.cc",
874 "ifaddrs-android.h",
875 ]
876
877 libs += [
878 "log",
879 "GLESv2",
880 ]
881 }
882
883 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700884 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200885 }
886
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100887 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200888 libs += [
889 "dl",
890 "rt",
891 "Xext",
892 "X11",
893 "Xcomposite",
894 "Xrender",
895 ]
896 }
897
898 if (is_linux) {
899 libs += [
900 "dl",
901 "rt",
902 ]
903 }
904
905 if (is_mac) {
906 sources += [
907 "macutils.cc",
908 "macutils.h",
909 ]
910 libs += [
911 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
912 "ApplicationServices.framework",
913 ]
914 }
915
916 if (is_win) {
917 sources += [
918 "win32.cc",
919 "win32.h",
920 "win32filesystem.cc",
921 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200922 "win32window.cc",
923 "win32window.h",
924 ]
925
926 libs += [
927 "crypt32.lib",
928 "iphlpapi.lib",
929 "secur32.lib",
930 ]
931
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200932 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
933 }
934
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700935 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200936 sources += [
937 "ifaddrs_converter.cc",
938 "ifaddrs_converter.h",
939 "unixfilesystem.cc",
940 "unixfilesystem.h",
941 ]
942 }
943
944 if (is_nacl) {
945 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
946 defines += [ "timezone=_timezone" ]
947 sources -= [ "ifaddrs_converter.cc" ]
948 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200949}
950
951rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000952 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 sources = [
954 "gtest_prod_util.h",
955 ]
956}
957
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200958rtc_source_set("rtc_base_tests_utils") {
959 testonly = true
960 sources = [
961 # Also use this as a convenient dumping ground for misc files that are
962 # included by multiple targets below.
963 "cpu_time.cc",
964 "cpu_time.h",
965 "fakeclock.cc",
966 "fakeclock.h",
967 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700968 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200969 "fakesslidentity.h",
970 "firewallsocketserver.cc",
971 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800972 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200973 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100974 "httpbase.cc",
975 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 "httpserver.cc",
977 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200978 "memory_usage.cc",
979 "memory_usage.h",
980 "natserver.cc",
981 "natserver.h",
982 "natsocketfactory.cc",
983 "natsocketfactory.h",
984 "nattypes.cc",
985 "nattypes.h",
986 "proxyserver.cc",
987 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200988 "sigslottester.h",
989 "sigslottester.h.pump",
990 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700991 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200992 "testclient.cc",
993 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700994 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200995 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700996 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200997 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200998 "virtualsocketserver.cc",
999 "virtualsocketserver.h",
1000 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001001 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001002 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001003 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001004 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001005 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "../test:field_trial",
1007 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001008 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001009 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001010 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001011 ]
1012 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001013 "//testing/gtest",
1014 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001015}
1016
Tommida8781f2018-02-19 12:41:43 +01001017rtc_source_set("rtc_task_queue_for_test") {
1018 visibility = [ "*" ]
1019 testonly = true
1020
1021 sources = [
1022 "task_queue_for_test.cc",
1023 "task_queue_for_test.h",
1024 ]
1025 deps = [
1026 ":checks",
1027 ":rtc_base_approved",
1028 ":rtc_task_queue",
1029 ]
1030}
1031
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001032if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001033 rtc_source_set("sigslot_unittest") {
1034 testonly = true
1035 sources = [
1036 "sigslot_unittest.cc",
1037 ]
1038 deps = [
1039 ":rtc_base",
1040 ":rtc_base_tests_utils",
1041 "third_party/sigslot",
1042 ]
1043 }
1044
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001045 rtc_source_set("rtc_base_tests_main") {
1046 testonly = true
1047 sources = [
1048 "unittest_main.cc",
1049 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001050 deps = [
1051 ":rtc_base",
1052 ":rtc_base_approved",
1053 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001054 "../system_wrappers:field_trial_default",
Qingsi Wang7fc821d2018-07-12 12:54:53 -07001055 "../system_wrappers:metrics_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001056 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001057 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001058 "../test:test_support",
1059 ]
1060
1061 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001062 "//testing/gtest",
1063 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 }
1065
1066 rtc_source_set("rtc_base_nonparallel_tests") {
1067 testonly = true
1068
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001069 sources = [
1070 "cpu_time_unittest.cc",
1071 "filerotatingstream_unittest.cc",
1072 "nullsocketserver_unittest.cc",
1073 "physicalsocketserver_unittest.cc",
1074 "socket_unittest.cc",
1075 "socket_unittest.h",
1076 "socketaddress_unittest.cc",
1077 ]
1078 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001079 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001080 ":rtc_base",
1081 ":rtc_base_tests_main",
1082 ":rtc_base_tests_utils",
1083 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001084 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001085 "../test:test_support",
1086 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001087 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001088 ]
1089 if (is_win) {
1090 sources += [ "win32socketserver_unittest.cc" ]
1091 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001092 }
1093
1094 rtc_source_set("rtc_base_approved_unittests") {
1095 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001096 if (is_msan) {
1097 cflags = [ "-fsanitize=memory" ]
1098 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001099 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 "atomicops_unittest.cc",
1101 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001102 "bind_unittest.cc",
1103 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001104 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001105 "buffer_unittest.cc",
1106 "bufferqueue_unittest.cc",
1107 "bytebuffer_unittest.cc",
1108 "byteorder_unittest.cc",
1109 "copyonwritebuffer_unittest.cc",
1110 "criticalsection_unittest.cc",
1111 "event_tracer_unittest.cc",
1112 "event_unittest.cc",
1113 "file_unittest.cc",
1114 "function_view_unittest.cc",
1115 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001116 "numerics/histogram_percentile_counter_unittest.cc",
1117 "numerics/mod_ops_unittest.cc",
1118 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001119 "numerics/safe_compare_unittest.cc",
1120 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001121 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001123 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001124 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001125 "platform_thread_unittest.cc",
1126 "random_unittest.cc",
1127 "rate_limiter_unittest.cc",
1128 "rate_statistics_unittest.cc",
1129 "ratetracker_unittest.cc",
1130 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001131 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001132 "string_to_number_unittest.cc",
1133 "stringencode_unittest.cc",
1134 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001135 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001136 "stringutils_unittest.cc",
1137 "swap_queue_unittest.cc",
1138 "thread_annotations_unittest.cc",
1139 "thread_checker_unittest.cc",
1140 "timestampaligner_unittest.cc",
1141 "timeutils_unittest.cc",
1142 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001143 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001144 ]
henrika3ca48a62018-05-21 13:34:51 +02001145 if (is_win) {
1146 sources += [ "win/windows_version_unittest.cc" ]
1147 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001148 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001149 ":checks",
1150 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001151 ":rtc_base",
1152 ":rtc_base_approved",
1153 ":rtc_base_tests_main",
1154 ":rtc_base_tests_utils",
1155 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001156 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001157 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001158 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001159 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001160 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001161 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001162 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001163 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001164 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001165 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001166 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001168 }
1169
1170 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001171 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001172 testonly = true
1173
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001174 sources = [
1175 "task_queue_unittest.cc",
1176 ]
1177 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001178 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001179 ":rtc_base_tests_main",
1180 ":rtc_base_tests_utils",
1181 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001182 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001183 "../test:test_support",
1184 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001185 }
1186
1187 rtc_source_set("sequenced_task_checker_unittests") {
1188 testonly = true
1189
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001190 sources = [
1191 "sequenced_task_checker_unittest.cc",
1192 ]
1193 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001194 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001195 ":rtc_base_approved",
1196 ":rtc_base_tests_main",
1197 ":rtc_task_queue",
1198 ":sequenced_task_checker",
1199 "../test:test_support",
1200 ]
1201 }
1202
1203 rtc_source_set("weak_ptr_unittests") {
1204 testonly = true
1205
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001206 sources = [
1207 "weak_ptr_unittest.cc",
1208 ]
1209 deps = [
Tommi897e1362017-12-01 18:56:43 +01001210 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001211 ":rtc_base_tests_main",
1212 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001213 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001214 ":rtc_task_queue",
1215 ":weak_ptr",
1216 "../test:test_support",
1217 ]
1218 }
1219
1220 rtc_source_set("rtc_numerics_unittests") {
1221 testonly = true
1222
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001223 sources = [
1224 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001225 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001226 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001227 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001228 ]
1229 deps = [
1230 ":rtc_base_approved",
1231 ":rtc_base_tests_main",
1232 ":rtc_numerics",
1233 "../test:test_support",
1234 ]
1235 }
1236
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001237 rtc_source_set("rtc_base_unittests") {
1238 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001239 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001240
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001241 sources = [
1242 "callback_unittest.cc",
1243 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001244 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001245 "helpers_unittest.cc",
1246 "httpbase_unittest.cc",
1247 "httpcommon_unittest.cc",
1248 "httpserver_unittest.cc",
1249 "ipaddress_unittest.cc",
1250 "memory_usage_unittest.cc",
1251 "messagedigest_unittest.cc",
1252 "messagequeue_unittest.cc",
1253 "nat_unittest.cc",
1254 "network_unittest.cc",
1255 "optionsfile_unittest.cc",
1256 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001257 "rollingaccumulator_unittest.cc",
1258 "rtccertificate_unittest.cc",
1259 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001260 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001261 "sigslottester_unittest.cc",
1262 "stream_unittest.cc",
1263 "testclient_unittest.cc",
1264 "thread_unittest.cc",
1265 ]
1266 if (is_win) {
1267 sources += [
1268 "win32_unittest.cc",
1269 "win32window_unittest.cc",
1270 ]
1271 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001272 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001273 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001274 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001275 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001276 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001277 "ssladapter_unittest.cc",
1278 "sslidentity_unittest.cc",
1279 "sslstreamadapter_unittest.cc",
1280 ]
1281 }
1282 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001283 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001284 ":rtc_base_tests_main",
1285 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001286 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001287 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001288 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001289 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001290 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001291 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001292 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 ]
1294 public_deps = [
1295 ":rtc_base",
1296 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001297 if (build_with_chromium) {
1298 include_dirs = [ "../../boringssl/src/include" ]
1299 }
1300 if (rtc_build_ssl) {
1301 deps += [ "//third_party/boringssl" ]
1302 } else {
1303 configs += [ ":external_ssl_library" ]
1304 }
Benjamin Wrighta7087e32018-05-29 17:46:04 -07001305 if (rtc_builtin_ssl_root_certificates) {
1306 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001307 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001308 }
1309}
1310
Henrik Kjellander73e21802017-06-20 08:38:58 +02001311if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001312 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001313 java_files = [
1314 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001315 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001316 "java/src/org/webrtc/Logging.java",
1317 "java/src/org/webrtc/Size.java",
1318 "java/src/org/webrtc/ThreadUtils.java",
1319 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001320 }
1321}