blob: 50e0b2499b26fe0e716c9e173f181cd09ca8fe14 [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",
26 ":sequenced_task_checker",
27 ":weak_ptr",
28 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +020029 if (is_android) {
30 public_deps += [ ":base_java" ]
31 }
32}
33
Henrik Kjellanderc0362762017-06-29 08:03:04 +020034config("rtc_base_chromium_config") {
35 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
36}
37
38config("rtc_base_all_dependent_config") {
39 if (is_ios) {
40 libs = [
41 "CFNetwork.framework",
Jiawei Ouc0216b82018-02-03 12:24:24 -080042 "Foundation.framework",
Henrik Kjellanderc0362762017-06-29 08:03:04 +020043 "Security.framework",
44 "SystemConfiguration.framework",
45 "UIKit.framework",
46 ]
47 }
48 if (is_mac) {
49 libs = [
50 "Cocoa.framework",
51 "Foundation.framework",
52 "IOKit.framework",
53 "Security.framework",
54 "SystemConfiguration.framework",
55 ]
56 }
57}
58
Dan Minor9cdd8762018-01-16 10:40:39 -050059if (!rtc_build_ssl) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +020060 config("external_ssl_library") {
61 assert(rtc_ssl_root != "",
62 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
63 include_dirs = [ rtc_ssl_root ]
64 }
65}
66
67source_set("protobuf_utils") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000068 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +020069 sources = [
70 "protobuf_utils.h",
71 ]
72 if (rtc_enable_protobuf) {
73 public_deps = [
74 "//third_party/protobuf:protobuf_lite",
75 ]
76 }
77}
78
79source_set("compile_assert_c") {
80 sources = [
81 "compile_assert_c.h",
82 ]
83}
84
mbonadeibc378472017-09-11 03:43:34 -070085rtc_source_set("rtc_base_approved") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000086 visibility = [ "*" ]
mbonadeibc378472017-09-11 03:43:34 -070087 public_deps = [
88 ":rtc_base_approved_generic",
89 ]
90 if (is_mac && !build_with_chromium) {
91 public_deps += [ ":rtc_base_approved_objc" ]
92 }
93}
94
Patrik Höglunda8005cf2017-12-13 16:05:42 +010095rtc_source_set("checks") {
96 sources = [
97 "checks.cc",
98 "checks.h",
99 ]
100 deps = [
101 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100102 "..:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100103 ]
104}
105
Patrik Höglund3e113432017-12-15 14:40:10 +0100106rtc_source_set("rate_limiter") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100107 sources = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100108 "rate_limiter.cc",
109 "rate_limiter.h",
110 ]
111 deps = [
112 ":rtc_base_approved",
113 "../system_wrappers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100114 ]
115}
116
117rtc_source_set("sanitizer") {
118 sources = [
119 "sanitizer.h",
120 ]
121}
122
123rtc_source_set("safe_compare") {
124 sources = [
125 "numerics/safe_compare.h",
126 ]
127 deps = [
128 ":type_traits",
129 ]
130}
131
Karl Wiberg12edf4c2018-03-07 14:18:56 +0100132rtc_source_set("safe_minmax") {
133 sources = [
134 "numerics/safe_minmax.h",
135 ]
136 deps = [
137 ":checks",
138 ":safe_compare",
139 ":type_traits",
140 ]
141}
142
Patrik Höglund3e113432017-12-15 14:40:10 +0100143rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100144 sources = [
Karl Wiberg881f1682018-03-08 15:03:23 +0100145 "strings/string_builder.cc",
Tommifef05002018-02-27 13:51:08 +0100146 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100147 "stringutils.cc",
148 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100149 ]
150 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100151 ":checks",
Karl Wiberg881f1682018-03-08 15:03:23 +0100152 ":safe_minmax",
153 "../api:array_view",
Patrik Höglund3e113432017-12-15 14:40:10 +0100154 ]
155}
156
157rtc_source_set("type_traits") {
158 sources = [
159 "type_traits.h",
160 ]
161}
162
163rtc_source_set("deprecation") {
164 sources = [
165 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100166 ]
167}
168
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200169# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700170rtc_source_set("rtc_base_approved_generic") {
171 visibility = [
172 ":rtc_base_approved",
173 ":rtc_base_approved_objc",
Tommi897e1362017-12-01 18:56:43 +0100174 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700175 ]
176
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100177 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200178 defines = []
179 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100180 deps = [
181 ":checks",
182 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100183 ":stringutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100184 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100185 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100186 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200187
188 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200189 "arraysize.h",
190 "atomicops.h",
191 "base64.cc",
192 "base64.h",
193 "basictypes.h",
194 "bind.h",
195 "bitbuffer.cc",
196 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200197 "bitrateallocationstrategy.cc",
198 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200199 "buffer.h",
200 "bufferqueue.cc",
201 "bufferqueue.h",
202 "bytebuffer.cc",
203 "bytebuffer.h",
204 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200205 "constructormagic.h",
206 "copyonwritebuffer.cc",
207 "copyonwritebuffer.h",
208 "criticalsection.cc",
209 "criticalsection.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200210 "event_tracer.cc",
211 "event_tracer.h",
212 "file.cc",
213 "file.h",
214 "flags.cc",
215 "flags.h",
216 "format_macros.h",
217 "function_view.h",
218 "ignore_wundef.h",
219 "location.cc",
220 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100221 "numerics/histogram_percentile_counter.cc",
222 "numerics/histogram_percentile_counter.h",
223 "numerics/mod_ops.h",
224 "numerics/moving_max_counter.h",
Karl Wiberge40468b2017-11-22 10:42:26 +0100225 "numerics/safe_conversions.h",
226 "numerics/safe_conversions_impl.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200227 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200228 "pathutils.cc",
229 "pathutils.h",
230 "platform_file.cc",
231 "platform_file.h",
232 "platform_thread.cc",
233 "platform_thread.h",
Tommi1f3f3c22018-02-17 11:46:14 +0100234 "platform_thread_types.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200235 "platform_thread_types.h",
236 "ptr_util.h",
237 "race_checker.cc",
238 "race_checker.h",
239 "random.cc",
240 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200241 "rate_statistics.cc",
242 "rate_statistics.h",
243 "ratetracker.cc",
244 "ratetracker.h",
245 "refcount.h",
246 "refcountedobject.h",
Niels Möller9155e492017-10-23 11:22:30 +0200247 "refcounter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200248 "scoped_ref_ptr.h",
249 "string_to_number.cc",
250 "string_to_number.h",
251 "stringencode.cc",
252 "stringencode.h",
253 "stringize_macros.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200254 "swap_queue.h",
255 "template_util.h",
256 "thread_annotations.h",
257 "thread_checker.h",
258 "thread_checker_impl.cc",
259 "thread_checker_impl.h",
260 "timestampaligner.cc",
261 "timestampaligner.h",
262 "timeutils.cc",
263 "timeutils.h",
264 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100265 "zero_memory.cc",
266 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200267 ]
268
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100269 deps += [
270 "..:webrtc_common",
271 "../api:array_view",
272 "../api:optional",
273 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200274
275 if (is_android) {
276 libs += [ "log" ]
277 }
278
279 if (is_posix) {
280 sources += [ "file_posix.cc" ]
281 }
282
283 if (is_win) {
284 sources += [ "file_win.cc" ]
285 }
286
287 if (build_with_chromium) {
288 # Dependency on chromium's logging (in //base).
289 deps += [ "//base:base" ]
290 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100291 "../../webrtc_overrides/rtc_base/event.cc",
292 "../../webrtc_overrides/rtc_base/event.h",
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200293 "../../webrtc_overrides/rtc_base/logging.cc",
294 "../../webrtc_overrides/rtc_base/logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200295 ]
296 } else {
297 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100298 "event.cc",
299 "event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200300 "logging.cc",
301 "logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200302 ]
Tommie51a0a82018-02-27 15:30:29 +0100303
304 # logging.h needs the deprecation header while downstream projects are
305 # removing code that depends on logging implementation details.
306 deps += [ ":deprecation" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200307 }
308 if (is_component_build && is_win) {
309 # Copy the VS runtime DLLs into the isolate so that they don't have to be
310 # preinstalled on the target machine. The debug runtimes have a "d" at
311 # the end.
312 # This is a copy of https://codereview.chromium.org/1783973002.
313 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
314 # so we don't have to copy their changes and risk breakages.
315 # See http://crbug.com/653569
316 if (is_debug) {
317 vcrt_suffix = "d"
318 } else {
319 vcrt_suffix = ""
320 }
321
322 # These runtime files are copied to the output directory by the
323 # vs_toolchain script that runs as part of toolchain configuration.
324 data = [
325 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
326 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
327 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
328
329 # Universal Windows 10 CRT files
330 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
331 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
332 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
333 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
334 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
335 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
336 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
337 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
338 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
339 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
340 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
341 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
342 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
343 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
344 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
345 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
346 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
347 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
348 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
349 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
350 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
351 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
352 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
353 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
354 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
355 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
356 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
357 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
358 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
359 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
360 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
361 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
362 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
363 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
364 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
365 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
366 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
367 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
368 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
369 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
370 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
371 ]
372 if (is_asan) {
373 if (current_cpu == "x64") {
374 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
375 } else {
376 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
377 }
378 }
379 }
380 if (is_nacl) {
381 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
382 }
383}
384
mbonadeibc378472017-09-11 03:43:34 -0700385if (is_mac && !build_with_chromium) {
386 config("rtc_base_approved_objc_all_dependent_config") {
387 visibility = [ ":rtc_base_approved_objc" ]
388 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
389 }
390
391 rtc_source_set("rtc_base_approved_objc") {
392 visibility = [ ":rtc_base_approved" ]
393 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
394 sources = [
395 "logging_mac.mm",
396 ]
397 deps = [
398 ":rtc_base_approved_generic",
399 ]
400 }
401}
402
perkj650fdae2017-08-25 05:00:11 -0700403rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000404 visibility = [ "*" ]
mbonadei95c8f652017-08-27 23:40:10 -0700405 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200406 ":rtc_base_approved",
mbonadei95c8f652017-08-27 23:40:10 -0700407 ]
408 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700409 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200410 ]
411
perkj650fdae2017-08-25 05:00:11 -0700412 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700413 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700414 }
415}
416
417# WebRTC targets must not directly depend on rtc_task_queue_api or
418# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
419# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
420# to the default implemenation in rtc_task_queue_impl or if an externally
421# provided implementation should be used. An external implementation should
422# depend on rtc_task_queue_api.
423rtc_source_set("rtc_task_queue_api") {
nisse75dd6d42017-09-19 08:28:00 -0700424 sources = [
425 "task_queue.h",
426 ]
perkj650fdae2017-08-25 05:00:11 -0700427 deps = [
428 ":rtc_base_approved",
429 ]
430}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200431
perkj650fdae2017-08-25 05:00:11 -0700432rtc_source_set("rtc_task_queue_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000433 visibility = [ "*" ]
perkj650fdae2017-08-25 05:00:11 -0700434 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100435 ":checks",
perkj650fdae2017-08-25 05:00:11 -0700436 ":rtc_base_approved",
437 ":rtc_task_queue_api",
438 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200439 if (rtc_build_libevent) {
440 deps += [ "//base/third_party/libevent" ]
441 }
442 if (rtc_enable_libevent) {
perkj650fdae2017-08-25 05:00:11 -0700443 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200444 "task_queue_libevent.cc",
445 "task_queue_posix.cc",
446 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700447 ]
448 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200449 if (is_mac || is_ios) {
Niels Möller17a04742017-09-27 10:53:21 +0200450 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200451 "task_queue_gcd.cc",
Henrik Boströma9a27712017-10-03 08:01:07 +0000452 "task_queue_posix.cc",
453 "task_queue_posix.h",
Niels Möller17a04742017-09-27 10:53:21 +0200454 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200455 }
456 if (is_win) {
457 sources = [
458 "task_queue_win.cc",
459 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200460 }
461 }
462}
463
464rtc_static_library("sequenced_task_checker") {
465 sources = [
466 "sequenced_task_checker.h",
467 "sequenced_task_checker_impl.cc",
468 "sequenced_task_checker_impl.h",
469 ]
470 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100471 ":checks",
mbonadei95c8f652017-08-27 23:40:10 -0700472 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200473 ":rtc_task_queue",
474 ]
475}
476
477rtc_static_library("weak_ptr") {
478 sources = [
479 "weak_ptr.cc",
480 "weak_ptr.h",
481 ]
482 deps = [
483 ":rtc_base_approved",
484 ":sequenced_task_checker",
485 ]
486}
487
488rtc_static_library("rtc_numerics") {
489 sources = [
490 "numerics/exp_filter.cc",
491 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100492 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200493 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200494 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200495 ]
496 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100497 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200498 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100499 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200500 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200501 ]
502}
503
504config("rtc_base_warnings_config") {
505 if (is_win && is_clang) {
506 cflags = [
507 # Disable warnings failing when compiling with Clang on Windows.
508 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
509 "-Wno-sign-compare",
510 "-Wno-missing-braces",
511 ]
512 }
513}
514
515rtc_source_set("rtc_json") {
516 defines = []
517 sources = [
518 "json.cc",
519 "json.h",
520 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100521 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200522 if (rtc_build_json) {
523 public_deps = [
524 "//third_party/jsoncpp",
525 ]
526 } else {
527 include_dirs = [ "$rtc_jsoncpp_root" ]
528
529 # When defined changes the include path for json.h to where it is
530 # expected to be when building json outside of the standalone build.
531 defines += [ "WEBRTC_EXTERNAL_JSON" ]
532 }
533}
534
mbonadei9c5e5112017-09-05 05:17:02 -0700535rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000536 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500537 public_deps = []
538 if (!build_with_mozilla) {
539 public_deps += [ ":rtc_base_generic" ]
540 }
mbonadei310e32b2017-09-07 07:36:28 -0700541 if (is_win) {
542 sources = [
543 "noop.cc",
544 ]
545 }
546 if (is_ios || is_mac) {
547 sources = [
548 "noop.mm",
549 ]
550 public_deps += [ ":rtc_base_objc" ]
551 }
552}
553
554if (is_ios || is_mac) {
555 rtc_source_set("rtc_base_objc") {
556 sources = [
557 "thread_darwin.mm",
558 ]
559 deps = [
560 ":rtc_base_generic",
561 ]
562 visibility = [ ":rtc_base" ]
563 }
564}
565
566rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200567 cflags = []
568 cflags_cc = []
569 libs = []
570 defines = []
571 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100572 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100573 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200574 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100575 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700576 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200577 ]
578 public_deps = [
579 ":rtc_base_approved",
580 ]
581 public_configs = []
582
583 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
584
585 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200586 "asyncinvoker-inl.h",
587 "asyncinvoker.cc",
588 "asyncinvoker.h",
589 "asyncpacketsocket.cc",
590 "asyncpacketsocket.h",
591 "asyncresolverinterface.cc",
592 "asyncresolverinterface.h",
593 "asyncsocket.cc",
594 "asyncsocket.h",
595 "asynctcpsocket.cc",
596 "asynctcpsocket.h",
597 "asyncudpsocket.cc",
598 "asyncudpsocket.h",
599 "crc32.cc",
600 "crc32.h",
601 "cryptstring.cc",
602 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100603 "data_rate_limiter.cc",
604 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100605 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200606 "filerotatingstream.cc",
607 "filerotatingstream.h",
608 "fileutils.cc",
609 "fileutils.h",
610 "gunit_prod.h",
611 "helpers.cc",
612 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200613 "httpcommon-inl.h",
614 "httpcommon.cc",
615 "httpcommon.h",
616 "ipaddress.cc",
617 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100618 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200619 "messagedigest.cc",
620 "messagedigest.h",
621 "messagehandler.cc",
622 "messagehandler.h",
623 "messagequeue.cc",
624 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800625 "nethelper.cc",
626 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200627 "nethelpers.cc",
628 "nethelpers.h",
629 "network.cc",
630 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200631 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200632 "networkmonitor.cc",
633 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100634 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200635 "nullsocketserver.cc",
636 "nullsocketserver.h",
637 "openssl.h",
638 "openssladapter.cc",
639 "openssladapter.h",
640 "openssldigest.cc",
641 "openssldigest.h",
642 "opensslidentity.cc",
643 "opensslidentity.h",
644 "opensslstreamadapter.cc",
645 "opensslstreamadapter.h",
646 "physicalsocketserver.cc",
647 "physicalsocketserver.h",
648 "proxyinfo.cc",
649 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200650 "ratelimiter.h",
651 "rtccertificate.cc",
652 "rtccertificate.h",
653 "rtccertificategenerator.cc",
654 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700655 "signalthread.cc",
656 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200657 "sigslot.cc",
658 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700659 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200660 "socket.h",
661 "socketadapters.cc",
662 "socketadapters.h",
663 "socketaddress.cc",
664 "socketaddress.h",
665 "socketaddresspair.cc",
666 "socketaddresspair.h",
667 "socketfactory.h",
668 "socketserver.h",
669 "socketstream.cc",
670 "socketstream.h",
671 "ssladapter.cc",
672 "ssladapter.h",
673 "sslfingerprint.cc",
674 "sslfingerprint.h",
675 "sslidentity.cc",
676 "sslidentity.h",
677 "sslstreamadapter.cc",
678 "sslstreamadapter.h",
679 "stream.cc",
680 "stream.h",
681 "thread.cc",
682 "thread.h",
683 ]
684
mbonadei310e32b2017-09-07 07:36:28 -0700685 visibility = [
686 ":rtc_base",
687 ":rtc_base_objc",
688 ]
689
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200690 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
691 # compiler settings.
692 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
693 configs += [ "//build/config/compiler:no_chromium_code" ]
694 if (!is_win) {
695 cflags += [ "-Wno-uninitialized" ]
696 }
697
698 if (build_with_chromium) {
699 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200700 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200701 }
702 include_dirs = [ "../../boringssl/src/include" ]
703 public_configs += [ ":rtc_base_chromium_config" ]
704 } else {
705 configs += [ ":rtc_base_warnings_config" ]
706 sources += [
707 "callback.h",
708 "logsinks.cc",
709 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100710 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200711 "optionsfile.cc",
712 "optionsfile.h",
713 "rollingaccumulator.h",
714 "sslroots.h",
715 "transformadapter.cc",
716 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200717 ]
718
719 if (is_win) {
720 sources += [
721 "win32socketinit.cc",
722 "win32socketinit.h",
723 "win32socketserver.cc",
724 "win32socketserver.h",
725 ]
726 }
727 } # !build_with_chromium
728
729 if (rtc_build_ssl) {
730 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500731 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200732 configs += [ ":external_ssl_library" ]
733 }
734
735 if (is_android) {
736 sources += [
737 "ifaddrs-android.cc",
738 "ifaddrs-android.h",
739 ]
740
741 libs += [
742 "log",
743 "GLESv2",
744 ]
745 }
746
747 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700748 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200749 }
750
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100751 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200752 libs += [
753 "dl",
754 "rt",
755 "Xext",
756 "X11",
757 "Xcomposite",
758 "Xrender",
759 ]
760 }
761
762 if (is_linux) {
763 libs += [
764 "dl",
765 "rt",
766 ]
767 }
768
769 if (is_mac) {
770 sources += [
771 "macutils.cc",
772 "macutils.h",
773 ]
774 libs += [
775 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
776 "ApplicationServices.framework",
777 ]
778 }
779
780 if (is_win) {
781 sources += [
782 "win32.cc",
783 "win32.h",
784 "win32filesystem.cc",
785 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200786 "win32window.cc",
787 "win32window.h",
788 ]
789
790 libs += [
791 "crypt32.lib",
792 "iphlpapi.lib",
793 "secur32.lib",
794 ]
795
796 cflags += [
797 # Suppress warnings about WIN32_LEAN_AND_MEAN.
798 "/wd4005",
799 "/wd4703",
800 ]
801
802 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
803 }
804
805 if (is_posix) {
806 sources += [
807 "ifaddrs_converter.cc",
808 "ifaddrs_converter.h",
809 "unixfilesystem.cc",
810 "unixfilesystem.h",
811 ]
812 }
813
814 if (is_nacl) {
815 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
816 defines += [ "timezone=_timezone" ]
817 sources -= [ "ifaddrs_converter.cc" ]
818 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200819}
820
821rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000822 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200823 sources = [
824 "gtest_prod_util.h",
825 ]
826}
827
828config("rtc_base_tests_utils_exported_config") {
829 defines = [ "GTEST_RELATIVE_PATH" ]
830}
831
832config("rtc_base_tests_utils_warnings_config") {
833 if (is_win && is_clang) {
834 cflags = [
835 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
836 "-Wno-reorder",
837 "-Wno-sign-compare",
838 ]
839 }
840}
841
842rtc_source_set("rtc_base_tests_utils") {
843 testonly = true
844 sources = [
845 # Also use this as a convenient dumping ground for misc files that are
846 # included by multiple targets below.
847 "cpu_time.cc",
848 "cpu_time.h",
849 "fakeclock.cc",
850 "fakeclock.h",
851 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700852 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200853 "fakesslidentity.h",
854 "firewallsocketserver.cc",
855 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800856 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200857 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100858 "httpbase.cc",
859 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200860 "httpserver.cc",
861 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200862 "memory_usage.cc",
863 "memory_usage.h",
864 "natserver.cc",
865 "natserver.h",
866 "natsocketfactory.cc",
867 "natsocketfactory.h",
868 "nattypes.cc",
869 "nattypes.h",
870 "proxyserver.cc",
871 "proxyserver.h",
Patrik Höglund563934e2017-09-15 09:04:28 +0200872 "refcount.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200873 "sigslottester.h",
874 "sigslottester.h.pump",
875 "testbase64.h",
876 "testclient.cc",
877 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700878 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200879 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700880 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200881 "testutils.h",
882 "timedelta.h",
883 "virtualsocketserver.cc",
884 "virtualsocketserver.h",
885 ]
886 configs += [ ":rtc_base_tests_utils_warnings_config" ]
887 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
888 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100889 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200890 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100891 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200892 "../test:field_trial",
893 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100894 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200895 ]
896 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200897 "//testing/gtest",
898 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200899}
900
Tommida8781f2018-02-19 12:41:43 +0100901rtc_source_set("rtc_task_queue_for_test") {
902 visibility = [ "*" ]
903 testonly = true
904
905 sources = [
906 "task_queue_for_test.cc",
907 "task_queue_for_test.h",
908 ]
909 deps = [
910 ":checks",
911 ":rtc_base_approved",
912 ":rtc_task_queue",
913 ]
914}
915
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200916if (rtc_include_tests) {
917 rtc_source_set("rtc_base_tests_main") {
918 testonly = true
919 sources = [
920 "unittest_main.cc",
921 ]
922 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
923 deps = [
924 ":rtc_base",
925 ":rtc_base_approved",
926 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +0100927 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200928 "../test:field_trial",
Patrik Höglund7696bef2018-03-15 15:05:39 +0100929 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 "../test:test_support",
931 ]
932
933 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200934 "//testing/gtest",
935 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200936 }
937
938 rtc_source_set("rtc_base_nonparallel_tests") {
939 testonly = true
940
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200941 sources = [
942 "cpu_time_unittest.cc",
943 "filerotatingstream_unittest.cc",
944 "nullsocketserver_unittest.cc",
945 "physicalsocketserver_unittest.cc",
946 "socket_unittest.cc",
947 "socket_unittest.h",
948 "socketaddress_unittest.cc",
949 ]
950 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100951 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200952 ":rtc_base",
953 ":rtc_base_tests_main",
954 ":rtc_base_tests_utils",
955 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +0100956 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200957 "../test:test_support",
958 "//testing/gtest",
959 ]
960 if (is_win) {
961 sources += [ "win32socketserver_unittest.cc" ]
962 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200963 }
964
965 rtc_source_set("rtc_base_approved_unittests") {
966 testonly = true
967
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200968 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200969 "atomicops_unittest.cc",
970 "base64_unittest.cc",
971 "basictypes_unittest.cc",
972 "bind_unittest.cc",
973 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100974 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200975 "buffer_unittest.cc",
976 "bufferqueue_unittest.cc",
977 "bytebuffer_unittest.cc",
978 "byteorder_unittest.cc",
979 "copyonwritebuffer_unittest.cc",
980 "criticalsection_unittest.cc",
981 "event_tracer_unittest.cc",
982 "event_unittest.cc",
983 "file_unittest.cc",
984 "function_view_unittest.cc",
985 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100986 "numerics/histogram_percentile_counter_unittest.cc",
987 "numerics/mod_ops_unittest.cc",
988 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100989 "numerics/safe_compare_unittest.cc",
990 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200991 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200992 "pathutils_unittest.cc",
993 "platform_thread_unittest.cc",
994 "random_unittest.cc",
995 "rate_limiter_unittest.cc",
996 "rate_statistics_unittest.cc",
997 "ratetracker_unittest.cc",
998 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200999 "string_to_number_unittest.cc",
1000 "stringencode_unittest.cc",
1001 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001002 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001003 "stringutils_unittest.cc",
1004 "swap_queue_unittest.cc",
1005 "thread_annotations_unittest.cc",
1006 "thread_checker_unittest.cc",
1007 "timestampaligner_unittest.cc",
1008 "timeutils_unittest.cc",
1009 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001010 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001011 ]
1012 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001013 ":checks",
1014 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001015 ":rtc_base",
1016 ":rtc_base_approved",
1017 ":rtc_base_tests_main",
1018 ":rtc_base_tests_utils",
1019 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001020 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001021 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001022 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001023 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 "../system_wrappers:system_wrappers",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001025 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001026 "../test:test_support",
1027 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 }
1029
1030 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001031 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001032 testonly = true
1033
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001034 sources = [
1035 "task_queue_unittest.cc",
1036 ]
1037 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001038 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001039 ":rtc_base_tests_main",
1040 ":rtc_base_tests_utils",
1041 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001042 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001043 "../test:test_support",
1044 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001045 }
1046
1047 rtc_source_set("sequenced_task_checker_unittests") {
1048 testonly = true
1049
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001050 sources = [
1051 "sequenced_task_checker_unittest.cc",
1052 ]
1053 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001054 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001055 ":rtc_base_approved",
1056 ":rtc_base_tests_main",
1057 ":rtc_task_queue",
1058 ":sequenced_task_checker",
1059 "../test:test_support",
1060 ]
1061 }
1062
1063 rtc_source_set("weak_ptr_unittests") {
1064 testonly = true
1065
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 sources = [
1067 "weak_ptr_unittest.cc",
1068 ]
1069 deps = [
Tommi897e1362017-12-01 18:56:43 +01001070 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001071 ":rtc_base_tests_main",
1072 ":rtc_base_tests_utils",
1073 ":rtc_task_queue",
1074 ":weak_ptr",
1075 "../test:test_support",
1076 ]
1077 }
1078
1079 rtc_source_set("rtc_numerics_unittests") {
1080 testonly = true
1081
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001082 sources = [
1083 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001084 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001085 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001086 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001087 ]
1088 deps = [
1089 ":rtc_base_approved",
1090 ":rtc_base_tests_main",
1091 ":rtc_numerics",
1092 "../test:test_support",
1093 ]
1094 }
1095
1096 config("rtc_base_unittests_config") {
1097 if (is_clang) {
1098 cflags = [ "-Wno-unused-const-variable" ]
1099 }
1100 }
1101 rtc_source_set("rtc_base_unittests") {
1102 testonly = true
1103
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001104 sources = [
1105 "callback_unittest.cc",
1106 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001107 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001108 "helpers_unittest.cc",
1109 "httpbase_unittest.cc",
1110 "httpcommon_unittest.cc",
1111 "httpserver_unittest.cc",
1112 "ipaddress_unittest.cc",
1113 "memory_usage_unittest.cc",
1114 "messagedigest_unittest.cc",
1115 "messagequeue_unittest.cc",
1116 "nat_unittest.cc",
1117 "network_unittest.cc",
1118 "optionsfile_unittest.cc",
1119 "proxy_unittest.cc",
1120 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001121 "rollingaccumulator_unittest.cc",
1122 "rtccertificate_unittest.cc",
1123 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001124 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001125 "sigslot_unittest.cc",
1126 "sigslottester_unittest.cc",
1127 "stream_unittest.cc",
1128 "testclient_unittest.cc",
1129 "thread_unittest.cc",
1130 ]
1131 if (is_win) {
1132 sources += [
1133 "win32_unittest.cc",
1134 "win32window_unittest.cc",
1135 ]
1136 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 if (is_posix) {
1138 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001139 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001140 "ssladapter_unittest.cc",
1141 "sslidentity_unittest.cc",
1142 "sslstreamadapter_unittest.cc",
1143 ]
1144 }
1145 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001146 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001147 ":rtc_base_tests_main",
1148 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001149 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001150 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001151 "../api:optional",
Patrik Höglund7696bef2018-03-15 15:05:39 +01001152 "../test:fileutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 "../test:test_support",
1154 ]
1155 public_deps = [
1156 ":rtc_base",
1157 ]
1158 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001159 if (build_with_chromium) {
1160 include_dirs = [ "../../boringssl/src/include" ]
1161 }
1162 if (rtc_build_ssl) {
1163 deps += [ "//third_party/boringssl" ]
1164 } else {
1165 configs += [ ":external_ssl_library" ]
1166 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001167 }
1168}
1169
Henrik Kjellander73e21802017-06-20 08:38:58 +02001170if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001171 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001172 java_files = [
1173 "java/src/org/webrtc/ContextUtils.java",
1174 "java/src/org/webrtc/Logging.java",
1175 "java/src/org/webrtc/Size.java",
1176 "java/src/org/webrtc/ThreadUtils.java",
1177 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001178 }
1179}