blob: fbec98b485c7029cae6f589cfae851bd0eb0ba12 [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}
Henrik Kjellanderc0362762017-06-29 08:03:04 +020017if (is_win) {
18 import("//build/config/clang/clang.gni")
19}
Henrik Kjellander73e21802017-06-20 08:38:58 +020020
Henrik Kjellanderc0362762017-06-29 08:03:04 +020021group("base") {
22 public_deps = [
23 ":rtc_base",
24 ":rtc_base_approved",
25 ":rtc_task_queue",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020026 ":weak_ptr",
27 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +020028 if (is_android) {
29 public_deps += [ ":base_java" ]
30 }
31}
32
Henrik Kjellanderc0362762017-06-29 08:03:04 +020033config("rtc_base_chromium_config") {
34 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
35}
36
37config("rtc_base_all_dependent_config") {
38 if (is_ios) {
39 libs = [
40 "CFNetwork.framework",
Jiawei Ouc0216b82018-02-03 12:24:24 -080041 "Foundation.framework",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020042 "Security.framework",
43 "SystemConfiguration.framework",
44 "UIKit.framework",
45 ]
46 }
47 if (is_mac) {
48 libs = [
49 "Cocoa.framework",
50 "Foundation.framework",
51 "IOKit.framework",
52 "Security.framework",
53 "SystemConfiguration.framework",
54 ]
55 }
56}
57
Dan Minor9cdd8762018-01-16 10:40:39 -050058if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020059 config("external_ssl_library") {
60 assert(rtc_ssl_root != "",
61 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
62 include_dirs = [ rtc_ssl_root ]
63 }
64}
65
66source_set("protobuf_utils") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000067 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +020068 sources = [
69 "protobuf_utils.h",
70 ]
71 if (rtc_enable_protobuf) {
72 public_deps = [
73 "//third_party/protobuf:protobuf_lite",
74 ]
75 }
76}
77
78source_set("compile_assert_c") {
79 sources = [
80 "compile_assert_c.h",
81 ]
82}
83
mbonadeibc378472017-09-11 03:43:34 -070084rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000085 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070086 public_deps = [
Tommi8d2c5a82018-03-19 11:12:48 +010087 ":atomicops",
88 ":criticalsection",
89 ":logging",
90 ":macromagic",
91 ":platform_thread",
92 ":platform_thread_types",
93 ":ptr_util",
94 ":refcount",
mbonadeibc378472017-09-11 03:43:34 -070095 ":rtc_base_approved_generic",
Tommi8d2c5a82018-03-19 11:12:48 +010096 ":rtc_event",
97 ":safe_conversions",
98 ":stringutils",
99 ":thread_checker",
100 ":timeutils",
mbonadeibc378472017-09-11 03:43:34 -0700101 ]
102 if (is_mac && !build_with_chromium) {
103 public_deps += [ ":rtc_base_approved_objc" ]
104 }
105}
106
Tommi8d2c5a82018-03-19 11:12:48 +0100107rtc_source_set("macromagic") {
108 sources = [
109 "arraysize.h",
110 "basictypes.h",
111 "constructormagic.h",
112 "format_macros.h",
113 "stringize_macros.h",
114 "thread_annotations.h",
115 ]
116}
117
118rtc_source_set("platform_thread_types") {
119 sources = [
120 "platform_thread_types.cc",
121 "platform_thread_types.h",
122 ]
123}
124
125rtc_source_set("ptr_util") {
126 sources = [
127 "ptr_util.h",
128 "scoped_ref_ptr.h",
129 ]
130}
131
132rtc_source_set("refcount") {
133 sources = [
134 "refcount.h",
135 "refcountedobject.h",
136 "refcounter.h",
137 ]
138 deps = [
139 ":atomicops",
140 ":macromagic",
141 ]
142}
143
144rtc_source_set("criticalsection") {
145 sources = [
146 "criticalsection.cc",
147 "criticalsection.h",
148 ]
149 deps = [
150 ":atomicops",
151 ":checks",
152 ":macromagic",
153 ":platform_thread_types",
154 "..:typedefs",
155 ]
156}
157
158rtc_source_set("platform_thread") {
159 visibility = [
160 ":rtc_base_approved",
161 ":rtc_base_approved_generic",
162 ":rtc_task_queue_libevent",
163 ":rtc_task_queue_win",
164 ":sequenced_task_checker",
165 ]
166 sources = [
167 "platform_thread.cc",
168 "platform_thread.h",
169 ]
170 deps = [
171 ":atomicops",
172 ":checks",
173 ":macromagic",
174 ":platform_thread_types",
175 ":rtc_event",
176 ":thread_checker",
177 ":timeutils",
178 "..:typedefs",
179 ]
180}
181
182rtc_source_set("rtc_event") {
183 if (build_with_chromium) {
184 sources = [
185 "../../webrtc_overrides/rtc_base/event.cc",
186 "../../webrtc_overrides/rtc_base/event.h",
187 ]
188 } else {
189 sources = [
190 "event.cc",
191 "event.h",
192 ]
193 }
194
195 deps = [
196 ":checks",
197 ":macromagic",
198 ]
199}
200
201rtc_source_set("logging") {
202 deps = [
203 ":criticalsection",
204 ":macromagic",
205 ":platform_thread_types",
206 ":stringutils",
207 ":timeutils",
208 ]
209
210 if (build_with_chromium) {
211 # Dependency on chromium's logging (in //base).
212 deps += [ "//base:base" ]
213 sources = [
214 "../../webrtc_overrides/rtc_base/logging.cc",
215 "../../webrtc_overrides/rtc_base/logging.h",
216 ]
217 } else {
218 sources = [
219 "logging.cc",
220 "logging.h",
221 ]
222
223 # logging.h needs the deprecation header while downstream projects are
224 # removing code that depends on logging implementation details.
225 deps += [ ":deprecation" ]
226 }
227}
228
229rtc_source_set("thread_checker") {
230 sources = [
231 "thread_checker.h",
232 "thread_checker_impl.cc",
233 "thread_checker_impl.h",
234 ]
235 deps = [
236 ":checks",
237 ":criticalsection",
238 ":macromagic",
239 ":platform_thread_types",
240 "..:typedefs",
241 ]
242}
243
244rtc_source_set("atomicops") {
245 sources = [
246 "atomicops.h",
247 ]
248}
249
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100250rtc_source_set("checks") {
251 sources = [
252 "checks.cc",
253 "checks.h",
254 ]
255 deps = [
256 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100257 "..:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100258 ]
259}
260
Patrik Höglund3e113432017-12-15 14:40:10 +0100261rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100262 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100263 "rate_limiter.cc",
264 "rate_limiter.h",
265 ]
266 deps = [
267 ":rtc_base_approved",
268 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100269 ]
270}
271
272rtc_source_set("sanitizer") {
273 sources = [
274 "sanitizer.h",
275 ]
276}
277
278rtc_source_set("safe_compare") {
279 sources = [
280 "numerics/safe_compare.h",
281 ]
282 deps = [
283 ":type_traits",
284 ]
285}
286
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100287rtc_source_set("safe_minmax") {
288 sources = [
289 "numerics/safe_minmax.h",
290 ]
291 deps = [
292 ":checks",
293 ":safe_compare",
294 ":type_traits",
295 ]
296}
297
Tommi8d2c5a82018-03-19 11:12:48 +0100298rtc_source_set("safe_conversions") {
299 sources = [
300 "numerics/safe_conversions.h",
301 "numerics/safe_conversions_impl.h",
302 ]
303 deps = [
304 ":checks",
305 ]
306}
307
308rtc_source_set("timeutils") {
309 sources = [
310 "timeutils.cc",
311 "timeutils.h",
312 ]
313 deps = [
314 ":checks",
315 ":safe_conversions",
316 ]
317}
318
Patrik Höglund3e113432017-12-15 14:40:10 +0100319rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100320 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100321 "stringencode.cc",
322 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100323 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100324 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100325 "stringutils.cc",
326 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100327 ]
328 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100329 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100330 ":safe_minmax",
331 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100332 ]
333}
334
335rtc_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 = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100357 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100358 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100359 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100360 ":criticalsection",
361 ":logging",
362 ":macromagic",
363 ":platform_thread",
364 ":platform_thread_types",
365 ":ptr_util",
366 ":refcount",
367 ":rtc_event",
368 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100369 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100370 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100371 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100372 ":thread_checker",
373 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100374 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100375 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100376 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200377
378 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200379 "base64.cc",
380 "base64.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200381 "bind.h",
382 "bitbuffer.cc",
383 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200384 "bitrateallocationstrategy.cc",
385 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200386 "buffer.h",
387 "bufferqueue.cc",
388 "bufferqueue.h",
389 "bytebuffer.cc",
390 "bytebuffer.h",
391 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200392 "copyonwritebuffer.cc",
393 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200394 "event_tracer.cc",
395 "event_tracer.h",
396 "file.cc",
397 "file.h",
398 "flags.cc",
399 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200400 "function_view.h",
401 "ignore_wundef.h",
402 "location.cc",
403 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100404 "numerics/histogram_percentile_counter.cc",
405 "numerics/histogram_percentile_counter.h",
406 "numerics/mod_ops.h",
407 "numerics/moving_max_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200408 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200409 "pathutils.cc",
410 "pathutils.h",
411 "platform_file.cc",
412 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200413 "race_checker.cc",
414 "race_checker.h",
415 "random.cc",
416 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200417 "rate_statistics.cc",
418 "rate_statistics.h",
419 "ratetracker.cc",
420 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200421 "string_to_number.cc",
422 "string_to_number.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200423 "swap_queue.h",
424 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200425 "timestampaligner.cc",
426 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200427 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100428 "zero_memory.cc",
429 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200430 ]
431
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100432 deps += [
433 "..:webrtc_common",
434 "../api:array_view",
435 "../api:optional",
436 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200437
438 if (is_android) {
439 libs += [ "log" ]
440 }
441
442 if (is_posix) {
443 sources += [ "file_posix.cc" ]
444 }
445
446 if (is_win) {
447 sources += [ "file_win.cc" ]
448 }
449
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200450 if (is_component_build && is_win) {
451 # Copy the VS runtime DLLs into the isolate so that they don't have to be
452 # preinstalled on the target machine. The debug runtimes have a "d" at
453 # the end.
454 # This is a copy of https://codereview.chromium.org/1783973002.
455 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
456 # so we don't have to copy their changes and risk breakages.
457 # See http://crbug.com/653569
458 if (is_debug) {
459 vcrt_suffix = "d"
460 } else {
461 vcrt_suffix = ""
462 }
463
464 # These runtime files are copied to the output directory by the
465 # vs_toolchain script that runs as part of toolchain configuration.
466 data = [
467 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
468 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
469 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
470
471 # Universal Windows 10 CRT files
472 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
473 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
474 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
475 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
476 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
477 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
478 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
479 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
480 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
481 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
482 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
483 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
484 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
485 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
486 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
487 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
488 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
489 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
490 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
491 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
492 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
493 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
494 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
495 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
496 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
497 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
498 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
499 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
500 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
501 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
502 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
503 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
504 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
505 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
506 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
507 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
508 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
509 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
510 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
511 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
512 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
513 ]
514 if (is_asan) {
515 if (current_cpu == "x64") {
516 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
517 } else {
518 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
519 }
520 }
521 }
522 if (is_nacl) {
523 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
524 }
525}
526
mbonadeibc378472017-09-11 03:43:34 -0700527if (is_mac && !build_with_chromium) {
528 config("rtc_base_approved_objc_all_dependent_config") {
529 visibility = [ ":rtc_base_approved_objc" ]
530 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
531 }
532
533 rtc_source_set("rtc_base_approved_objc") {
534 visibility = [ ":rtc_base_approved" ]
535 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
536 sources = [
537 "logging_mac.mm",
538 ]
539 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100540 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700541 ]
542 }
543}
544
perkj650fdae2017-08-25 05:00:11 -0700545rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000546 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100547 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700548 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700549 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200550 ]
551
perkj650fdae2017-08-25 05:00:11 -0700552 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700553 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700554 }
555}
556
557# WebRTC targets must not directly depend on rtc_task_queue_api or
558# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
559# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
560# to the default implemenation in rtc_task_queue_impl or if an externally
561# provided implementation should be used. An external implementation should
562# depend on rtc_task_queue_api.
563rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100564 # The visibility list is commented out so that we won't break external
565 # implementations, but left here to manually test as well as for sake of what
566 # targets we expect to depend on rtc_task_queue_api.
567 # visibility = [
568 # ":rtc_task_queue",
569 # ":rtc_task_queue_impl",
570 # ":sequenced_task_checker",
571 # ]
nisse75dd6d42017-09-19 08:28:00 -0700572 sources = [
573 "task_queue.h",
574 ]
perkj650fdae2017-08-25 05:00:11 -0700575 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100576 ":macromagic",
577 ":ptr_util",
perkj650fdae2017-08-25 05:00:11 -0700578 ]
579}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200580
Tommi8d2c5a82018-03-19 11:12:48 +0100581if (rtc_enable_libevent) {
582 rtc_source_set("rtc_task_queue_libevent") {
583 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700584 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200585 "task_queue_libevent.cc",
586 "task_queue_posix.cc",
587 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700588 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100589 deps = [
590 ":checks",
591 ":criticalsection",
592 ":logging",
593 ":platform_thread",
594 ":ptr_util",
595 ":refcount",
596 ":rtc_task_queue_api",
597 ":safe_conversions",
598 ":timeutils",
599 ]
600 if (rtc_build_libevent) {
601 deps += [ "//base/third_party/libevent" ]
602 }
603 }
604}
605
606if (is_mac || is_ios) {
607 rtc_source_set("rtc_task_queue_gcd") {
608 visibility = [ ":rtc_task_queue_impl" ]
609 sources = [
610 "task_queue_gcd.cc",
611 "task_queue_posix.cc",
612 "task_queue_posix.h",
613 ]
614 deps = [
615 ":checks",
616 ":logging",
617 ":ptr_util",
618 ":refcount",
619 ":rtc_task_queue_api",
620 ]
621 }
622}
623
624if (is_win) {
625 rtc_source_set("rtc_task_queue_win") {
626 visibility = [ ":rtc_task_queue_impl" ]
627 sources = [
628 "task_queue_win.cc",
629 ]
630 deps = [
631 ":checks",
632 ":criticalsection",
633 ":logging",
634 ":macromagic",
635 ":platform_thread",
636 ":ptr_util",
637 ":refcount",
638 ":rtc_event",
639 ":rtc_task_queue_api",
640 ":safe_conversions",
641 ":timeutils",
642 ]
643 }
644}
645
646rtc_source_set("rtc_task_queue_impl") {
647 visibility = [ "*" ]
648 if (rtc_enable_libevent) {
649 deps = [
650 ":rtc_task_queue_libevent",
651 ]
perkj650fdae2017-08-25 05:00:11 -0700652 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200653 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100654 deps = [
655 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200656 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200657 }
658 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100659 deps = [
660 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200661 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200662 }
663 }
664}
665
Tommi8d2c5a82018-03-19 11:12:48 +0100666rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200667 sources = [
668 "sequenced_task_checker.h",
669 "sequenced_task_checker_impl.cc",
670 "sequenced_task_checker_impl.h",
671 ]
672 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100673 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100674 ":criticalsection",
675 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200676 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100677 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200678 ]
679}
680
681rtc_static_library("weak_ptr") {
682 sources = [
683 "weak_ptr.cc",
684 "weak_ptr.h",
685 ]
686 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100687 ":ptr_util",
688 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200689 ":sequenced_task_checker",
690 ]
691}
692
693rtc_static_library("rtc_numerics") {
694 sources = [
695 "numerics/exp_filter.cc",
696 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100697 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200698 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200699 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200700 ]
701 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100702 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200703 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100704 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200705 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200706 ]
707}
708
709config("rtc_base_warnings_config") {
710 if (is_win && is_clang) {
711 cflags = [
712 # Disable warnings failing when compiling with Clang on Windows.
713 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
714 "-Wno-sign-compare",
715 "-Wno-missing-braces",
716 ]
717 }
718}
719
720rtc_source_set("rtc_json") {
721 defines = []
722 sources = [
723 "json.cc",
724 "json.h",
725 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100726 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200727 if (rtc_build_json) {
728 public_deps = [
729 "//third_party/jsoncpp",
730 ]
731 } else {
732 include_dirs = [ "$rtc_jsoncpp_root" ]
733
734 # When defined changes the include path for json.h to where it is
735 # expected to be when building json outside of the standalone build.
736 defines += [ "WEBRTC_EXTERNAL_JSON" ]
737 }
738}
739
mbonadei9c5e5112017-09-05 05:17:02 -0700740rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000741 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500742 public_deps = []
743 if (!build_with_mozilla) {
744 public_deps += [ ":rtc_base_generic" ]
745 }
mbonadei310e32b2017-09-07 07:36:28 -0700746 if (is_win) {
747 sources = [
748 "noop.cc",
749 ]
750 }
751 if (is_ios || is_mac) {
752 sources = [
753 "noop.mm",
754 ]
755 public_deps += [ ":rtc_base_objc" ]
756 }
757}
758
759if (is_ios || is_mac) {
760 rtc_source_set("rtc_base_objc") {
761 sources = [
762 "thread_darwin.mm",
763 ]
764 deps = [
765 ":rtc_base_generic",
766 ]
767 visibility = [ ":rtc_base" ]
768 }
769}
770
771rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200772 cflags = []
773 cflags_cc = []
774 libs = []
775 defines = []
776 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100777 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100778 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200779 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100780 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700781 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200782 ]
783 public_deps = [
784 ":rtc_base_approved",
785 ]
786 public_configs = []
787
788 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
789
790 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200791 "asyncinvoker-inl.h",
792 "asyncinvoker.cc",
793 "asyncinvoker.h",
794 "asyncpacketsocket.cc",
795 "asyncpacketsocket.h",
796 "asyncresolverinterface.cc",
797 "asyncresolverinterface.h",
798 "asyncsocket.cc",
799 "asyncsocket.h",
800 "asynctcpsocket.cc",
801 "asynctcpsocket.h",
802 "asyncudpsocket.cc",
803 "asyncudpsocket.h",
804 "crc32.cc",
805 "crc32.h",
806 "cryptstring.cc",
807 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100808 "data_rate_limiter.cc",
809 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100810 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200811 "filerotatingstream.cc",
812 "filerotatingstream.h",
813 "fileutils.cc",
814 "fileutils.h",
815 "gunit_prod.h",
816 "helpers.cc",
817 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200818 "httpcommon-inl.h",
819 "httpcommon.cc",
820 "httpcommon.h",
821 "ipaddress.cc",
822 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100823 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200824 "messagedigest.cc",
825 "messagedigest.h",
826 "messagehandler.cc",
827 "messagehandler.h",
828 "messagequeue.cc",
829 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800830 "nethelper.cc",
831 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200832 "nethelpers.cc",
833 "nethelpers.h",
834 "network.cc",
835 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200836 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200837 "networkmonitor.cc",
838 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100839 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200840 "nullsocketserver.cc",
841 "nullsocketserver.h",
842 "openssl.h",
843 "openssladapter.cc",
844 "openssladapter.h",
845 "openssldigest.cc",
846 "openssldigest.h",
847 "opensslidentity.cc",
848 "opensslidentity.h",
849 "opensslstreamadapter.cc",
850 "opensslstreamadapter.h",
851 "physicalsocketserver.cc",
852 "physicalsocketserver.h",
853 "proxyinfo.cc",
854 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200855 "ratelimiter.h",
856 "rtccertificate.cc",
857 "rtccertificate.h",
858 "rtccertificategenerator.cc",
859 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700860 "signalthread.cc",
861 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200862 "sigslot.cc",
863 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700864 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200865 "socket.h",
866 "socketadapters.cc",
867 "socketadapters.h",
868 "socketaddress.cc",
869 "socketaddress.h",
870 "socketaddresspair.cc",
871 "socketaddresspair.h",
872 "socketfactory.h",
873 "socketserver.h",
874 "socketstream.cc",
875 "socketstream.h",
876 "ssladapter.cc",
877 "ssladapter.h",
878 "sslfingerprint.cc",
879 "sslfingerprint.h",
880 "sslidentity.cc",
881 "sslidentity.h",
882 "sslstreamadapter.cc",
883 "sslstreamadapter.h",
884 "stream.cc",
885 "stream.h",
886 "thread.cc",
887 "thread.h",
888 ]
889
mbonadei310e32b2017-09-07 07:36:28 -0700890 visibility = [
891 ":rtc_base",
892 ":rtc_base_objc",
893 ]
894
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200895 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
896 # compiler settings.
897 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
898 configs += [ "//build/config/compiler:no_chromium_code" ]
899 if (!is_win) {
900 cflags += [ "-Wno-uninitialized" ]
901 }
902
903 if (build_with_chromium) {
904 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200905 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200906 }
907 include_dirs = [ "../../boringssl/src/include" ]
908 public_configs += [ ":rtc_base_chromium_config" ]
909 } else {
910 configs += [ ":rtc_base_warnings_config" ]
911 sources += [
912 "callback.h",
913 "logsinks.cc",
914 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100915 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200916 "optionsfile.cc",
917 "optionsfile.h",
918 "rollingaccumulator.h",
919 "sslroots.h",
920 "transformadapter.cc",
921 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200922 ]
923
924 if (is_win) {
925 sources += [
926 "win32socketinit.cc",
927 "win32socketinit.h",
928 "win32socketserver.cc",
929 "win32socketserver.h",
930 ]
931 }
932 } # !build_with_chromium
933
934 if (rtc_build_ssl) {
935 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500936 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200937 configs += [ ":external_ssl_library" ]
938 }
939
940 if (is_android) {
941 sources += [
942 "ifaddrs-android.cc",
943 "ifaddrs-android.h",
944 ]
945
946 libs += [
947 "log",
948 "GLESv2",
949 ]
950 }
951
952 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700953 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200954 }
955
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100956 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200957 libs += [
958 "dl",
959 "rt",
960 "Xext",
961 "X11",
962 "Xcomposite",
963 "Xrender",
964 ]
965 }
966
967 if (is_linux) {
968 libs += [
969 "dl",
970 "rt",
971 ]
972 }
973
974 if (is_mac) {
975 sources += [
976 "macutils.cc",
977 "macutils.h",
978 ]
979 libs += [
980 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
981 "ApplicationServices.framework",
982 ]
983 }
984
985 if (is_win) {
986 sources += [
987 "win32.cc",
988 "win32.h",
989 "win32filesystem.cc",
990 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200991 "win32window.cc",
992 "win32window.h",
993 ]
994
995 libs += [
996 "crypt32.lib",
997 "iphlpapi.lib",
998 "secur32.lib",
999 ]
1000
1001 cflags += [
1002 # Suppress warnings about WIN32_LEAN_AND_MEAN.
1003 "/wd4005",
1004 "/wd4703",
1005 ]
1006
1007 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
1008 }
1009
1010 if (is_posix) {
1011 sources += [
1012 "ifaddrs_converter.cc",
1013 "ifaddrs_converter.h",
1014 "unixfilesystem.cc",
1015 "unixfilesystem.h",
1016 ]
1017 }
1018
1019 if (is_nacl) {
1020 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
1021 defines += [ "timezone=_timezone" ]
1022 sources -= [ "ifaddrs_converter.cc" ]
1023 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024}
1025
1026rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001027 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 sources = [
1029 "gtest_prod_util.h",
1030 ]
1031}
1032
1033config("rtc_base_tests_utils_exported_config") {
1034 defines = [ "GTEST_RELATIVE_PATH" ]
1035}
1036
1037config("rtc_base_tests_utils_warnings_config") {
1038 if (is_win && is_clang) {
1039 cflags = [
1040 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
1041 "-Wno-reorder",
1042 "-Wno-sign-compare",
1043 ]
1044 }
1045}
1046
1047rtc_source_set("rtc_base_tests_utils") {
1048 testonly = true
1049 sources = [
1050 # Also use this as a convenient dumping ground for misc files that are
1051 # included by multiple targets below.
1052 "cpu_time.cc",
1053 "cpu_time.h",
1054 "fakeclock.cc",
1055 "fakeclock.h",
1056 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001057 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001058 "fakesslidentity.h",
1059 "firewallsocketserver.cc",
1060 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001061 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001062 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +01001063 "httpbase.cc",
1064 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001065 "httpserver.cc",
1066 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001067 "memory_usage.cc",
1068 "memory_usage.h",
1069 "natserver.cc",
1070 "natserver.h",
1071 "natsocketfactory.cc",
1072 "natsocketfactory.h",
1073 "nattypes.cc",
1074 "nattypes.h",
1075 "proxyserver.cc",
1076 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001077 "sigslottester.h",
1078 "sigslottester.h.pump",
1079 "testbase64.h",
1080 "testclient.cc",
1081 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001082 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001083 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001084 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001085 "testutils.h",
1086 "timedelta.h",
1087 "virtualsocketserver.cc",
1088 "virtualsocketserver.h",
1089 ]
1090 configs += [ ":rtc_base_tests_utils_warnings_config" ]
1091 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1092 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001093 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001094 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001095 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001096 "../test:field_trial",
1097 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001098 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001099 ]
1100 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001101 "//testing/gtest",
1102 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001103}
1104
Tommida8781f2018-02-19 12:41:43 +01001105rtc_source_set("rtc_task_queue_for_test") {
1106 visibility = [ "*" ]
1107 testonly = true
1108
1109 sources = [
1110 "task_queue_for_test.cc",
1111 "task_queue_for_test.h",
1112 ]
1113 deps = [
1114 ":checks",
1115 ":rtc_base_approved",
1116 ":rtc_task_queue",
1117 ]
1118}
1119
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001120if (rtc_include_tests) {
1121 rtc_source_set("rtc_base_tests_main") {
1122 testonly = true
1123 sources = [
1124 "unittest_main.cc",
1125 ]
1126 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1127 deps = [
1128 ":rtc_base",
1129 ":rtc_base_approved",
1130 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001131 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001132 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001133 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 "../test:test_support",
1135 ]
1136
1137 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001138 "//testing/gtest",
1139 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001140 }
1141
1142 rtc_source_set("rtc_base_nonparallel_tests") {
1143 testonly = true
1144
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001145 sources = [
1146 "cpu_time_unittest.cc",
1147 "filerotatingstream_unittest.cc",
1148 "nullsocketserver_unittest.cc",
1149 "physicalsocketserver_unittest.cc",
1150 "socket_unittest.cc",
1151 "socket_unittest.h",
1152 "socketaddress_unittest.cc",
1153 ]
1154 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001155 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001156 ":rtc_base",
1157 ":rtc_base_tests_main",
1158 ":rtc_base_tests_utils",
1159 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001160 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001161 "../test:test_support",
1162 "//testing/gtest",
1163 ]
1164 if (is_win) {
1165 sources += [ "win32socketserver_unittest.cc" ]
1166 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 }
1168
1169 rtc_source_set("rtc_base_approved_unittests") {
1170 testonly = true
1171
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001172 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001173 "atomicops_unittest.cc",
1174 "base64_unittest.cc",
1175 "basictypes_unittest.cc",
1176 "bind_unittest.cc",
1177 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001178 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001179 "buffer_unittest.cc",
1180 "bufferqueue_unittest.cc",
1181 "bytebuffer_unittest.cc",
1182 "byteorder_unittest.cc",
1183 "copyonwritebuffer_unittest.cc",
1184 "criticalsection_unittest.cc",
1185 "event_tracer_unittest.cc",
1186 "event_unittest.cc",
1187 "file_unittest.cc",
1188 "function_view_unittest.cc",
1189 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001190 "numerics/histogram_percentile_counter_unittest.cc",
1191 "numerics/mod_ops_unittest.cc",
1192 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001193 "numerics/safe_compare_unittest.cc",
1194 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001195 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001196 "pathutils_unittest.cc",
1197 "platform_thread_unittest.cc",
1198 "random_unittest.cc",
1199 "rate_limiter_unittest.cc",
1200 "rate_statistics_unittest.cc",
1201 "ratetracker_unittest.cc",
1202 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001203 "string_to_number_unittest.cc",
1204 "stringencode_unittest.cc",
1205 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001206 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001207 "stringutils_unittest.cc",
1208 "swap_queue_unittest.cc",
1209 "thread_annotations_unittest.cc",
1210 "thread_checker_unittest.cc",
1211 "timestampaligner_unittest.cc",
1212 "timeutils_unittest.cc",
1213 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001214 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001215 ]
1216 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001217 ":checks",
1218 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001219 ":rtc_base",
1220 ":rtc_base_approved",
1221 ":rtc_base_tests_main",
1222 ":rtc_base_tests_utils",
1223 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001224 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001225 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001226 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001227 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001228 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001229 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001230 "../test:test_support",
1231 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001232 }
1233
1234 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001235 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001236 testonly = true
1237
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001238 sources = [
1239 "task_queue_unittest.cc",
1240 ]
1241 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001242 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001243 ":rtc_base_tests_main",
1244 ":rtc_base_tests_utils",
1245 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001246 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001247 "../test:test_support",
1248 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001249 }
1250
1251 rtc_source_set("sequenced_task_checker_unittests") {
1252 testonly = true
1253
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001254 sources = [
1255 "sequenced_task_checker_unittest.cc",
1256 ]
1257 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001258 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001259 ":rtc_base_approved",
1260 ":rtc_base_tests_main",
1261 ":rtc_task_queue",
1262 ":sequenced_task_checker",
1263 "../test:test_support",
1264 ]
1265 }
1266
1267 rtc_source_set("weak_ptr_unittests") {
1268 testonly = true
1269
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001270 sources = [
1271 "weak_ptr_unittest.cc",
1272 ]
1273 deps = [
Tommi897e1362017-12-01 18:56:43 +01001274 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001275 ":rtc_base_tests_main",
1276 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001277 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001278 ":rtc_task_queue",
1279 ":weak_ptr",
1280 "../test:test_support",
1281 ]
1282 }
1283
1284 rtc_source_set("rtc_numerics_unittests") {
1285 testonly = true
1286
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001287 sources = [
1288 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001289 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001290 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001291 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001292 ]
1293 deps = [
1294 ":rtc_base_approved",
1295 ":rtc_base_tests_main",
1296 ":rtc_numerics",
1297 "../test:test_support",
1298 ]
1299 }
1300
1301 config("rtc_base_unittests_config") {
1302 if (is_clang) {
1303 cflags = [ "-Wno-unused-const-variable" ]
1304 }
1305 }
1306 rtc_source_set("rtc_base_unittests") {
1307 testonly = true
1308
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001309 sources = [
1310 "callback_unittest.cc",
1311 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001312 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001313 "helpers_unittest.cc",
1314 "httpbase_unittest.cc",
1315 "httpcommon_unittest.cc",
1316 "httpserver_unittest.cc",
1317 "ipaddress_unittest.cc",
1318 "memory_usage_unittest.cc",
1319 "messagedigest_unittest.cc",
1320 "messagequeue_unittest.cc",
1321 "nat_unittest.cc",
1322 "network_unittest.cc",
1323 "optionsfile_unittest.cc",
1324 "proxy_unittest.cc",
1325 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001326 "rollingaccumulator_unittest.cc",
1327 "rtccertificate_unittest.cc",
1328 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001329 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001330 "sigslot_unittest.cc",
1331 "sigslottester_unittest.cc",
1332 "stream_unittest.cc",
1333 "testclient_unittest.cc",
1334 "thread_unittest.cc",
1335 ]
1336 if (is_win) {
1337 sources += [
1338 "win32_unittest.cc",
1339 "win32window_unittest.cc",
1340 ]
1341 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001342 if (is_posix) {
1343 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001344 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001345 "ssladapter_unittest.cc",
1346 "sslidentity_unittest.cc",
1347 "sslstreamadapter_unittest.cc",
1348 ]
1349 }
1350 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001351 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001352 ":rtc_base_tests_main",
1353 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001354 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001355 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001356 "../api:optional",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001357 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001358 "../test:test_support",
1359 ]
1360 public_deps = [
1361 ":rtc_base",
1362 ]
1363 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001364 if (build_with_chromium) {
1365 include_dirs = [ "../../boringssl/src/include" ]
1366 }
1367 if (rtc_build_ssl) {
1368 deps += [ "//third_party/boringssl" ]
1369 } else {
1370 configs += [ ":external_ssl_library" ]
1371 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001372 }
1373}
1374
Henrik Kjellander73e21802017-06-20 08:38:58 +02001375if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001376 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001377 java_files = [
1378 "java/src/org/webrtc/ContextUtils.java",
1379 "java/src/org/webrtc/Logging.java",
1380 "java/src/org/webrtc/Size.java",
1381 "java/src/org/webrtc/ThreadUtils.java",
1382 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001383 }
1384}