blob: b3fbd45f4d5e37160394d5adbad5d5eb0f5d8ea7 [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") {
John Budorick6c9a7862018-03-26 06:23:34 -0700183 deps = [
184 ":checks",
185 ":macromagic",
186 ]
187
Tommi8d2c5a82018-03-19 11:12:48 +0100188 if (build_with_chromium) {
John Budorick6c9a7862018-03-26 06:23:34 -0700189 # Dependency on chromium's waitable_event (in //base).
190 deps += [ "//base:base" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100191 sources = [
192 "../../webrtc_overrides/rtc_base/event.cc",
193 "../../webrtc_overrides/rtc_base/event.h",
194 ]
195 } else {
196 sources = [
197 "event.cc",
198 "event.h",
199 ]
200 }
Tommi8d2c5a82018-03-19 11:12:48 +0100201}
202
203rtc_source_set("logging") {
204 deps = [
205 ":criticalsection",
206 ":macromagic",
207 ":platform_thread_types",
208 ":stringutils",
209 ":timeutils",
210 ]
211
212 if (build_with_chromium) {
213 # Dependency on chromium's logging (in //base).
214 deps += [ "//base:base" ]
215 sources = [
216 "../../webrtc_overrides/rtc_base/logging.cc",
217 "../../webrtc_overrides/rtc_base/logging.h",
218 ]
219 } else {
220 sources = [
221 "logging.cc",
222 "logging.h",
223 ]
224
225 # logging.h needs the deprecation header while downstream projects are
226 # removing code that depends on logging implementation details.
227 deps += [ ":deprecation" ]
228 }
229}
230
231rtc_source_set("thread_checker") {
232 sources = [
233 "thread_checker.h",
234 "thread_checker_impl.cc",
235 "thread_checker_impl.h",
236 ]
237 deps = [
238 ":checks",
239 ":criticalsection",
240 ":macromagic",
241 ":platform_thread_types",
242 "..:typedefs",
243 ]
244}
245
246rtc_source_set("atomicops") {
247 sources = [
248 "atomicops.h",
249 ]
250}
251
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100252rtc_source_set("checks") {
253 sources = [
254 "checks.cc",
255 "checks.h",
256 ]
257 deps = [
258 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100259 "..:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100260 ]
261}
262
Patrik Höglund3e113432017-12-15 14:40:10 +0100263rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100264 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100265 "rate_limiter.cc",
266 "rate_limiter.h",
267 ]
268 deps = [
269 ":rtc_base_approved",
270 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100271 ]
272}
273
274rtc_source_set("sanitizer") {
275 sources = [
276 "sanitizer.h",
277 ]
278}
279
280rtc_source_set("safe_compare") {
281 sources = [
282 "numerics/safe_compare.h",
283 ]
284 deps = [
285 ":type_traits",
286 ]
287}
288
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100289rtc_source_set("safe_minmax") {
290 sources = [
291 "numerics/safe_minmax.h",
292 ]
293 deps = [
294 ":checks",
295 ":safe_compare",
296 ":type_traits",
297 ]
298}
299
Tommi8d2c5a82018-03-19 11:12:48 +0100300rtc_source_set("safe_conversions") {
301 sources = [
302 "numerics/safe_conversions.h",
303 "numerics/safe_conversions_impl.h",
304 ]
305 deps = [
306 ":checks",
307 ]
308}
309
310rtc_source_set("timeutils") {
311 sources = [
312 "timeutils.cc",
313 "timeutils.h",
314 ]
315 deps = [
316 ":checks",
317 ":safe_conversions",
318 ]
319}
320
Patrik Höglund3e113432017-12-15 14:40:10 +0100321rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100322 sources = [
Tommi8d2c5a82018-03-19 11:12:48 +0100323 "stringencode.cc",
324 "stringencode.h",
Karl Wiberg881f1682018-03-08 15:03:23 +0100325 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100326 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100327 "stringutils.cc",
328 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100329 ]
330 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100331 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100332 ":safe_minmax",
333 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100334 ]
335}
336
337rtc_source_set("type_traits") {
338 sources = [
339 "type_traits.h",
340 ]
341}
342
343rtc_source_set("deprecation") {
344 sources = [
345 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100346 ]
347}
348
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200349# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700350rtc_source_set("rtc_base_approved_generic") {
351 visibility = [
352 ":rtc_base_approved",
Tommi897e1362017-12-01 18:56:43 +0100353 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700354 ]
355
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100356 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200357 defines = []
358 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100359 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100360 ":atomicops",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100361 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100362 ":criticalsection",
363 ":logging",
364 ":macromagic",
365 ":platform_thread",
366 ":platform_thread_types",
367 ":ptr_util",
368 ":refcount",
369 ":rtc_event",
370 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100371 ":safe_compare",
Tommi8d2c5a82018-03-19 11:12:48 +0100372 ":safe_conversions",
Patrik Höglund3e113432017-12-15 14:40:10 +0100373 ":stringutils",
Tommi8d2c5a82018-03-19 11:12:48 +0100374 ":thread_checker",
375 ":timeutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100376 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100377 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100378 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200379
380 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200381 "base64.cc",
382 "base64.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200383 "bind.h",
384 "bitbuffer.cc",
385 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200386 "bitrateallocationstrategy.cc",
387 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200388 "buffer.h",
389 "bufferqueue.cc",
390 "bufferqueue.h",
391 "bytebuffer.cc",
392 "bytebuffer.h",
393 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200394 "copyonwritebuffer.cc",
395 "copyonwritebuffer.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200396 "event_tracer.cc",
397 "event_tracer.h",
398 "file.cc",
399 "file.h",
400 "flags.cc",
401 "flags.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200402 "function_view.h",
403 "ignore_wundef.h",
404 "location.cc",
405 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100406 "numerics/histogram_percentile_counter.cc",
407 "numerics/histogram_percentile_counter.h",
408 "numerics/mod_ops.h",
409 "numerics/moving_max_counter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200410 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200411 "pathutils.cc",
412 "pathutils.h",
413 "platform_file.cc",
414 "platform_file.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200415 "race_checker.cc",
416 "race_checker.h",
417 "random.cc",
418 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200419 "rate_statistics.cc",
420 "rate_statistics.h",
421 "ratetracker.cc",
422 "ratetracker.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200423 "string_to_number.cc",
424 "string_to_number.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200425 "swap_queue.h",
426 "template_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200427 "timestampaligner.cc",
428 "timestampaligner.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200429 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100430 "zero_memory.cc",
431 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200432 ]
433
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100434 deps += [
435 "..:webrtc_common",
436 "../api:array_view",
437 "../api:optional",
438 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200439
440 if (is_android) {
441 libs += [ "log" ]
442 }
443
444 if (is_posix) {
445 sources += [ "file_posix.cc" ]
446 }
447
448 if (is_win) {
449 sources += [ "file_win.cc" ]
450 }
451
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200452 if (is_component_build && is_win) {
453 # Copy the VS runtime DLLs into the isolate so that they don't have to be
454 # preinstalled on the target machine. The debug runtimes have a "d" at
455 # the end.
456 # This is a copy of https://codereview.chromium.org/1783973002.
457 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
458 # so we don't have to copy their changes and risk breakages.
459 # See http://crbug.com/653569
460 if (is_debug) {
461 vcrt_suffix = "d"
462 } else {
463 vcrt_suffix = ""
464 }
465
466 # These runtime files are copied to the output directory by the
467 # vs_toolchain script that runs as part of toolchain configuration.
468 data = [
469 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
470 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
471 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
472
473 # Universal Windows 10 CRT files
474 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
475 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
476 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
477 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
478 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
479 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
480 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
481 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
482 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
483 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
484 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
485 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
486 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
487 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
488 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
489 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
490 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
491 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
492 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
493 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
494 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
495 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
496 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
497 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
498 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
499 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
500 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
501 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
502 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
503 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
504 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
505 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
506 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
507 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
508 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
509 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
510 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
511 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
512 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
513 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
514 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
515 ]
516 if (is_asan) {
517 if (current_cpu == "x64") {
518 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
519 } else {
520 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
521 }
522 }
523 }
524 if (is_nacl) {
525 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
526 }
527}
528
mbonadeibc378472017-09-11 03:43:34 -0700529if (is_mac && !build_with_chromium) {
530 config("rtc_base_approved_objc_all_dependent_config") {
531 visibility = [ ":rtc_base_approved_objc" ]
532 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
533 }
534
535 rtc_source_set("rtc_base_approved_objc") {
536 visibility = [ ":rtc_base_approved" ]
537 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
538 sources = [
539 "logging_mac.mm",
540 ]
541 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100542 ":logging",
mbonadeibc378472017-09-11 03:43:34 -0700543 ]
544 }
545}
546
perkj650fdae2017-08-25 05:00:11 -0700547rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000548 visibility = [ "*" ]
Tommi8d2c5a82018-03-19 11:12:48 +0100549 deps = []
mbonadei95c8f652017-08-27 23:40:10 -0700550 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700551 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200552 ]
553
perkj650fdae2017-08-25 05:00:11 -0700554 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700555 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700556 }
557}
558
559# WebRTC targets must not directly depend on rtc_task_queue_api or
560# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
561# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
562# to the default implemenation in rtc_task_queue_impl or if an externally
563# provided implementation should be used. An external implementation should
564# depend on rtc_task_queue_api.
565rtc_source_set("rtc_task_queue_api") {
Tommi8d2c5a82018-03-19 11:12:48 +0100566 # The visibility list is commented out so that we won't break external
567 # implementations, but left here to manually test as well as for sake of what
568 # targets we expect to depend on rtc_task_queue_api.
569 # visibility = [
570 # ":rtc_task_queue",
571 # ":rtc_task_queue_impl",
572 # ":sequenced_task_checker",
573 # ]
nisse75dd6d42017-09-19 08:28:00 -0700574 sources = [
575 "task_queue.h",
576 ]
perkj650fdae2017-08-25 05:00:11 -0700577 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100578 ":macromagic",
579 ":ptr_util",
perkj650fdae2017-08-25 05:00:11 -0700580 ]
581}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200582
Tommi8d2c5a82018-03-19 11:12:48 +0100583if (rtc_enable_libevent) {
584 rtc_source_set("rtc_task_queue_libevent") {
585 visibility = [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700586 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200587 "task_queue_libevent.cc",
588 "task_queue_posix.cc",
589 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700590 ]
Tommi8d2c5a82018-03-19 11:12:48 +0100591 deps = [
592 ":checks",
593 ":criticalsection",
594 ":logging",
595 ":platform_thread",
596 ":ptr_util",
597 ":refcount",
598 ":rtc_task_queue_api",
599 ":safe_conversions",
600 ":timeutils",
601 ]
602 if (rtc_build_libevent) {
603 deps += [ "//base/third_party/libevent" ]
604 }
605 }
606}
607
608if (is_mac || is_ios) {
609 rtc_source_set("rtc_task_queue_gcd") {
610 visibility = [ ":rtc_task_queue_impl" ]
611 sources = [
612 "task_queue_gcd.cc",
613 "task_queue_posix.cc",
614 "task_queue_posix.h",
615 ]
616 deps = [
617 ":checks",
618 ":logging",
619 ":ptr_util",
620 ":refcount",
621 ":rtc_task_queue_api",
622 ]
623 }
624}
625
626if (is_win) {
627 rtc_source_set("rtc_task_queue_win") {
628 visibility = [ ":rtc_task_queue_impl" ]
629 sources = [
630 "task_queue_win.cc",
631 ]
632 deps = [
633 ":checks",
634 ":criticalsection",
635 ":logging",
636 ":macromagic",
637 ":platform_thread",
638 ":ptr_util",
639 ":refcount",
640 ":rtc_event",
641 ":rtc_task_queue_api",
642 ":safe_conversions",
643 ":timeutils",
644 ]
645 }
646}
647
648rtc_source_set("rtc_task_queue_impl") {
649 visibility = [ "*" ]
650 if (rtc_enable_libevent) {
651 deps = [
652 ":rtc_task_queue_libevent",
653 ]
perkj650fdae2017-08-25 05:00:11 -0700654 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200655 if (is_mac || is_ios) {
Tommi8d2c5a82018-03-19 11:12:48 +0100656 deps = [
657 ":rtc_task_queue_gcd",
Niels Möller17a04742017-09-27 10:53:21 +0200658 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200659 }
660 if (is_win) {
Tommi8d2c5a82018-03-19 11:12:48 +0100661 deps = [
662 ":rtc_task_queue_win",
Niels Möller15c9cf72017-10-19 12:38:09 +0200663 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200664 }
665 }
666}
667
Tommi8d2c5a82018-03-19 11:12:48 +0100668rtc_source_set("sequenced_task_checker") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200669 sources = [
670 "sequenced_task_checker.h",
671 "sequenced_task_checker_impl.cc",
672 "sequenced_task_checker_impl.h",
673 ]
674 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100675 ":checks",
Tommi8d2c5a82018-03-19 11:12:48 +0100676 ":criticalsection",
677 ":macromagic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200678 ":rtc_task_queue",
Tommi8d2c5a82018-03-19 11:12:48 +0100679 ":thread_checker",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200680 ]
681}
682
683rtc_static_library("weak_ptr") {
684 sources = [
685 "weak_ptr.cc",
686 "weak_ptr.h",
687 ]
688 deps = [
Tommi8d2c5a82018-03-19 11:12:48 +0100689 ":ptr_util",
690 ":refcount",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200691 ":sequenced_task_checker",
692 ]
693}
694
695rtc_static_library("rtc_numerics") {
696 sources = [
697 "numerics/exp_filter.cc",
698 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100699 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200700 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200701 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200702 ]
703 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100704 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200705 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100706 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200707 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200708 ]
709}
710
711config("rtc_base_warnings_config") {
712 if (is_win && is_clang) {
713 cflags = [
714 # Disable warnings failing when compiling with Clang on Windows.
715 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
716 "-Wno-sign-compare",
717 "-Wno-missing-braces",
718 ]
719 }
720}
721
722rtc_source_set("rtc_json") {
723 defines = []
724 sources = [
725 "json.cc",
726 "json.h",
727 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100728 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200729 if (rtc_build_json) {
730 public_deps = [
731 "//third_party/jsoncpp",
732 ]
733 } else {
734 include_dirs = [ "$rtc_jsoncpp_root" ]
735
736 # When defined changes the include path for json.h to where it is
737 # expected to be when building json outside of the standalone build.
738 defines += [ "WEBRTC_EXTERNAL_JSON" ]
739 }
740}
741
mbonadei9c5e5112017-09-05 05:17:02 -0700742rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000743 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500744 public_deps = []
745 if (!build_with_mozilla) {
746 public_deps += [ ":rtc_base_generic" ]
747 }
mbonadei310e32b2017-09-07 07:36:28 -0700748 if (is_win) {
749 sources = [
750 "noop.cc",
751 ]
752 }
753 if (is_ios || is_mac) {
754 sources = [
755 "noop.mm",
756 ]
757 public_deps += [ ":rtc_base_objc" ]
758 }
759}
760
761if (is_ios || is_mac) {
762 rtc_source_set("rtc_base_objc") {
763 sources = [
764 "thread_darwin.mm",
765 ]
766 deps = [
767 ":rtc_base_generic",
768 ]
769 visibility = [ ":rtc_base" ]
770 }
771}
772
773rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200774 cflags = []
775 cflags_cc = []
776 libs = []
777 defines = []
778 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100779 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100780 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200781 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100782 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700783 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200784 ]
785 public_deps = [
786 ":rtc_base_approved",
787 ]
788 public_configs = []
789
790 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
791
792 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200793 "asyncinvoker-inl.h",
794 "asyncinvoker.cc",
795 "asyncinvoker.h",
796 "asyncpacketsocket.cc",
797 "asyncpacketsocket.h",
798 "asyncresolverinterface.cc",
799 "asyncresolverinterface.h",
800 "asyncsocket.cc",
801 "asyncsocket.h",
802 "asynctcpsocket.cc",
803 "asynctcpsocket.h",
804 "asyncudpsocket.cc",
805 "asyncudpsocket.h",
806 "crc32.cc",
807 "crc32.h",
808 "cryptstring.cc",
809 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100810 "data_rate_limiter.cc",
811 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100812 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200813 "filerotatingstream.cc",
814 "filerotatingstream.h",
815 "fileutils.cc",
816 "fileutils.h",
817 "gunit_prod.h",
818 "helpers.cc",
819 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 "httpcommon-inl.h",
821 "httpcommon.cc",
822 "httpcommon.h",
823 "ipaddress.cc",
824 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100825 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200826 "messagedigest.cc",
827 "messagedigest.h",
828 "messagehandler.cc",
829 "messagehandler.h",
830 "messagequeue.cc",
831 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800832 "nethelper.cc",
833 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200834 "nethelpers.cc",
835 "nethelpers.h",
836 "network.cc",
837 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200838 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 "networkmonitor.cc",
840 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100841 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200842 "nullsocketserver.cc",
843 "nullsocketserver.h",
844 "openssl.h",
845 "openssladapter.cc",
846 "openssladapter.h",
847 "openssldigest.cc",
848 "openssldigest.h",
849 "opensslidentity.cc",
850 "opensslidentity.h",
851 "opensslstreamadapter.cc",
852 "opensslstreamadapter.h",
853 "physicalsocketserver.cc",
854 "physicalsocketserver.h",
855 "proxyinfo.cc",
856 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200857 "rtccertificate.cc",
858 "rtccertificate.h",
859 "rtccertificategenerator.cc",
860 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700861 "signalthread.cc",
862 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200863 "sigslot.cc",
864 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700865 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200866 "socket.h",
867 "socketadapters.cc",
868 "socketadapters.h",
869 "socketaddress.cc",
870 "socketaddress.h",
871 "socketaddresspair.cc",
872 "socketaddresspair.h",
873 "socketfactory.h",
874 "socketserver.h",
875 "socketstream.cc",
876 "socketstream.h",
877 "ssladapter.cc",
878 "ssladapter.h",
879 "sslfingerprint.cc",
880 "sslfingerprint.h",
881 "sslidentity.cc",
882 "sslidentity.h",
883 "sslstreamadapter.cc",
884 "sslstreamadapter.h",
885 "stream.cc",
886 "stream.h",
887 "thread.cc",
888 "thread.h",
889 ]
890
mbonadei310e32b2017-09-07 07:36:28 -0700891 visibility = [
892 ":rtc_base",
893 ":rtc_base_objc",
894 ]
895
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200896 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
897 # compiler settings.
898 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
899 configs += [ "//build/config/compiler:no_chromium_code" ]
900 if (!is_win) {
901 cflags += [ "-Wno-uninitialized" ]
902 }
903
904 if (build_with_chromium) {
905 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200906 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200907 }
908 include_dirs = [ "../../boringssl/src/include" ]
909 public_configs += [ ":rtc_base_chromium_config" ]
910 } else {
911 configs += [ ":rtc_base_warnings_config" ]
912 sources += [
913 "callback.h",
914 "logsinks.cc",
915 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100916 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200917 "optionsfile.cc",
918 "optionsfile.h",
919 "rollingaccumulator.h",
920 "sslroots.h",
921 "transformadapter.cc",
922 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200923 ]
924
925 if (is_win) {
926 sources += [
927 "win32socketinit.cc",
928 "win32socketinit.h",
929 "win32socketserver.cc",
930 "win32socketserver.h",
931 ]
932 }
933 } # !build_with_chromium
934
935 if (rtc_build_ssl) {
936 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500937 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200938 configs += [ ":external_ssl_library" ]
939 }
940
941 if (is_android) {
942 sources += [
943 "ifaddrs-android.cc",
944 "ifaddrs-android.h",
945 ]
946
947 libs += [
948 "log",
949 "GLESv2",
950 ]
951 }
952
953 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700954 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200955 }
956
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100957 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200958 libs += [
959 "dl",
960 "rt",
961 "Xext",
962 "X11",
963 "Xcomposite",
964 "Xrender",
965 ]
966 }
967
968 if (is_linux) {
969 libs += [
970 "dl",
971 "rt",
972 ]
973 }
974
975 if (is_mac) {
976 sources += [
977 "macutils.cc",
978 "macutils.h",
979 ]
980 libs += [
981 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
982 "ApplicationServices.framework",
983 ]
984 }
985
986 if (is_win) {
987 sources += [
988 "win32.cc",
989 "win32.h",
990 "win32filesystem.cc",
991 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200992 "win32window.cc",
993 "win32window.h",
994 ]
995
996 libs += [
997 "crypt32.lib",
998 "iphlpapi.lib",
999 "secur32.lib",
1000 ]
1001
1002 cflags += [
1003 # Suppress warnings about WIN32_LEAN_AND_MEAN.
1004 "/wd4005",
1005 "/wd4703",
1006 ]
1007
1008 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
1009 }
1010
1011 if (is_posix) {
1012 sources += [
1013 "ifaddrs_converter.cc",
1014 "ifaddrs_converter.h",
1015 "unixfilesystem.cc",
1016 "unixfilesystem.h",
1017 ]
1018 }
1019
1020 if (is_nacl) {
1021 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
1022 defines += [ "timezone=_timezone" ]
1023 sources -= [ "ifaddrs_converter.cc" ]
1024 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025}
1026
1027rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001028 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001029 sources = [
1030 "gtest_prod_util.h",
1031 ]
1032}
1033
1034config("rtc_base_tests_utils_exported_config") {
1035 defines = [ "GTEST_RELATIVE_PATH" ]
1036}
1037
1038config("rtc_base_tests_utils_warnings_config") {
1039 if (is_win && is_clang) {
1040 cflags = [
1041 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
1042 "-Wno-reorder",
1043 "-Wno-sign-compare",
1044 ]
1045 }
1046}
1047
1048rtc_source_set("rtc_base_tests_utils") {
1049 testonly = true
1050 sources = [
1051 # Also use this as a convenient dumping ground for misc files that are
1052 # included by multiple targets below.
1053 "cpu_time.cc",
1054 "cpu_time.h",
1055 "fakeclock.cc",
1056 "fakeclock.h",
1057 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001058 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001059 "fakesslidentity.h",
1060 "firewallsocketserver.cc",
1061 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -08001062 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001063 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +01001064 "httpbase.cc",
1065 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 "httpserver.cc",
1067 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001068 "memory_usage.cc",
1069 "memory_usage.h",
1070 "natserver.cc",
1071 "natserver.h",
1072 "natsocketfactory.cc",
1073 "natsocketfactory.h",
1074 "nattypes.cc",
1075 "nattypes.h",
1076 "proxyserver.cc",
1077 "proxyserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 "sigslottester.h",
1079 "sigslottester.h.pump",
1080 "testbase64.h",
1081 "testclient.cc",
1082 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001083 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001084 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -07001085 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001086 "testutils.h",
1087 "timedelta.h",
1088 "virtualsocketserver.cc",
1089 "virtualsocketserver.h",
1090 ]
1091 configs += [ ":rtc_base_tests_utils_warnings_config" ]
1092 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1093 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001094 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001095 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +01001096 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001097 "../test:field_trial",
1098 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +01001099 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001100 ]
1101 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001102 "//testing/gtest",
1103 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001104}
1105
Tommida8781f2018-02-19 12:41:43 +01001106rtc_source_set("rtc_task_queue_for_test") {
1107 visibility = [ "*" ]
1108 testonly = true
1109
1110 sources = [
1111 "task_queue_for_test.cc",
1112 "task_queue_for_test.h",
1113 ]
1114 deps = [
1115 ":checks",
1116 ":rtc_base_approved",
1117 ":rtc_task_queue",
1118 ]
1119}
1120
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001121if (rtc_include_tests) {
1122 rtc_source_set("rtc_base_tests_main") {
1123 testonly = true
1124 sources = [
1125 "unittest_main.cc",
1126 ]
1127 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
1128 deps = [
1129 ":rtc_base",
1130 ":rtc_base_approved",
1131 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +01001132 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001133 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001134 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001135 "../test:test_support",
1136 ]
1137
1138 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 "//testing/gtest",
1140 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 }
1142
1143 rtc_source_set("rtc_base_nonparallel_tests") {
1144 testonly = true
1145
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001146 sources = [
1147 "cpu_time_unittest.cc",
1148 "filerotatingstream_unittest.cc",
1149 "nullsocketserver_unittest.cc",
1150 "physicalsocketserver_unittest.cc",
1151 "socket_unittest.cc",
1152 "socket_unittest.h",
1153 "socketaddress_unittest.cc",
1154 ]
1155 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001156 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001157 ":rtc_base",
1158 ":rtc_base_tests_main",
1159 ":rtc_base_tests_utils",
1160 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001161 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001162 "../test:test_support",
1163 "//testing/gtest",
1164 ]
1165 if (is_win) {
1166 sources += [ "win32socketserver_unittest.cc" ]
1167 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001168 }
1169
1170 rtc_source_set("rtc_base_approved_unittests") {
1171 testonly = true
1172
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001173 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001174 "atomicops_unittest.cc",
1175 "base64_unittest.cc",
1176 "basictypes_unittest.cc",
1177 "bind_unittest.cc",
1178 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +01001179 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001180 "buffer_unittest.cc",
1181 "bufferqueue_unittest.cc",
1182 "bytebuffer_unittest.cc",
1183 "byteorder_unittest.cc",
1184 "copyonwritebuffer_unittest.cc",
1185 "criticalsection_unittest.cc",
1186 "event_tracer_unittest.cc",
1187 "event_unittest.cc",
1188 "file_unittest.cc",
1189 "function_view_unittest.cc",
1190 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +01001191 "numerics/histogram_percentile_counter_unittest.cc",
1192 "numerics/mod_ops_unittest.cc",
1193 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +01001194 "numerics/safe_compare_unittest.cc",
1195 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001196 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001197 "pathutils_unittest.cc",
Artem Titove62f6002018-03-19 15:40:00 +01001198 "platform_file_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001199 "platform_thread_unittest.cc",
1200 "random_unittest.cc",
1201 "rate_limiter_unittest.cc",
1202 "rate_statistics_unittest.cc",
1203 "ratetracker_unittest.cc",
1204 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001205 "string_to_number_unittest.cc",
1206 "stringencode_unittest.cc",
1207 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001208 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001209 "stringutils_unittest.cc",
1210 "swap_queue_unittest.cc",
1211 "thread_annotations_unittest.cc",
1212 "thread_checker_unittest.cc",
1213 "timestampaligner_unittest.cc",
1214 "timeutils_unittest.cc",
1215 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001216 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001217 ]
1218 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001219 ":checks",
1220 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001221 ":rtc_base",
1222 ":rtc_base_approved",
1223 ":rtc_base_tests_main",
1224 ":rtc_base_tests_utils",
1225 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001226 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001227 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001228 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001229 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001230 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001231 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001232 "../test:test_support",
Karl Wiberg29e7bee2018-03-22 14:11:52 +01001233 "memory:unittests",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001234 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001235 }
1236
1237 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001238 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001239 testonly = true
1240
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001241 sources = [
1242 "task_queue_unittest.cc",
1243 ]
1244 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001245 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001246 ":rtc_base_tests_main",
1247 ":rtc_base_tests_utils",
1248 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001249 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001250 "../test:test_support",
1251 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001252 }
1253
1254 rtc_source_set("sequenced_task_checker_unittests") {
1255 testonly = true
1256
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001257 sources = [
1258 "sequenced_task_checker_unittest.cc",
1259 ]
1260 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001261 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001262 ":rtc_base_approved",
1263 ":rtc_base_tests_main",
1264 ":rtc_task_queue",
1265 ":sequenced_task_checker",
1266 "../test:test_support",
1267 ]
1268 }
1269
1270 rtc_source_set("weak_ptr_unittests") {
1271 testonly = true
1272
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001273 sources = [
1274 "weak_ptr_unittest.cc",
1275 ]
1276 deps = [
Tommi897e1362017-12-01 18:56:43 +01001277 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001278 ":rtc_base_tests_main",
1279 ":rtc_base_tests_utils",
Tommi8d2c5a82018-03-19 11:12:48 +01001280 ":rtc_event",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001281 ":rtc_task_queue",
1282 ":weak_ptr",
1283 "../test:test_support",
1284 ]
1285 }
1286
1287 rtc_source_set("rtc_numerics_unittests") {
1288 testonly = true
1289
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001290 sources = [
1291 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001292 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001293 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001294 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001295 ]
1296 deps = [
1297 ":rtc_base_approved",
1298 ":rtc_base_tests_main",
1299 ":rtc_numerics",
1300 "../test:test_support",
1301 ]
1302 }
1303
1304 config("rtc_base_unittests_config") {
1305 if (is_clang) {
1306 cflags = [ "-Wno-unused-const-variable" ]
1307 }
1308 }
1309 rtc_source_set("rtc_base_unittests") {
1310 testonly = true
1311
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001312 sources = [
1313 "callback_unittest.cc",
1314 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001315 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001316 "helpers_unittest.cc",
1317 "httpbase_unittest.cc",
1318 "httpcommon_unittest.cc",
1319 "httpserver_unittest.cc",
1320 "ipaddress_unittest.cc",
1321 "memory_usage_unittest.cc",
1322 "messagedigest_unittest.cc",
1323 "messagequeue_unittest.cc",
1324 "nat_unittest.cc",
1325 "network_unittest.cc",
1326 "optionsfile_unittest.cc",
1327 "proxy_unittest.cc",
1328 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001329 "rollingaccumulator_unittest.cc",
1330 "rtccertificate_unittest.cc",
1331 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001332 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001333 "sigslot_unittest.cc",
1334 "sigslottester_unittest.cc",
1335 "stream_unittest.cc",
1336 "testclient_unittest.cc",
1337 "thread_unittest.cc",
1338 ]
1339 if (is_win) {
1340 sources += [
1341 "win32_unittest.cc",
1342 "win32window_unittest.cc",
1343 ]
1344 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001345 if (is_posix) {
1346 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001347 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001348 "ssladapter_unittest.cc",
1349 "sslidentity_unittest.cc",
1350 "sslstreamadapter_unittest.cc",
1351 ]
1352 }
1353 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001354 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001355 ":rtc_base_tests_main",
1356 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001357 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001358 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001359 "../api:optional",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001360 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001361 "../test:test_support",
1362 ]
1363 public_deps = [
1364 ":rtc_base",
1365 ]
1366 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001367 if (build_with_chromium) {
1368 include_dirs = [ "../../boringssl/src/include" ]
1369 }
1370 if (rtc_build_ssl) {
1371 deps += [ "//third_party/boringssl" ]
1372 } else {
1373 configs += [ ":external_ssl_library" ]
1374 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001375 }
1376}
1377
Henrik Kjellander73e21802017-06-20 08:38:58 +02001378if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001379 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001380 java_files = [
1381 "java/src/org/webrtc/ContextUtils.java",
1382 "java/src/org/webrtc/Logging.java",
1383 "java/src/org/webrtc/Size.java",
1384 "java/src/org/webrtc/ThreadUtils.java",
1385 ]
Sami Kalliomäkie7fac682018-03-20 16:32:49 +01001386
Oleh Prypina09993d2018-03-22 10:02:10 +01001387 # TODO(crbug.com/824679): Find out why this fails in Chromium
1388 if (!build_with_chromium) {
1389 javac_args = [
1390 "-Xep:ParameterNotNullable:ERROR",
1391 "-Xep:FieldMissingNullable:ERROR",
1392 "-Xep:ReturnMissingNullable:ERROR",
1393 ]
1394 }
Sami Kalliomäkie7fac682018-03-20 16:32:49 +01001395
1396 deps = [
1397 "//third_party/jsr-305:jsr_305_javalib",
1398 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001399 }
1400}