blob: 7e6a23da57f242204a2b8905f87fb9ecc6c8f3cb [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 = [
Tommifef05002018-02-27 13:51:08 +0100145 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100146 "stringutils.cc",
147 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100148 ]
149 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100150 ":checks",
151 ]
152}
153
154rtc_source_set("type_traits") {
155 sources = [
156 "type_traits.h",
157 ]
158}
159
160rtc_source_set("deprecation") {
161 sources = [
162 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100163 ]
164}
165
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200166# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700167rtc_source_set("rtc_base_approved_generic") {
168 visibility = [
169 ":rtc_base_approved",
170 ":rtc_base_approved_objc",
Tommi897e1362017-12-01 18:56:43 +0100171 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700172 ]
173
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100174 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200175 defines = []
176 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100177 deps = [
178 ":checks",
179 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100180 ":stringutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100181 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100182 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100183 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200184
185 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200186 "arraysize.h",
187 "atomicops.h",
188 "base64.cc",
189 "base64.h",
190 "basictypes.h",
191 "bind.h",
192 "bitbuffer.cc",
193 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200194 "bitrateallocationstrategy.cc",
195 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200196 "buffer.h",
197 "bufferqueue.cc",
198 "bufferqueue.h",
199 "bytebuffer.cc",
200 "bytebuffer.h",
201 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200202 "constructormagic.h",
203 "copyonwritebuffer.cc",
204 "copyonwritebuffer.h",
205 "criticalsection.cc",
206 "criticalsection.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200207 "event_tracer.cc",
208 "event_tracer.h",
209 "file.cc",
210 "file.h",
211 "flags.cc",
212 "flags.h",
213 "format_macros.h",
214 "function_view.h",
215 "ignore_wundef.h",
216 "location.cc",
217 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100218 "numerics/histogram_percentile_counter.cc",
219 "numerics/histogram_percentile_counter.h",
220 "numerics/mod_ops.h",
221 "numerics/moving_max_counter.h",
Karl Wiberge40468b2017-11-22 10:42:26 +0100222 "numerics/safe_conversions.h",
223 "numerics/safe_conversions_impl.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200224 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200225 "pathutils.cc",
226 "pathutils.h",
227 "platform_file.cc",
228 "platform_file.h",
229 "platform_thread.cc",
230 "platform_thread.h",
Tommi1f3f3c22018-02-17 11:46:14 +0100231 "platform_thread_types.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200232 "platform_thread_types.h",
233 "ptr_util.h",
234 "race_checker.cc",
235 "race_checker.h",
236 "random.cc",
237 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200238 "rate_statistics.cc",
239 "rate_statistics.h",
240 "ratetracker.cc",
241 "ratetracker.h",
242 "refcount.h",
243 "refcountedobject.h",
Niels Möller9155e492017-10-23 11:22:30 +0200244 "refcounter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200245 "scoped_ref_ptr.h",
246 "string_to_number.cc",
247 "string_to_number.h",
248 "stringencode.cc",
249 "stringencode.h",
250 "stringize_macros.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200251 "swap_queue.h",
252 "template_util.h",
253 "thread_annotations.h",
254 "thread_checker.h",
255 "thread_checker_impl.cc",
256 "thread_checker_impl.h",
257 "timestampaligner.cc",
258 "timestampaligner.h",
259 "timeutils.cc",
260 "timeutils.h",
261 "trace_event.h",
Joachim Bauch5b32f232018-03-07 20:02:26 +0100262 "zero_memory.cc",
263 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200264 ]
265
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100266 deps += [
267 "..:webrtc_common",
268 "../api:array_view",
269 "../api:optional",
270 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200271
272 if (is_android) {
273 libs += [ "log" ]
274 }
275
276 if (is_posix) {
277 sources += [ "file_posix.cc" ]
278 }
279
280 if (is_win) {
281 sources += [ "file_win.cc" ]
282 }
283
284 if (build_with_chromium) {
285 # Dependency on chromium's logging (in //base).
286 deps += [ "//base:base" ]
287 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100288 "../../webrtc_overrides/rtc_base/event.cc",
289 "../../webrtc_overrides/rtc_base/event.h",
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200290 "../../webrtc_overrides/rtc_base/logging.cc",
291 "../../webrtc_overrides/rtc_base/logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200292 ]
293 } else {
294 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100295 "event.cc",
296 "event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200297 "logging.cc",
298 "logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200299 ]
Tommie51a0a82018-02-27 15:30:29 +0100300
301 # logging.h needs the deprecation header while downstream projects are
302 # removing code that depends on logging implementation details.
303 deps += [ ":deprecation" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200304 }
305 if (is_component_build && is_win) {
306 # Copy the VS runtime DLLs into the isolate so that they don't have to be
307 # preinstalled on the target machine. The debug runtimes have a "d" at
308 # the end.
309 # This is a copy of https://codereview.chromium.org/1783973002.
310 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
311 # so we don't have to copy their changes and risk breakages.
312 # See http://crbug.com/653569
313 if (is_debug) {
314 vcrt_suffix = "d"
315 } else {
316 vcrt_suffix = ""
317 }
318
319 # These runtime files are copied to the output directory by the
320 # vs_toolchain script that runs as part of toolchain configuration.
321 data = [
322 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
323 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
324 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
325
326 # Universal Windows 10 CRT files
327 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
328 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
329 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
330 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
331 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
332 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
333 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
334 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
335 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
336 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
337 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
338 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
339 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
340 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
341 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
342 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
343 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
344 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
345 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
346 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
347 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
348 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
349 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
350 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
351 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
352 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
353 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
354 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
355 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
356 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
357 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
358 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
359 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
360 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
361 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
362 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
363 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
364 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
365 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
366 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
367 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
368 ]
369 if (is_asan) {
370 if (current_cpu == "x64") {
371 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
372 } else {
373 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
374 }
375 }
376 }
377 if (is_nacl) {
378 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
379 }
380}
381
mbonadeibc378472017-09-11 03:43:34 -0700382if (is_mac && !build_with_chromium) {
383 config("rtc_base_approved_objc_all_dependent_config") {
384 visibility = [ ":rtc_base_approved_objc" ]
385 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
386 }
387
388 rtc_source_set("rtc_base_approved_objc") {
389 visibility = [ ":rtc_base_approved" ]
390 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
391 sources = [
392 "logging_mac.mm",
393 ]
394 deps = [
395 ":rtc_base_approved_generic",
396 ]
397 }
398}
399
perkj650fdae2017-08-25 05:00:11 -0700400rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000401 visibility = [ "*" ]
mbonadei95c8f652017-08-27 23:40:10 -0700402 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200403 ":rtc_base_approved",
mbonadei95c8f652017-08-27 23:40:10 -0700404 ]
405 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700406 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200407 ]
408
perkj650fdae2017-08-25 05:00:11 -0700409 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700410 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700411 }
412}
413
414# WebRTC targets must not directly depend on rtc_task_queue_api or
415# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
416# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
417# to the default implemenation in rtc_task_queue_impl or if an externally
418# provided implementation should be used. An external implementation should
419# depend on rtc_task_queue_api.
420rtc_source_set("rtc_task_queue_api") {
nisse75dd6d42017-09-19 08:28:00 -0700421 sources = [
422 "task_queue.h",
423 ]
perkj650fdae2017-08-25 05:00:11 -0700424 deps = [
425 ":rtc_base_approved",
426 ]
427}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200428
perkj650fdae2017-08-25 05:00:11 -0700429rtc_source_set("rtc_task_queue_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000430 visibility = [ "*" ]
perkj650fdae2017-08-25 05:00:11 -0700431 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100432 ":checks",
perkj650fdae2017-08-25 05:00:11 -0700433 ":rtc_base_approved",
434 ":rtc_task_queue_api",
435 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200436 if (rtc_build_libevent) {
437 deps += [ "//base/third_party/libevent" ]
438 }
439 if (rtc_enable_libevent) {
perkj650fdae2017-08-25 05:00:11 -0700440 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200441 "task_queue_libevent.cc",
442 "task_queue_posix.cc",
443 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700444 ]
445 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200446 if (is_mac || is_ios) {
Niels Möller17a04742017-09-27 10:53:21 +0200447 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200448 "task_queue_gcd.cc",
Henrik Boströma9a27712017-10-03 08:01:07 +0000449 "task_queue_posix.cc",
450 "task_queue_posix.h",
Niels Möller17a04742017-09-27 10:53:21 +0200451 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200452 }
453 if (is_win) {
454 sources = [
455 "task_queue_win.cc",
456 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200457 }
458 }
459}
460
461rtc_static_library("sequenced_task_checker") {
462 sources = [
463 "sequenced_task_checker.h",
464 "sequenced_task_checker_impl.cc",
465 "sequenced_task_checker_impl.h",
466 ]
467 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100468 ":checks",
mbonadei95c8f652017-08-27 23:40:10 -0700469 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200470 ":rtc_task_queue",
471 ]
472}
473
474rtc_static_library("weak_ptr") {
475 sources = [
476 "weak_ptr.cc",
477 "weak_ptr.h",
478 ]
479 deps = [
480 ":rtc_base_approved",
481 ":sequenced_task_checker",
482 ]
483}
484
485rtc_static_library("rtc_numerics") {
486 sources = [
487 "numerics/exp_filter.cc",
488 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100489 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200490 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200491 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200492 ]
493 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100494 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200495 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100496 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200497 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200498 ]
499}
500
501config("rtc_base_warnings_config") {
502 if (is_win && is_clang) {
503 cflags = [
504 # Disable warnings failing when compiling with Clang on Windows.
505 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
506 "-Wno-sign-compare",
507 "-Wno-missing-braces",
508 ]
509 }
510}
511
512rtc_source_set("rtc_json") {
513 defines = []
514 sources = [
515 "json.cc",
516 "json.h",
517 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100518 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200519 if (rtc_build_json) {
520 public_deps = [
521 "//third_party/jsoncpp",
522 ]
523 } else {
524 include_dirs = [ "$rtc_jsoncpp_root" ]
525
526 # When defined changes the include path for json.h to where it is
527 # expected to be when building json outside of the standalone build.
528 defines += [ "WEBRTC_EXTERNAL_JSON" ]
529 }
530}
531
mbonadei9c5e5112017-09-05 05:17:02 -0700532rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000533 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500534 public_deps = []
535 if (!build_with_mozilla) {
536 public_deps += [ ":rtc_base_generic" ]
537 }
mbonadei310e32b2017-09-07 07:36:28 -0700538 if (is_win) {
539 sources = [
540 "noop.cc",
541 ]
542 }
543 if (is_ios || is_mac) {
544 sources = [
545 "noop.mm",
546 ]
547 public_deps += [ ":rtc_base_objc" ]
548 }
549}
550
551if (is_ios || is_mac) {
552 rtc_source_set("rtc_base_objc") {
553 sources = [
554 "thread_darwin.mm",
555 ]
556 deps = [
557 ":rtc_base_generic",
558 ]
559 visibility = [ ":rtc_base" ]
560 }
561}
562
563rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200564 cflags = []
565 cflags_cc = []
566 libs = []
567 defines = []
568 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100569 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100570 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200571 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100572 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700573 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200574 ]
575 public_deps = [
576 ":rtc_base_approved",
577 ]
578 public_configs = []
579
580 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
581
582 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200583 "asyncinvoker-inl.h",
584 "asyncinvoker.cc",
585 "asyncinvoker.h",
586 "asyncpacketsocket.cc",
587 "asyncpacketsocket.h",
588 "asyncresolverinterface.cc",
589 "asyncresolverinterface.h",
590 "asyncsocket.cc",
591 "asyncsocket.h",
592 "asynctcpsocket.cc",
593 "asynctcpsocket.h",
594 "asyncudpsocket.cc",
595 "asyncudpsocket.h",
596 "crc32.cc",
597 "crc32.h",
598 "cryptstring.cc",
599 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100600 "data_rate_limiter.cc",
601 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100602 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200603 "filerotatingstream.cc",
604 "filerotatingstream.h",
605 "fileutils.cc",
606 "fileutils.h",
607 "gunit_prod.h",
608 "helpers.cc",
609 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200610 "httpcommon-inl.h",
611 "httpcommon.cc",
612 "httpcommon.h",
613 "ipaddress.cc",
614 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100615 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200616 "messagedigest.cc",
617 "messagedigest.h",
618 "messagehandler.cc",
619 "messagehandler.h",
620 "messagequeue.cc",
621 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800622 "nethelper.cc",
623 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200624 "nethelpers.cc",
625 "nethelpers.h",
626 "network.cc",
627 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200628 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200629 "networkmonitor.cc",
630 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100631 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200632 "nullsocketserver.cc",
633 "nullsocketserver.h",
634 "openssl.h",
635 "openssladapter.cc",
636 "openssladapter.h",
637 "openssldigest.cc",
638 "openssldigest.h",
639 "opensslidentity.cc",
640 "opensslidentity.h",
641 "opensslstreamadapter.cc",
642 "opensslstreamadapter.h",
643 "physicalsocketserver.cc",
644 "physicalsocketserver.h",
645 "proxyinfo.cc",
646 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200647 "ratelimiter.h",
648 "rtccertificate.cc",
649 "rtccertificate.h",
650 "rtccertificategenerator.cc",
651 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700652 "signalthread.cc",
653 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200654 "sigslot.cc",
655 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700656 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200657 "socket.h",
658 "socketadapters.cc",
659 "socketadapters.h",
660 "socketaddress.cc",
661 "socketaddress.h",
662 "socketaddresspair.cc",
663 "socketaddresspair.h",
664 "socketfactory.h",
665 "socketserver.h",
666 "socketstream.cc",
667 "socketstream.h",
668 "ssladapter.cc",
669 "ssladapter.h",
670 "sslfingerprint.cc",
671 "sslfingerprint.h",
672 "sslidentity.cc",
673 "sslidentity.h",
674 "sslstreamadapter.cc",
675 "sslstreamadapter.h",
676 "stream.cc",
677 "stream.h",
678 "thread.cc",
679 "thread.h",
680 ]
681
mbonadei310e32b2017-09-07 07:36:28 -0700682 visibility = [
683 ":rtc_base",
684 ":rtc_base_objc",
685 ]
686
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200687 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
688 # compiler settings.
689 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
690 configs += [ "//build/config/compiler:no_chromium_code" ]
691 if (!is_win) {
692 cflags += [ "-Wno-uninitialized" ]
693 }
694
695 if (build_with_chromium) {
696 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200697 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200698 }
699 include_dirs = [ "../../boringssl/src/include" ]
700 public_configs += [ ":rtc_base_chromium_config" ]
701 } else {
702 configs += [ ":rtc_base_warnings_config" ]
703 sources += [
704 "callback.h",
705 "logsinks.cc",
706 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100707 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200708 "optionsfile.cc",
709 "optionsfile.h",
710 "rollingaccumulator.h",
711 "sslroots.h",
712 "transformadapter.cc",
713 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200714 ]
715
716 if (is_win) {
717 sources += [
718 "win32socketinit.cc",
719 "win32socketinit.h",
720 "win32socketserver.cc",
721 "win32socketserver.h",
722 ]
723 }
724 } # !build_with_chromium
725
726 if (rtc_build_ssl) {
727 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500728 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200729 configs += [ ":external_ssl_library" ]
730 }
731
732 if (is_android) {
733 sources += [
734 "ifaddrs-android.cc",
735 "ifaddrs-android.h",
736 ]
737
738 libs += [
739 "log",
740 "GLESv2",
741 ]
742 }
743
744 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700745 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200746 }
747
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100748 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200749 libs += [
750 "dl",
751 "rt",
752 "Xext",
753 "X11",
754 "Xcomposite",
755 "Xrender",
756 ]
757 }
758
759 if (is_linux) {
760 libs += [
761 "dl",
762 "rt",
763 ]
764 }
765
766 if (is_mac) {
767 sources += [
768 "macutils.cc",
769 "macutils.h",
770 ]
771 libs += [
772 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
773 "ApplicationServices.framework",
774 ]
775 }
776
777 if (is_win) {
778 sources += [
779 "win32.cc",
780 "win32.h",
781 "win32filesystem.cc",
782 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200783 "win32window.cc",
784 "win32window.h",
785 ]
786
787 libs += [
788 "crypt32.lib",
789 "iphlpapi.lib",
790 "secur32.lib",
791 ]
792
793 cflags += [
794 # Suppress warnings about WIN32_LEAN_AND_MEAN.
795 "/wd4005",
796 "/wd4703",
797 ]
798
799 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
800 }
801
802 if (is_posix) {
803 sources += [
804 "ifaddrs_converter.cc",
805 "ifaddrs_converter.h",
806 "unixfilesystem.cc",
807 "unixfilesystem.h",
808 ]
809 }
810
811 if (is_nacl) {
812 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
813 defines += [ "timezone=_timezone" ]
814 sources -= [ "ifaddrs_converter.cc" ]
815 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200816}
817
818rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000819 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200820 sources = [
821 "gtest_prod_util.h",
822 ]
823}
824
825config("rtc_base_tests_utils_exported_config") {
826 defines = [ "GTEST_RELATIVE_PATH" ]
827}
828
829config("rtc_base_tests_utils_warnings_config") {
830 if (is_win && is_clang) {
831 cflags = [
832 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
833 "-Wno-reorder",
834 "-Wno-sign-compare",
835 ]
836 }
837}
838
839rtc_source_set("rtc_base_tests_utils") {
840 testonly = true
841 sources = [
842 # Also use this as a convenient dumping ground for misc files that are
843 # included by multiple targets below.
844 "cpu_time.cc",
845 "cpu_time.h",
846 "fakeclock.cc",
847 "fakeclock.h",
848 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700849 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200850 "fakesslidentity.h",
851 "firewallsocketserver.cc",
852 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800853 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200854 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100855 "httpbase.cc",
856 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200857 "httpserver.cc",
858 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200859 "memory_usage.cc",
860 "memory_usage.h",
861 "natserver.cc",
862 "natserver.h",
863 "natsocketfactory.cc",
864 "natsocketfactory.h",
865 "nattypes.cc",
866 "nattypes.h",
867 "proxyserver.cc",
868 "proxyserver.h",
Patrik Höglund563934e2017-09-15 09:04:28 +0200869 "refcount.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200870 "sigslottester.h",
871 "sigslottester.h.pump",
872 "testbase64.h",
873 "testclient.cc",
874 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700875 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200876 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700877 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200878 "testutils.h",
879 "timedelta.h",
880 "virtualsocketserver.cc",
881 "virtualsocketserver.h",
882 ]
883 configs += [ ":rtc_base_tests_utils_warnings_config" ]
884 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
885 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100886 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200887 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100888 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200889 "../test:field_trial",
890 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100891 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200892 ]
893 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200894 "//testing/gtest",
895 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200896}
897
Tommida8781f2018-02-19 12:41:43 +0100898rtc_source_set("rtc_task_queue_for_test") {
899 visibility = [ "*" ]
900 testonly = true
901
902 sources = [
903 "task_queue_for_test.cc",
904 "task_queue_for_test.h",
905 ]
906 deps = [
907 ":checks",
908 ":rtc_base_approved",
909 ":rtc_task_queue",
910 ]
911}
912
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200913if (rtc_include_tests) {
914 rtc_source_set("rtc_base_tests_main") {
915 testonly = true
916 sources = [
917 "unittest_main.cc",
918 ]
919 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
920 deps = [
921 ":rtc_base",
922 ":rtc_base_approved",
923 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +0100924 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200925 "../test:field_trial",
926 "../test:test_support",
927 ]
928
929 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 "//testing/gtest",
931 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200932 }
933
934 rtc_source_set("rtc_base_nonparallel_tests") {
935 testonly = true
936
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200937 sources = [
938 "cpu_time_unittest.cc",
939 "filerotatingstream_unittest.cc",
940 "nullsocketserver_unittest.cc",
941 "physicalsocketserver_unittest.cc",
942 "socket_unittest.cc",
943 "socket_unittest.h",
944 "socketaddress_unittest.cc",
945 ]
946 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100947 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200948 ":rtc_base",
949 ":rtc_base_tests_main",
950 ":rtc_base_tests_utils",
951 "../system_wrappers:system_wrappers",
952 "../test:test_support",
953 "//testing/gtest",
954 ]
955 if (is_win) {
956 sources += [ "win32socketserver_unittest.cc" ]
957 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200958 }
959
960 rtc_source_set("rtc_base_approved_unittests") {
961 testonly = true
962
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200963 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200964 "atomicops_unittest.cc",
965 "base64_unittest.cc",
966 "basictypes_unittest.cc",
967 "bind_unittest.cc",
968 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100969 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200970 "buffer_unittest.cc",
971 "bufferqueue_unittest.cc",
972 "bytebuffer_unittest.cc",
973 "byteorder_unittest.cc",
974 "copyonwritebuffer_unittest.cc",
975 "criticalsection_unittest.cc",
976 "event_tracer_unittest.cc",
977 "event_unittest.cc",
978 "file_unittest.cc",
979 "function_view_unittest.cc",
980 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100981 "numerics/histogram_percentile_counter_unittest.cc",
982 "numerics/mod_ops_unittest.cc",
983 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100984 "numerics/safe_compare_unittest.cc",
985 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200986 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987 "pathutils_unittest.cc",
988 "platform_thread_unittest.cc",
989 "random_unittest.cc",
990 "rate_limiter_unittest.cc",
991 "rate_statistics_unittest.cc",
992 "ratetracker_unittest.cc",
993 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200994 "string_to_number_unittest.cc",
995 "stringencode_unittest.cc",
996 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +0100997 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200998 "stringutils_unittest.cc",
999 "swap_queue_unittest.cc",
1000 "thread_annotations_unittest.cc",
1001 "thread_checker_unittest.cc",
1002 "timestampaligner_unittest.cc",
1003 "timeutils_unittest.cc",
1004 "virtualsocket_unittest.cc",
Joachim Bauch5b32f232018-03-07 20:02:26 +01001005 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 ]
1007 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001008 ":checks",
1009 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001010 ":rtc_base",
1011 ":rtc_base_approved",
1012 ":rtc_base_tests_main",
1013 ":rtc_base_tests_utils",
1014 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001015 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001016 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001017 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001018 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 "../system_wrappers:system_wrappers",
1020 "../test:test_support",
1021 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001022 }
1023
1024 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001025 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001026 testonly = true
1027
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 sources = [
1029 "task_queue_unittest.cc",
1030 ]
1031 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001032 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001033 ":rtc_base_tests_main",
1034 ":rtc_base_tests_utils",
1035 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001036 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001037 "../test:test_support",
1038 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001039 }
1040
1041 rtc_source_set("sequenced_task_checker_unittests") {
1042 testonly = true
1043
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001044 sources = [
1045 "sequenced_task_checker_unittest.cc",
1046 ]
1047 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001048 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001049 ":rtc_base_approved",
1050 ":rtc_base_tests_main",
1051 ":rtc_task_queue",
1052 ":sequenced_task_checker",
1053 "../test:test_support",
1054 ]
1055 }
1056
1057 rtc_source_set("weak_ptr_unittests") {
1058 testonly = true
1059
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001060 sources = [
1061 "weak_ptr_unittest.cc",
1062 ]
1063 deps = [
Tommi897e1362017-12-01 18:56:43 +01001064 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001065 ":rtc_base_tests_main",
1066 ":rtc_base_tests_utils",
1067 ":rtc_task_queue",
1068 ":weak_ptr",
1069 "../test:test_support",
1070 ]
1071 }
1072
1073 rtc_source_set("rtc_numerics_unittests") {
1074 testonly = true
1075
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001076 sources = [
1077 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001078 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001079 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001080 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001081 ]
1082 deps = [
1083 ":rtc_base_approved",
1084 ":rtc_base_tests_main",
1085 ":rtc_numerics",
1086 "../test:test_support",
1087 ]
1088 }
1089
1090 config("rtc_base_unittests_config") {
1091 if (is_clang) {
1092 cflags = [ "-Wno-unused-const-variable" ]
1093 }
1094 }
1095 rtc_source_set("rtc_base_unittests") {
1096 testonly = true
1097
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001098 sources = [
1099 "callback_unittest.cc",
1100 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001101 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001102 "helpers_unittest.cc",
1103 "httpbase_unittest.cc",
1104 "httpcommon_unittest.cc",
1105 "httpserver_unittest.cc",
1106 "ipaddress_unittest.cc",
1107 "memory_usage_unittest.cc",
1108 "messagedigest_unittest.cc",
1109 "messagequeue_unittest.cc",
1110 "nat_unittest.cc",
1111 "network_unittest.cc",
1112 "optionsfile_unittest.cc",
1113 "proxy_unittest.cc",
1114 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001115 "rollingaccumulator_unittest.cc",
1116 "rtccertificate_unittest.cc",
1117 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001118 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001119 "sigslot_unittest.cc",
1120 "sigslottester_unittest.cc",
1121 "stream_unittest.cc",
1122 "testclient_unittest.cc",
1123 "thread_unittest.cc",
1124 ]
1125 if (is_win) {
1126 sources += [
1127 "win32_unittest.cc",
1128 "win32window_unittest.cc",
1129 ]
1130 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001131 if (is_posix) {
1132 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001133 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 "ssladapter_unittest.cc",
1135 "sslidentity_unittest.cc",
1136 "sslstreamadapter_unittest.cc",
1137 ]
1138 }
1139 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001140 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001141 ":rtc_base_tests_main",
1142 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001143 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001144 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001145 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001146 "../test:test_support",
1147 ]
1148 public_deps = [
1149 ":rtc_base",
1150 ]
1151 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001152 if (build_with_chromium) {
1153 include_dirs = [ "../../boringssl/src/include" ]
1154 }
1155 if (rtc_build_ssl) {
1156 deps += [ "//third_party/boringssl" ]
1157 } else {
1158 configs += [ ":external_ssl_library" ]
1159 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001160 }
1161}
1162
Henrik Kjellander73e21802017-06-20 08:38:58 +02001163if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001164 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001165 java_files = [
1166 "java/src/org/webrtc/ContextUtils.java",
1167 "java/src/org/webrtc/Logging.java",
1168 "java/src/org/webrtc/Size.java",
1169 "java/src/org/webrtc/ThreadUtils.java",
1170 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001171 }
1172}