blob: eb02ffb97a4e1b800d5a1e918e70a50ab5f23de0 [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 "rtccertificate.cc",
856 "rtccertificate.h",
857 "rtccertificategenerator.cc",
858 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700859 "signalthread.cc",
860 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200861 "sigslot.cc",
862 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700863 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200864 "socket.h",
865 "socketadapters.cc",
866 "socketadapters.h",
867 "socketaddress.cc",
868 "socketaddress.h",
869 "socketaddresspair.cc",
870 "socketaddresspair.h",
871 "socketfactory.h",
872 "socketserver.h",
873 "socketstream.cc",
874 "socketstream.h",
875 "ssladapter.cc",
876 "ssladapter.h",
877 "sslfingerprint.cc",
878 "sslfingerprint.h",
879 "sslidentity.cc",
880 "sslidentity.h",
881 "sslstreamadapter.cc",
882 "sslstreamadapter.h",
883 "stream.cc",
884 "stream.h",
885 "thread.cc",
886 "thread.h",
887 ]
888
mbonadei310e32b2017-09-07 07:36:28 -0700889 visibility = [
890 ":rtc_base",
891 ":rtc_base_objc",
892 ]
893
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200894 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
895 # compiler settings.
896 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
897 configs += [ "//build/config/compiler:no_chromium_code" ]
898 if (!is_win) {
899 cflags += [ "-Wno-uninitialized" ]
900 }
901
902 if (build_with_chromium) {
903 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200904 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200905 }
906 include_dirs = [ "../../boringssl/src/include" ]
907 public_configs += [ ":rtc_base_chromium_config" ]
908 } else {
909 configs += [ ":rtc_base_warnings_config" ]
910 sources += [
911 "callback.h",
912 "logsinks.cc",
913 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100914 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200915 "optionsfile.cc",
916 "optionsfile.h",
917 "rollingaccumulator.h",
918 "sslroots.h",
919 "transformadapter.cc",
920 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200921 ]
922
923 if (is_win) {
924 sources += [
925 "win32socketinit.cc",
926 "win32socketinit.h",
927 "win32socketserver.cc",
928 "win32socketserver.h",
929 ]
930 }
931 } # !build_with_chromium
932
933 if (rtc_build_ssl) {
934 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500935 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200936 configs += [ ":external_ssl_library" ]
937 }
938
939 if (is_android) {
940 sources += [
941 "ifaddrs-android.cc",
942 "ifaddrs-android.h",
943 ]
944
945 libs += [
946 "log",
947 "GLESv2",
948 ]
949 }
950
951 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700952 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 }
954
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100955 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200956 libs += [
957 "dl",
958 "rt",
959 "Xext",
960 "X11",
961 "Xcomposite",
962 "Xrender",
963 ]
964 }
965
966 if (is_linux) {
967 libs += [
968 "dl",
969 "rt",
970 ]
971 }
972
973 if (is_mac) {
974 sources += [
975 "macutils.cc",
976 "macutils.h",
977 ]
978 libs += [
979 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
980 "ApplicationServices.framework",
981 ]
982 }
983
984 if (is_win) {
985 sources += [
986 "win32.cc",
987 "win32.h",
988 "win32filesystem.cc",
989 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200990 "win32window.cc",
991 "win32window.h",
992 ]
993
994 libs += [
995 "crypt32.lib",
996 "iphlpapi.lib",
997 "secur32.lib",
998 ]
999
1000 cflags += [
1001 # Suppress warnings about WIN32_LEAN_AND_MEAN.
1002 "/wd4005",
1003 "/wd4703",
1004 ]
1005
1006 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
1007 }
1008
1009 if (is_posix) {
1010 sources += [
1011 "ifaddrs_converter.cc",
1012 "ifaddrs_converter.h",
1013 "unixfilesystem.cc",
1014 "unixfilesystem.h",
1015 ]
1016 }
1017
1018 if (is_nacl) {
1019 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
1020 defines += [ "timezone=_timezone" ]
1021 sources -= [ "ifaddrs_converter.cc" ]
1022 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001023}
1024
1025rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001026 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 sources = [
1028 "gtest_prod_util.h",
1029 ]
1030}
1031
1032config("rtc_base_tests_utils_exported_config") {
1033 defines = [ "GTEST_RELATIVE_PATH" ]
1034}
1035
1036config("rtc_base_tests_utils_warnings_config") {
1037 if (is_win && is_clang) {
1038 cflags = [
1039 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
1040 "-Wno-reorder",
1041 "-Wno-sign-compare",
1042 ]
1043 }
1044}
1045
1046rtc_source_set("rtc_base_tests_utils") {
1047 testonly = true
1048 sources = [
1049 # Also use this as a convenient dumping ground for misc files that are
1050 # included by multiple targets below.
1051 "cpu_time.cc",
1052 "cpu_time.h",
1053 "fakeclock.cc",
1054 "fakeclock.h",
1055 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001056 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001057 "fakesslidentity.h",
1058 "firewallsocketserver.cc",
1059 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001060 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001061 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +01001062 "httpbase.cc",
1063 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 "httpserver.cc",
1065 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 "memory_usage.cc",
1067 "memory_usage.h",
1068 "natserver.cc",
1069 "natserver.h",
1070 "natsocketfactory.cc",
1071 "natsocketfactory.h",
1072 "nattypes.cc",
1073 "nattypes.h",
1074 "proxyserver.cc",
1075 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001076 "sigslottester.h",
1077 "sigslottester.h.pump",
1078 "testbase64.h",
1079 "testclient.cc",
1080 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001081 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001082 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001083 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001084 "testutils.h",
1085 "timedelta.h",
1086 "virtualsocketserver.cc",
1087 "virtualsocketserver.h",
1088 ]
1089 configs += [ ":rtc_base_tests_utils_warnings_config" ]
1090 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1091 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001092 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001093 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001094 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 "../test:field_trial",
1096 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001097 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001098 ]
1099 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 "//testing/gtest",
1101 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001102}
1103
Tommida8781f2018-02-19 12:41:43 +01001104rtc_source_set("rtc_task_queue_for_test") {
1105 visibility = [ "*" ]
1106 testonly = true
1107
1108 sources = [
1109 "task_queue_for_test.cc",
1110 "task_queue_for_test.h",
1111 ]
1112 deps = [
1113 ":checks",
1114 ":rtc_base_approved",
1115 ":rtc_task_queue",
1116 ]
1117}
1118
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001119if (rtc_include_tests) {
1120 rtc_source_set("rtc_base_tests_main") {
1121 testonly = true
1122 sources = [
1123 "unittest_main.cc",
1124 ]
1125 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1126 deps = [
1127 ":rtc_base",
1128 ":rtc_base_approved",
1129 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001130 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001131 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001132 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001133 "../test:test_support",
1134 ]
1135
1136 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 "//testing/gtest",
1138 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 }
1140
1141 rtc_source_set("rtc_base_nonparallel_tests") {
1142 testonly = true
1143
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001144 sources = [
1145 "cpu_time_unittest.cc",
1146 "filerotatingstream_unittest.cc",
1147 "nullsocketserver_unittest.cc",
1148 "physicalsocketserver_unittest.cc",
1149 "socket_unittest.cc",
1150 "socket_unittest.h",
1151 "socketaddress_unittest.cc",
1152 ]
1153 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001154 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001155 ":rtc_base",
1156 ":rtc_base_tests_main",
1157 ":rtc_base_tests_utils",
1158 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001159 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 "../test:test_support",
1161 "//testing/gtest",
1162 ]
1163 if (is_win) {
1164 sources += [ "win32socketserver_unittest.cc" ]
1165 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001166 }
1167
1168 rtc_source_set("rtc_base_approved_unittests") {
1169 testonly = true
1170
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001171 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001172 "atomicops_unittest.cc",
1173 "base64_unittest.cc",
1174 "basictypes_unittest.cc",
1175 "bind_unittest.cc",
1176 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001177 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001178 "buffer_unittest.cc",
1179 "bufferqueue_unittest.cc",
1180 "bytebuffer_unittest.cc",
1181 "byteorder_unittest.cc",
1182 "copyonwritebuffer_unittest.cc",
1183 "criticalsection_unittest.cc",
1184 "event_tracer_unittest.cc",
1185 "event_unittest.cc",
1186 "file_unittest.cc",
1187 "function_view_unittest.cc",
1188 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001189 "numerics/histogram_percentile_counter_unittest.cc",
1190 "numerics/mod_ops_unittest.cc",
1191 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001192 "numerics/safe_compare_unittest.cc",
1193 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001194 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001195 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001196 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001197 "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",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001231 "memory:unittests",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001232 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001233 }
1234
1235 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001236 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001237 testonly = true
1238
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001239 sources = [
1240 "task_queue_unittest.cc",
1241 ]
1242 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001243 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001244 ":rtc_base_tests_main",
1245 ":rtc_base_tests_utils",
1246 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001247 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001248 "../test:test_support",
1249 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001250 }
1251
1252 rtc_source_set("sequenced_task_checker_unittests") {
1253 testonly = true
1254
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001255 sources = [
1256 "sequenced_task_checker_unittest.cc",
1257 ]
1258 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001259 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001260 ":rtc_base_approved",
1261 ":rtc_base_tests_main",
1262 ":rtc_task_queue",
1263 ":sequenced_task_checker",
1264 "../test:test_support",
1265 ]
1266 }
1267
1268 rtc_source_set("weak_ptr_unittests") {
1269 testonly = true
1270
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001271 sources = [
1272 "weak_ptr_unittest.cc",
1273 ]
1274 deps = [
Tommi897e1362017-12-01 18:56:43 +01001275 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001276 ":rtc_base_tests_main",
1277 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001278 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001279 ":rtc_task_queue",
1280 ":weak_ptr",
1281 "../test:test_support",
1282 ]
1283 }
1284
1285 rtc_source_set("rtc_numerics_unittests") {
1286 testonly = true
1287
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001288 sources = [
1289 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001290 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001291 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001292 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 ]
1294 deps = [
1295 ":rtc_base_approved",
1296 ":rtc_base_tests_main",
1297 ":rtc_numerics",
1298 "../test:test_support",
1299 ]
1300 }
1301
1302 config("rtc_base_unittests_config") {
1303 if (is_clang) {
1304 cflags = [ "-Wno-unused-const-variable" ]
1305 }
1306 }
1307 rtc_source_set("rtc_base_unittests") {
1308 testonly = true
1309
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001310 sources = [
1311 "callback_unittest.cc",
1312 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001313 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001314 "helpers_unittest.cc",
1315 "httpbase_unittest.cc",
1316 "httpcommon_unittest.cc",
1317 "httpserver_unittest.cc",
1318 "ipaddress_unittest.cc",
1319 "memory_usage_unittest.cc",
1320 "messagedigest_unittest.cc",
1321 "messagequeue_unittest.cc",
1322 "nat_unittest.cc",
1323 "network_unittest.cc",
1324 "optionsfile_unittest.cc",
1325 "proxy_unittest.cc",
1326 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001327 "rollingaccumulator_unittest.cc",
1328 "rtccertificate_unittest.cc",
1329 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001330 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001331 "sigslot_unittest.cc",
1332 "sigslottester_unittest.cc",
1333 "stream_unittest.cc",
1334 "testclient_unittest.cc",
1335 "thread_unittest.cc",
1336 ]
1337 if (is_win) {
1338 sources += [
1339 "win32_unittest.cc",
1340 "win32window_unittest.cc",
1341 ]
1342 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001343 if (is_posix) {
1344 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001345 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001346 "ssladapter_unittest.cc",
1347 "sslidentity_unittest.cc",
1348 "sslstreamadapter_unittest.cc",
1349 ]
1350 }
1351 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001352 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001353 ":rtc_base_tests_main",
1354 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001355 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001356 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001357 "../api:optional",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001358 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001359 "../test:test_support",
1360 ]
1361 public_deps = [
1362 ":rtc_base",
1363 ]
1364 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001365 if (build_with_chromium) {
1366 include_dirs = [ "../../boringssl/src/include" ]
1367 }
1368 if (rtc_build_ssl) {
1369 deps += [ "//third_party/boringssl" ]
1370 } else {
1371 configs += [ ":external_ssl_library" ]
1372 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001373 }
1374}
1375
Henrik Kjellander73e21802017-06-20 08:38:58 +02001376if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001377 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001378 java_files = [
1379 "java/src/org/webrtc/ContextUtils.java",
1380 "java/src/org/webrtc/Logging.java",
1381 "java/src/org/webrtc/Size.java",
1382 "java/src/org/webrtc/ThreadUtils.java",
1383 ]
Sami Kalliomäkie7fac682018-03-20 16:32:49 +01001384
Oleh Prypina09993d2018-03-22 10:02:10 +01001385 # TODO(crbug.com/824679): Find out why this fails in Chromium
1386 if (!build_with_chromium) {
1387 javac_args = [
1388 "-Xep:ParameterNotNullable:ERROR",
1389 "-Xep:FieldMissingNullable:ERROR",
1390 "-Xep:ReturnMissingNullable:ERROR",
1391 ]
1392 }
Sami Kalliomäkie7fac682018-03-20 16:32:49 +01001393
1394 deps = [
1395 "//third_party/jsr-305:jsr_305_javalib",
1396 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001397 }
1398}