blob: b4f2c1755b4797257b3e532244ad5f2bf4ac3684 [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",
929 "../test:test_support",
930 ]
931
932 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200933 "//testing/gtest",
934 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200935 }
936
937 rtc_source_set("rtc_base_nonparallel_tests") {
938 testonly = true
939
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200940 sources = [
941 "cpu_time_unittest.cc",
942 "filerotatingstream_unittest.cc",
943 "nullsocketserver_unittest.cc",
944 "physicalsocketserver_unittest.cc",
945 "socket_unittest.cc",
946 "socket_unittest.h",
947 "socketaddress_unittest.cc",
948 ]
949 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100950 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200951 ":rtc_base",
952 ":rtc_base_tests_main",
953 ":rtc_base_tests_utils",
954 "../system_wrappers:system_wrappers",
955 "../test:test_support",
956 "//testing/gtest",
957 ]
958 if (is_win) {
959 sources += [ "win32socketserver_unittest.cc" ]
960 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200961 }
962
963 rtc_source_set("rtc_base_approved_unittests") {
964 testonly = true
965
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200966 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200967 "atomicops_unittest.cc",
968 "base64_unittest.cc",
969 "basictypes_unittest.cc",
970 "bind_unittest.cc",
971 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100972 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200973 "buffer_unittest.cc",
974 "bufferqueue_unittest.cc",
975 "bytebuffer_unittest.cc",
976 "byteorder_unittest.cc",
977 "copyonwritebuffer_unittest.cc",
978 "criticalsection_unittest.cc",
979 "event_tracer_unittest.cc",
980 "event_unittest.cc",
981 "file_unittest.cc",
982 "function_view_unittest.cc",
983 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100984 "numerics/histogram_percentile_counter_unittest.cc",
985 "numerics/mod_ops_unittest.cc",
986 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100987 "numerics/safe_compare_unittest.cc",
988 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200989 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200990 "pathutils_unittest.cc",
991 "platform_thread_unittest.cc",
992 "random_unittest.cc",
993 "rate_limiter_unittest.cc",
994 "rate_statistics_unittest.cc",
995 "ratetracker_unittest.cc",
996 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200997 "string_to_number_unittest.cc",
998 "stringencode_unittest.cc",
999 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +01001000 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001001 "stringutils_unittest.cc",
1002 "swap_queue_unittest.cc",
1003 "thread_annotations_unittest.cc",
1004 "thread_checker_unittest.cc",
1005 "timestampaligner_unittest.cc",
1006 "timeutils_unittest.cc",
1007 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001008 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009 ]
1010 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001011 ":checks",
1012 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001013 ":rtc_base",
1014 ":rtc_base_approved",
1015 ":rtc_base_tests_main",
1016 ":rtc_base_tests_utils",
1017 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001018 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001019 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001020 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001021 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001022 "../system_wrappers:system_wrappers",
1023 "../test:test_support",
1024 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 }
1026
1027 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001028 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001029 testonly = true
1030
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 sources = [
1032 "task_queue_unittest.cc",
1033 ]
1034 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001035 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 ":rtc_base_tests_main",
1037 ":rtc_base_tests_utils",
1038 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001039 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040 "../test:test_support",
1041 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001042 }
1043
1044 rtc_source_set("sequenced_task_checker_unittests") {
1045 testonly = true
1046
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001047 sources = [
1048 "sequenced_task_checker_unittest.cc",
1049 ]
1050 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001051 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001052 ":rtc_base_approved",
1053 ":rtc_base_tests_main",
1054 ":rtc_task_queue",
1055 ":sequenced_task_checker",
1056 "../test:test_support",
1057 ]
1058 }
1059
1060 rtc_source_set("weak_ptr_unittests") {
1061 testonly = true
1062
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001063 sources = [
1064 "weak_ptr_unittest.cc",
1065 ]
1066 deps = [
Tommi897e1362017-12-01 18:56:43 +01001067 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001068 ":rtc_base_tests_main",
1069 ":rtc_base_tests_utils",
1070 ":rtc_task_queue",
1071 ":weak_ptr",
1072 "../test:test_support",
1073 ]
1074 }
1075
1076 rtc_source_set("rtc_numerics_unittests") {
1077 testonly = true
1078
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001079 sources = [
1080 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001081 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001082 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001083 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001084 ]
1085 deps = [
1086 ":rtc_base_approved",
1087 ":rtc_base_tests_main",
1088 ":rtc_numerics",
1089 "../test:test_support",
1090 ]
1091 }
1092
1093 config("rtc_base_unittests_config") {
1094 if (is_clang) {
1095 cflags = [ "-Wno-unused-const-variable" ]
1096 }
1097 }
1098 rtc_source_set("rtc_base_unittests") {
1099 testonly = true
1100
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001101 sources = [
1102 "callback_unittest.cc",
1103 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001104 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001105 "helpers_unittest.cc",
1106 "httpbase_unittest.cc",
1107 "httpcommon_unittest.cc",
1108 "httpserver_unittest.cc",
1109 "ipaddress_unittest.cc",
1110 "memory_usage_unittest.cc",
1111 "messagedigest_unittest.cc",
1112 "messagequeue_unittest.cc",
1113 "nat_unittest.cc",
1114 "network_unittest.cc",
1115 "optionsfile_unittest.cc",
1116 "proxy_unittest.cc",
1117 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001118 "rollingaccumulator_unittest.cc",
1119 "rtccertificate_unittest.cc",
1120 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001121 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 "sigslot_unittest.cc",
1123 "sigslottester_unittest.cc",
1124 "stream_unittest.cc",
1125 "testclient_unittest.cc",
1126 "thread_unittest.cc",
1127 ]
1128 if (is_win) {
1129 sources += [
1130 "win32_unittest.cc",
1131 "win32window_unittest.cc",
1132 ]
1133 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 if (is_posix) {
1135 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001136 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001137 "ssladapter_unittest.cc",
1138 "sslidentity_unittest.cc",
1139 "sslstreamadapter_unittest.cc",
1140 ]
1141 }
1142 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001143 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001144 ":rtc_base_tests_main",
1145 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001146 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001147 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001148 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001149 "../test:test_support",
1150 ]
1151 public_deps = [
1152 ":rtc_base",
1153 ]
1154 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001155 if (build_with_chromium) {
1156 include_dirs = [ "../../boringssl/src/include" ]
1157 }
1158 if (rtc_build_ssl) {
1159 deps += [ "//third_party/boringssl" ]
1160 } else {
1161 configs += [ ":external_ssl_library" ]
1162 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001163 }
1164}
1165
Henrik Kjellander73e21802017-06-20 08:38:58 +02001166if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001167 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001168 java_files = [
1169 "java/src/org/webrtc/ContextUtils.java",
1170 "java/src/org/webrtc/Logging.java",
1171 "java/src/org/webrtc/Size.java",
1172 "java/src/org/webrtc/ThreadUtils.java",
1173 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001174 }
1175}