blob: fb6f103203c9745b6946911eee57a8c1bc0dcb57 [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") {
113 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100114 "scoped_ref_ptr.h",
115 ]
116}
117
118rtc_source_set("refcount") {
119 sources = [
120 "refcount.h",
121 "refcountedobject.h",
122 "refcounter.h",
123 ]
124 deps = [
125 ":atomicops",
126 ":macromagic",
127 ]
128}
129
130rtc_source_set("criticalsection") {
131 sources = [
132 "criticalsection.cc",
133 "criticalsection.h",
134 ]
135 deps = [
136 ":atomicops",
137 ":checks",
138 ":macromagic",
139 ":platform_thread_types",
Niels Möllera12c42a2018-07-25 16:05:48 +0200140 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100141 ]
142}
143
144rtc_source_set("platform_thread") {
145 visibility = [
146 ":rtc_base_approved",
147 ":rtc_base_approved_generic",
148 ":rtc_task_queue_libevent",
149 ":rtc_task_queue_win",
150 ":sequenced_task_checker",
151 ]
152 sources = [
153 "platform_thread.cc",
154 "platform_thread.h",
155 ]
156 deps = [
157 ":atomicops",
158 ":checks",
159 ":macromagic",
160 ":platform_thread_types",
161 ":rtc_event",
162 ":thread_checker",
163 ":timeutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100164 ]
165}
166
167rtc_source_set("rtc_event") {
John Budorick6c9a7862018-03-26 06:23:34 -0700168 deps = [
169 ":checks",
170 ":macromagic",
171 ]
172
Tommi8d2c5a82018-03-19 11:12:48 +0100173 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700174 # Dependency on chromium's waitable_event (in //base).
175 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100176 sources = [
177 "../../webrtc_overrides/rtc_base/event.cc",
178 "../../webrtc_overrides/rtc_base/event.h",
179 ]
180 } else {
181 sources = [
182 "event.cc",
183 "event.h",
184 ]
185 }
Tommi8d2c5a82018-03-19 11:12:48 +0100186}
187
188rtc_source_set("logging") {
189 deps = [
190 ":criticalsection",
191 ":macromagic",
192 ":platform_thread_types",
193 ":stringutils",
194 ":timeutils",
195 ]
196
197 if (build_with_chromium) {
198 # Dependency on chromium's logging (in //base).
199 deps += [ "//base:base" ]
200 sources = [
201 "../../webrtc_overrides/rtc_base/logging.cc",
202 "../../webrtc_overrides/rtc_base/logging.h",
203 ]
204 } else {
205 sources = [
206 "logging.cc",
207 "logging.h",
208 ]
Karl Wibergcefc4652018-05-23 23:20:38 +0200209 deps += [ "system:inline" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100210
211 # logging.h needs the deprecation header while downstream projects are
212 # removing code that depends on logging implementation details.
213 deps += [ ":deprecation" ]
214 }
215}
216
217rtc_source_set("thread_checker") {
218 sources = [
219 "thread_checker.h",
220 "thread_checker_impl.cc",
221 "thread_checker_impl.h",
222 ]
223 deps = [
224 ":checks",
225 ":criticalsection",
226 ":macromagic",
227 ":platform_thread_types",
Tommi8d2c5a82018-03-19 11:12:48 +0100228 ]
229}
230
231rtc_source_set("atomicops") {
232 sources = [
233 "atomicops.h",
234 ]
235}
236
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100237rtc_source_set("checks") {
238 sources = [
239 "checks.cc",
240 "checks.h",
241 ]
242 deps = [
243 ":safe_compare",
Jonas Olssonf8e5c112018-06-14 13:14:22 +0200244 "system:inline",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100245 ]
246}
247
Patrik Höglund3e113432017-12-15 14:40:10 +0100248rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100249 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100250 "rate_limiter.cc",
251 "rate_limiter.h",
252 ]
253 deps = [
254 ":rtc_base_approved",
255 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100256 ]
257}
258
259rtc_source_set("sanitizer") {
260 sources = [
261 "sanitizer.h",
262 ]
263}
264
265rtc_source_set("safe_compare") {
266 sources = [
267 "numerics/safe_compare.h",
268 ]
269 deps = [
270 ":type_traits",
271 ]
272}
273
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100274rtc_source_set("safe_minmax") {
275 sources = [
276 "numerics/safe_minmax.h",
277 ]
278 deps = [
279 ":checks",
280 ":safe_compare",
281 ":type_traits",
282 ]
283}
284
Tommi8d2c5a82018-03-19 11:12:48 +0100285rtc_source_set("safe_conversions") {
286 sources = [
287 "numerics/safe_conversions.h",
288 "numerics/safe_conversions_impl.h",
289 ]
290 deps = [
291 ":checks",
292 ]
293}
294
295rtc_source_set("timeutils") {
296 sources = [
297 "timeutils.cc",
298 "timeutils.h",
299 ]
300 deps = [
301 ":checks",
302 ":safe_conversions",
303 ]
304}
305
Patrik Höglund3e113432017-12-15 14:40:10 +0100306rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100307 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100308 "stringencode.cc",
309 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100310 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100311 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100312 "stringutils.cc",
313 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100314 ]
315 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100316 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100317 ":safe_minmax",
318 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100319 ]
320}
321
Jonas Olsson74395342018-04-03 12:22:07 +0200322rtc_source_set("audio_format_to_string") {
323 sources = [
324 "strings/audio_format_to_string.cc",
325 "strings/audio_format_to_string.h",
326 ]
327 deps = [
328 ":stringutils",
329 "../api/audio_codecs:audio_codecs_api",
330 ]
331}
332
Patrik Höglund3e113432017-12-15 14:40:10 +0100333rtc_source_set("type_traits") {
334 sources = [
335 "type_traits.h",
336 ]
337}
338
339rtc_source_set("deprecation") {
340 sources = [
341 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100342 ]
343}
344
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200345# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700346rtc_source_set("rtc_base_approved_generic") {
347 visibility = [
348 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100349 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700350 ]
351
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100352 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200353 defines = []
354 libs = []
Michael Achenbach22060972018-04-09 09:34:21 +0200355 data_deps = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100356 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100357 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100358 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100359 ":criticalsection",
360 ":logging",
361 ":macromagic",
362 ":platform_thread",
363 ":platform_thread_types",
364 ":ptr_util",
365 ":refcount",
366 ":rtc_event",
367 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100368 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100369 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100370 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100371 ":thread_checker",
372 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100373 ":type_traits",
Niels Möllerb06b0a62018-05-25 10:05:34 +0200374 "system:arch",
Niels Möllera12c42a2018-07-25 16:05:48 +0200375 "system:unused",
Artem Titova76af0c2018-07-23 17:38:12 +0200376 "third_party/base64",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100377 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200378
379 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200380 "bind.h",
381 "bitbuffer.cc",
382 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200383 "bitrateallocationstrategy.cc",
384 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200385 "buffer.h",
386 "bufferqueue.cc",
387 "bufferqueue.h",
388 "bytebuffer.cc",
389 "bytebuffer.h",
390 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200391 "copyonwritebuffer.cc",
392 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200393 "event_tracer.cc",
394 "event_tracer.h",
395 "file.cc",
396 "file.h",
397 "flags.cc",
398 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200399 "function_view.h",
400 "ignore_wundef.h",
401 "location.cc",
402 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100403 "numerics/histogram_percentile_counter.cc",
404 "numerics/histogram_percentile_counter.h",
405 "numerics/mod_ops.h",
406 "numerics/moving_max_counter.h",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +0200407 "numerics/sample_counter.cc",
408 "numerics/sample_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200409 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200410 "pathutils.cc",
411 "pathutils.h",
412 "platform_file.cc",
413 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200414 "race_checker.cc",
415 "race_checker.h",
416 "random.cc",
417 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200418 "rate_statistics.cc",
419 "rate_statistics.h",
420 "ratetracker.cc",
421 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200422 "string_to_number.cc",
423 "string_to_number.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200424 "swap_queue.h",
425 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200426 "timestampaligner.cc",
427 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200428 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100429 "zero_memory.cc",
430 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200431 ]
432
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100433 deps += [
434 "..:webrtc_common",
435 "../api:array_view",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200436 "//third_party/abseil-cpp/absl/types:optional",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100437 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200438
439 if (is_android) {
440 libs += [ "log" ]
441 }
442
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700443 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200444 sources += [ "file_posix.cc" ]
445 }
446
447 if (is_win) {
henrika3ca48a62018-05-21 13:34:51 +0200448 sources += [
449 "file_win.cc",
450 "win/windows_version.cc",
451 "win/windows_version.h",
452 ]
Michael Achenbach22060972018-04-09 09:34:21 +0200453 data_deps += [ "//build/win:runtime_libs" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200454 }
455
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200456 if (is_nacl) {
457 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
458 }
459}
460
mbonadeibc378472017-09-11 03:43:34 -0700461if (is_mac && !build_with_chromium) {
462 config("rtc_base_approved_objc_all_dependent_config") {
463 visibility = [ ":rtc_base_approved_objc" ]
464 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
465 }
466
467 rtc_source_set("rtc_base_approved_objc") {
468 visibility = [ ":rtc_base_approved" ]
469 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
470 sources = [
471 "logging_mac.mm",
472 ]
473 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100474 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700475 ]
476 }
477}
478
Artem Titov6bbeb082018-06-18 14:25:54 +0200479rtc_source_set("base64") {
480 visibility = [ "*" ]
481 sources = [
Artem Titov6bbeb082018-06-18 14:25:54 +0200482 "base64.h",
483 ]
Artem Titova76af0c2018-07-23 17:38:12 +0200484 deps = [
485 "third_party/base64",
486 ]
Artem Titov6bbeb082018-06-18 14:25:54 +0200487}
488
perkj650fdae2017-08-25 05:00:11 -0700489rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000490 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100491 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700492 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700493 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200494 ]
495
perkj650fdae2017-08-25 05:00:11 -0700496 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700497 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700498 }
499}
500
501# WebRTC targets must not directly depend on rtc_task_queue_api or
502# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
503# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
504# to the default implemenation in rtc_task_queue_impl or if an externally
505# provided implementation should be used. An external implementation should
506# depend on rtc_task_queue_api.
507rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100508 # The visibility list is commented out so that we won't break external
509 # implementations, but left here to manually test as well as for sake of what
510 # targets we expect to depend on rtc_task_queue_api.
511 # visibility = [
512 # ":rtc_task_queue",
513 # ":rtc_task_queue_impl",
514 # ":sequenced_task_checker",
515 # ]
nisse75dd6d42017-09-19 08:28:00 -0700516 sources = [
517 "task_queue.h",
518 ]
perkj650fdae2017-08-25 05:00:11 -0700519 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100520 ":macromagic",
521 ":ptr_util",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200522 "//third_party/abseil-cpp/absl/memory",
perkj650fdae2017-08-25 05:00:11 -0700523 ]
524}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200525
Tommi8d2c5a82018-03-19 11:12:48 +0100526if (rtc_enable_libevent) {
527 rtc_source_set("rtc_task_queue_libevent") {
528 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700529 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200530 "task_queue_libevent.cc",
531 "task_queue_posix.cc",
532 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700533 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100534 deps = [
535 ":checks",
536 ":criticalsection",
537 ":logging",
538 ":platform_thread",
539 ":ptr_util",
540 ":refcount",
541 ":rtc_task_queue_api",
542 ":safe_conversions",
543 ":timeutils",
Niels Möllera12c42a2018-07-25 16:05:48 +0200544 "system:unused",
Tommi8d2c5a82018-03-19 11:12:48 +0100545 ]
546 if (rtc_build_libevent) {
547 deps += [ "//base/third_party/libevent" ]
548 }
549 }
550}
551
552if (is_mac || is_ios) {
553 rtc_source_set("rtc_task_queue_gcd") {
554 visibility = [ ":rtc_task_queue_impl" ]
555 sources = [
556 "task_queue_gcd.cc",
557 "task_queue_posix.cc",
558 "task_queue_posix.h",
559 ]
560 deps = [
561 ":checks",
562 ":logging",
563 ":ptr_util",
564 ":refcount",
565 ":rtc_task_queue_api",
566 ]
567 }
568}
569
570if (is_win) {
571 rtc_source_set("rtc_task_queue_win") {
572 visibility = [ ":rtc_task_queue_impl" ]
573 sources = [
574 "task_queue_win.cc",
575 ]
576 deps = [
577 ":checks",
578 ":criticalsection",
579 ":logging",
580 ":macromagic",
581 ":platform_thread",
582 ":ptr_util",
583 ":refcount",
584 ":rtc_event",
585 ":rtc_task_queue_api",
586 ":safe_conversions",
587 ":timeutils",
588 ]
589 }
590}
591
592rtc_source_set("rtc_task_queue_impl") {
593 visibility = [ "*" ]
594 if (rtc_enable_libevent) {
595 deps = [
596 ":rtc_task_queue_libevent",
597 ]
perkj650fdae2017-08-25 05:00:11 -0700598 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200599 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100600 deps = [
601 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200602 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200603 }
604 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100605 deps = [
606 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200607 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200608 }
609 }
610}
611
Tommi8d2c5a82018-03-19 11:12:48 +0100612rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200613 sources = [
614 "sequenced_task_checker.h",
615 "sequenced_task_checker_impl.cc",
616 "sequenced_task_checker_impl.h",
617 ]
618 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100619 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100620 ":criticalsection",
621 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200622 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100623 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200624 ]
625}
626
627rtc_static_library("weak_ptr") {
628 sources = [
629 "weak_ptr.cc",
630 "weak_ptr.h",
631 ]
632 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100633 ":ptr_util",
634 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200635 ":sequenced_task_checker",
636 ]
637}
638
639rtc_static_library("rtc_numerics") {
640 sources = [
641 "numerics/exp_filter.cc",
642 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100643 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200644 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200645 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200646 ]
647 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100648 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200649 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100650 ":safe_compare",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200651 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200652 ]
653}
654
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200655rtc_source_set("rtc_json") {
Jonas Olsson55378f42018-05-25 10:23:10 +0200656 testonly = true
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200657 defines = []
658 sources = [
659 "json.cc",
660 "json.h",
661 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100662 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200663 if (rtc_build_json) {
664 public_deps = [
665 "//third_party/jsoncpp",
666 ]
667 } else {
668 include_dirs = [ "$rtc_jsoncpp_root" ]
669
670 # When defined changes the include path for json.h to where it is
671 # expected to be when building json outside of the standalone build.
672 defines += [ "WEBRTC_EXTERNAL_JSON" ]
673 }
674}
675
mbonadei9c5e5112017-09-05 05:17:02 -0700676rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000677 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500678 public_deps = []
679 if (!build_with_mozilla) {
680 public_deps += [ ":rtc_base_generic" ]
681 }
mbonadei310e32b2017-09-07 07:36:28 -0700682 if (is_win) {
683 sources = [
684 "noop.cc",
685 ]
686 }
687 if (is_ios || is_mac) {
688 sources = [
689 "noop.mm",
690 ]
691 public_deps += [ ":rtc_base_objc" ]
692 }
693}
694
695if (is_ios || is_mac) {
696 rtc_source_set("rtc_base_objc") {
697 sources = [
698 "thread_darwin.mm",
699 ]
700 deps = [
701 ":rtc_base_generic",
702 ]
703 visibility = [ ":rtc_base" ]
704 }
705}
706
707rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200708 cflags = []
709 cflags_cc = []
710 libs = []
711 defines = []
712 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100713 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100714 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200715 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100716 "../api:array_view",
Artem Titova76af0c2018-07-23 17:38:12 +0200717 "third_party/base64",
Artem Titove41c4332018-07-25 15:04:28 +0200718 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +0200719 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +0200720 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200721 ]
722 public_deps = [
723 ":rtc_base_approved",
724 ]
725 public_configs = []
726
727 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
728
729 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200730 "asyncinvoker-inl.h",
731 "asyncinvoker.cc",
732 "asyncinvoker.h",
733 "asyncpacketsocket.cc",
734 "asyncpacketsocket.h",
735 "asyncresolverinterface.cc",
736 "asyncresolverinterface.h",
737 "asyncsocket.cc",
738 "asyncsocket.h",
739 "asynctcpsocket.cc",
740 "asynctcpsocket.h",
741 "asyncudpsocket.cc",
742 "asyncudpsocket.h",
743 "crc32.cc",
744 "crc32.h",
745 "cryptstring.cc",
746 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100747 "data_rate_limiter.cc",
748 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100749 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200750 "filerotatingstream.cc",
751 "filerotatingstream.h",
752 "fileutils.cc",
753 "fileutils.h",
754 "gunit_prod.h",
755 "helpers.cc",
756 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200757 "httpcommon-inl.h",
758 "httpcommon.cc",
759 "httpcommon.h",
760 "ipaddress.cc",
761 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100762 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200763 "messagedigest.cc",
764 "messagedigest.h",
765 "messagehandler.cc",
766 "messagehandler.h",
767 "messagequeue.cc",
768 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800769 "nethelper.cc",
770 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200771 "nethelpers.cc",
772 "nethelpers.h",
773 "network.cc",
774 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200775 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200776 "networkmonitor.cc",
777 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100778 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200779 "nullsocketserver.cc",
780 "nullsocketserver.h",
781 "openssl.h",
782 "openssladapter.cc",
783 "openssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700784 "opensslcertificate.cc",
785 "opensslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200786 "openssldigest.cc",
787 "openssldigest.h",
788 "opensslidentity.cc",
789 "opensslidentity.h",
Benjamin Wright19aab2e2018-04-05 15:39:06 -0700790 "opensslsessioncache.cc",
791 "opensslsessioncache.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200792 "opensslstreamadapter.cc",
793 "opensslstreamadapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700794 "opensslutility.cc",
795 "opensslutility.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200796 "physicalsocketserver.cc",
797 "physicalsocketserver.h",
798 "proxyinfo.cc",
799 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200800 "rtccertificate.cc",
801 "rtccertificate.h",
802 "rtccertificategenerator.cc",
803 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700804 "signalthread.cc",
805 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700807 "sigslotrepeater.h",
Qingsi Wang6e641e62018-04-11 20:14:17 -0700808 "socket.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200809 "socket.h",
810 "socketadapters.cc",
811 "socketadapters.h",
812 "socketaddress.cc",
813 "socketaddress.h",
814 "socketaddresspair.cc",
815 "socketaddresspair.h",
816 "socketfactory.h",
817 "socketserver.h",
818 "socketstream.cc",
819 "socketstream.h",
820 "ssladapter.cc",
821 "ssladapter.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700822 "sslcertificate.cc",
823 "sslcertificate.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200824 "sslfingerprint.cc",
825 "sslfingerprint.h",
826 "sslidentity.cc",
827 "sslidentity.h",
828 "sslstreamadapter.cc",
829 "sslstreamadapter.h",
830 "stream.cc",
831 "stream.h",
832 "thread.cc",
833 "thread.h",
834 ]
835
mbonadei310e32b2017-09-07 07:36:28 -0700836 visibility = [
837 ":rtc_base",
838 ":rtc_base_objc",
839 ]
840
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200841 if (build_with_chromium) {
842 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200843 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200844 }
845 include_dirs = [ "../../boringssl/src/include" ]
846 public_configs += [ ":rtc_base_chromium_config" ]
847 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200848 sources += [
849 "callback.h",
850 "logsinks.cc",
851 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100852 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200853 "optionsfile.cc",
854 "optionsfile.h",
855 "rollingaccumulator.h",
856 "sslroots.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200857 ]
858
859 if (is_win) {
860 sources += [
861 "win32socketinit.cc",
862 "win32socketinit.h",
863 "win32socketserver.cc",
864 "win32socketserver.h",
865 ]
866 }
867 } # !build_with_chromium
868
869 if (rtc_build_ssl) {
870 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500871 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200872 configs += [ ":external_ssl_library" ]
873 }
874
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700875 if (rtc_builtin_ssl_root_certificates) {
Benjamin Wrighta7087e32018-05-29 17:46:04 -0700876 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700877 }
878
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200879 if (is_android) {
880 sources += [
881 "ifaddrs-android.cc",
882 "ifaddrs-android.h",
883 ]
884
885 libs += [
886 "log",
887 "GLESv2",
888 ]
889 }
890
891 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700892 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200893 }
894
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100895 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200896 libs += [
897 "dl",
898 "rt",
899 "Xext",
900 "X11",
901 "Xcomposite",
902 "Xrender",
903 ]
904 }
905
906 if (is_linux) {
907 libs += [
908 "dl",
909 "rt",
910 ]
911 }
912
913 if (is_mac) {
914 sources += [
915 "macutils.cc",
916 "macutils.h",
917 ]
918 libs += [
919 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
920 "ApplicationServices.framework",
921 ]
922 }
923
924 if (is_win) {
925 sources += [
926 "win32.cc",
927 "win32.h",
928 "win32filesystem.cc",
929 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 "win32window.cc",
931 "win32window.h",
932 ]
933
934 libs += [
935 "crypt32.lib",
936 "iphlpapi.lib",
937 "secur32.lib",
938 ]
939
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200940 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
941 }
942
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -0700943 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200944 sources += [
945 "ifaddrs_converter.cc",
946 "ifaddrs_converter.h",
947 "unixfilesystem.cc",
948 "unixfilesystem.h",
949 ]
950 }
951
952 if (is_nacl) {
953 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
954 defines += [ "timezone=_timezone" ]
955 sources -= [ "ifaddrs_converter.cc" ]
956 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200957}
958
959rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000960 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200961 sources = [
962 "gtest_prod_util.h",
963 ]
964}
965
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200966rtc_source_set("rtc_base_tests_utils") {
967 testonly = true
968 sources = [
969 # Also use this as a convenient dumping ground for misc files that are
970 # included by multiple targets below.
971 "cpu_time.cc",
972 "cpu_time.h",
973 "fakeclock.cc",
974 "fakeclock.h",
975 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700976 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200977 "fakesslidentity.h",
978 "firewallsocketserver.cc",
979 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800980 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200981 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100982 "httpbase.cc",
983 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200984 "httpserver.cc",
985 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200986 "memory_usage.cc",
987 "memory_usage.h",
988 "natserver.cc",
989 "natserver.h",
990 "natsocketfactory.cc",
991 "natsocketfactory.h",
992 "nattypes.cc",
993 "nattypes.h",
994 "proxyserver.cc",
995 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200996 "sigslottester.h",
997 "sigslottester.h.pump",
998 "testbase64.h",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -0700999 "testcertificateverifier.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001000 "testclient.cc",
1001 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001002 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001003 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001004 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001005 "testutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "virtualsocketserver.cc",
1007 "virtualsocketserver.h",
1008 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001010 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001011 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001012 ":stringutils",
Sebastian Jansson5f83cf02018-05-08 14:52:22 +02001013 "../api/units:time_delta",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001014 "../test:field_trial",
1015 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001016 "system:fallthrough",
Artem Titove41c4332018-07-25 15:04:28 +02001017 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001018 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 ]
1020 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 "//testing/gtest",
1022 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001023}
1024
Tommida8781f2018-02-19 12:41:43 +01001025rtc_source_set("rtc_task_queue_for_test") {
1026 visibility = [ "*" ]
1027 testonly = true
1028
1029 sources = [
1030 "task_queue_for_test.cc",
1031 "task_queue_for_test.h",
1032 ]
1033 deps = [
1034 ":checks",
1035 ":rtc_base_approved",
1036 ":rtc_task_queue",
1037 ]
1038}
1039
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040if (rtc_include_tests) {
Artem Titove41c4332018-07-25 15:04:28 +02001041 rtc_source_set("sigslot_unittest") {
1042 testonly = true
1043 sources = [
1044 "sigslot_unittest.cc",
1045 ]
1046 deps = [
1047 ":rtc_base",
1048 ":rtc_base_tests_utils",
1049 "third_party/sigslot",
1050 ]
1051 }
1052
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001053 rtc_source_set("rtc_base_tests_main") {
1054 testonly = true
1055 sources = [
1056 "unittest_main.cc",
1057 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001058 deps = [
1059 ":rtc_base",
1060 ":rtc_base_approved",
1061 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001062 "../system_wrappers:field_trial_default",
Qingsi Wang7fc821d2018-07-12 12:54:53 -07001063 "../system_wrappers:metrics_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001065 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 "../test:test_support",
1067 ]
1068
1069 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001070 "//testing/gtest",
1071 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001072 }
1073
1074 rtc_source_set("rtc_base_nonparallel_tests") {
1075 testonly = true
1076
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001077 sources = [
1078 "cpu_time_unittest.cc",
1079 "filerotatingstream_unittest.cc",
1080 "nullsocketserver_unittest.cc",
1081 "physicalsocketserver_unittest.cc",
1082 "socket_unittest.cc",
1083 "socket_unittest.h",
1084 "socketaddress_unittest.cc",
1085 ]
1086 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001087 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001088 ":rtc_base",
1089 ":rtc_base_tests_main",
1090 ":rtc_base_tests_utils",
1091 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001092 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001093 "../test:test_support",
1094 "//testing/gtest",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001095 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001096 ]
1097 if (is_win) {
1098 sources += [ "win32socketserver_unittest.cc" ]
1099 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 }
1101
1102 rtc_source_set("rtc_base_approved_unittests") {
1103 testonly = true
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001104 if (is_msan) {
1105 cflags = [ "-fsanitize=memory" ]
1106 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001107 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001108 "atomicops_unittest.cc",
1109 "base64_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001110 "bind_unittest.cc",
1111 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001112 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001113 "buffer_unittest.cc",
1114 "bufferqueue_unittest.cc",
1115 "bytebuffer_unittest.cc",
1116 "byteorder_unittest.cc",
1117 "copyonwritebuffer_unittest.cc",
1118 "criticalsection_unittest.cc",
1119 "event_tracer_unittest.cc",
1120 "event_unittest.cc",
1121 "file_unittest.cc",
1122 "function_view_unittest.cc",
1123 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001124 "numerics/histogram_percentile_counter_unittest.cc",
1125 "numerics/mod_ops_unittest.cc",
1126 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001127 "numerics/safe_compare_unittest.cc",
1128 "numerics/safe_minmax_unittest.cc",
Ilya Nikolaevskiy0beed5d2018-05-22 10:54:30 +02001129 "numerics/sample_counter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001130 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001131 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001132 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001133 "platform_thread_unittest.cc",
1134 "random_unittest.cc",
1135 "rate_limiter_unittest.cc",
1136 "rate_statistics_unittest.cc",
1137 "ratetracker_unittest.cc",
1138 "refcountedobject_unittest.cc",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001139 "sanitizer_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001140 "string_to_number_unittest.cc",
1141 "stringencode_unittest.cc",
1142 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001143 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001144 "stringutils_unittest.cc",
1145 "swap_queue_unittest.cc",
1146 "thread_annotations_unittest.cc",
1147 "thread_checker_unittest.cc",
1148 "timestampaligner_unittest.cc",
1149 "timeutils_unittest.cc",
1150 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001151 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001152 ]
henrika3ca48a62018-05-21 13:34:51 +02001153 if (is_win) {
1154 sources += [ "win/windows_version_unittest.cc" ]
1155 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001156 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001157 ":checks",
1158 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001159 ":rtc_base",
1160 ":rtc_base_approved",
1161 ":rtc_base_tests_main",
1162 ":rtc_base_tests_utils",
1163 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001164 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001165 ":safe_minmax",
Alessio Bazzicad31843e2018-04-06 16:18:21 +02001166 ":sanitizer",
Patrik Höglund3e113432017-12-15 14:40:10 +01001167 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001168 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001169 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001170 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001171 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001172 "memory:unittests",
Artem Titova76af0c2018-07-23 17:38:12 +02001173 "third_party/base64",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001174 "//third_party/abseil-cpp/absl/memory",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001175 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001176 }
1177
1178 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001179 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001180 testonly = true
1181
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001182 sources = [
1183 "task_queue_unittest.cc",
1184 ]
1185 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001186 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001187 ":rtc_base_tests_main",
1188 ":rtc_base_tests_utils",
1189 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001190 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001191 "../test:test_support",
1192 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001193 }
1194
1195 rtc_source_set("sequenced_task_checker_unittests") {
1196 testonly = true
1197
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001198 sources = [
1199 "sequenced_task_checker_unittest.cc",
1200 ]
1201 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001202 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 ":rtc_base_approved",
1204 ":rtc_base_tests_main",
1205 ":rtc_task_queue",
1206 ":sequenced_task_checker",
1207 "../test:test_support",
1208 ]
1209 }
1210
1211 rtc_source_set("weak_ptr_unittests") {
1212 testonly = true
1213
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001214 sources = [
1215 "weak_ptr_unittest.cc",
1216 ]
1217 deps = [
Tommi897e1362017-12-01 18:56:43 +01001218 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001219 ":rtc_base_tests_main",
1220 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001221 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001222 ":rtc_task_queue",
1223 ":weak_ptr",
1224 "../test:test_support",
1225 ]
1226 }
1227
1228 rtc_source_set("rtc_numerics_unittests") {
1229 testonly = true
1230
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001231 sources = [
1232 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001233 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001234 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001235 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001236 ]
1237 deps = [
1238 ":rtc_base_approved",
1239 ":rtc_base_tests_main",
1240 ":rtc_numerics",
1241 "../test:test_support",
1242 ]
1243 }
1244
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001245 rtc_source_set("rtc_base_unittests") {
1246 testonly = true
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001247 defines = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001248
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001249 sources = [
1250 "callback_unittest.cc",
1251 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001252 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001253 "helpers_unittest.cc",
1254 "httpbase_unittest.cc",
1255 "httpcommon_unittest.cc",
1256 "httpserver_unittest.cc",
1257 "ipaddress_unittest.cc",
1258 "memory_usage_unittest.cc",
1259 "messagedigest_unittest.cc",
1260 "messagequeue_unittest.cc",
1261 "nat_unittest.cc",
1262 "network_unittest.cc",
1263 "optionsfile_unittest.cc",
1264 "proxy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001265 "rollingaccumulator_unittest.cc",
1266 "rtccertificate_unittest.cc",
1267 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001268 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001269 "sigslottester_unittest.cc",
1270 "stream_unittest.cc",
1271 "testclient_unittest.cc",
1272 "thread_unittest.cc",
1273 ]
1274 if (is_win) {
1275 sources += [
1276 "win32_unittest.cc",
1277 "win32window_unittest.cc",
1278 ]
1279 }
Fabrice de Gans-Riberi09a6cd52018-03-30 10:38:06 -07001280 if (is_posix || is_fuchsia) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001281 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001282 "openssladapter_unittest.cc",
Benjamin Wright19aab2e2018-04-05 15:39:06 -07001283 "opensslsessioncache_unittest.cc",
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001284 "opensslutility_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001285 "ssladapter_unittest.cc",
1286 "sslidentity_unittest.cc",
1287 "sslstreamadapter_unittest.cc",
1288 ]
1289 }
1290 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001291 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 ":rtc_base_tests_main",
1293 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001294 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001295 "../api:array_view",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001296 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001297 "../test:test_support",
Artem Titove41c4332018-07-25 15:04:28 +02001298 "third_party/sigslot",
Karl Wiberg918f50c2018-07-05 11:40:33 +02001299 "//third_party/abseil-cpp/absl/memory",
Danil Chapovalov0a1d1892018-06-21 11:48:25 +02001300 "//third_party/abseil-cpp/absl/types:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001301 ]
1302 public_deps = [
1303 ":rtc_base",
1304 ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001305 if (build_with_chromium) {
1306 include_dirs = [ "../../boringssl/src/include" ]
1307 }
1308 if (rtc_build_ssl) {
1309 deps += [ "//third_party/boringssl" ]
1310 } else {
1311 configs += [ ":external_ssl_library" ]
1312 }
Benjamin Wrighta7087e32018-05-29 17:46:04 -07001313 if (rtc_builtin_ssl_root_certificates) {
1314 defines += [ "WEBRTC_BUILT_IN_SSL_ROOT_CERTIFICATES" ]
Benjamin Wrightd6f86e82018-05-08 13:12:25 -07001315 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001316 }
1317}
1318
Henrik Kjellander73e21802017-06-20 08:38:58 +02001319if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001320 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001321 java_files = [
1322 "java/src/org/webrtc/ContextUtils.java",
Paulina Hensman1ec04f12018-06-21 14:31:38 +02001323 "java/src/org/webrtc/Loggable.java",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001324 "java/src/org/webrtc/Logging.java",
1325 "java/src/org/webrtc/Size.java",
1326 "java/src/org/webrtc/ThreadUtils.java",
1327 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001328 }
1329}