blob: 50c5c68fa10e76a186e3f90d5d93f052ecc21137 [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
Patrik Höglund3e113432017-12-15 14:40:10 +0100132rtc_source_set("stringutils") {
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100133 sources = [
Tommifef05002018-02-27 13:51:08 +0100134 "strings/string_builder.h",
Patrik Höglund3e113432017-12-15 14:40:10 +0100135 "stringutils.cc",
136 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100137 ]
138 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100139 ":checks",
140 ]
141}
142
143rtc_source_set("type_traits") {
144 sources = [
145 "type_traits.h",
146 ]
147}
148
149rtc_source_set("deprecation") {
150 sources = [
151 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100152 ]
153}
154
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200155# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700156rtc_source_set("rtc_base_approved_generic") {
157 visibility = [
158 ":rtc_base_approved",
159 ":rtc_base_approved_objc",
Tommi897e1362017-12-01 18:56:43 +0100160 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700161 ]
162
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100163 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200164 defines = []
165 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100166 deps = [
167 ":checks",
168 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100169 ":stringutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100170 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100171 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100172 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200173
174 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200175 "arraysize.h",
176 "atomicops.h",
177 "base64.cc",
178 "base64.h",
179 "basictypes.h",
180 "bind.h",
181 "bitbuffer.cc",
182 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200183 "bitrateallocationstrategy.cc",
184 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200185 "buffer.h",
186 "bufferqueue.cc",
187 "bufferqueue.h",
188 "bytebuffer.cc",
189 "bytebuffer.h",
190 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200191 "constructormagic.h",
192 "copyonwritebuffer.cc",
193 "copyonwritebuffer.h",
194 "criticalsection.cc",
195 "criticalsection.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200196 "event_tracer.cc",
197 "event_tracer.h",
198 "file.cc",
199 "file.h",
200 "flags.cc",
201 "flags.h",
202 "format_macros.h",
203 "function_view.h",
204 "ignore_wundef.h",
205 "location.cc",
206 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100207 "numerics/histogram_percentile_counter.cc",
208 "numerics/histogram_percentile_counter.h",
209 "numerics/mod_ops.h",
210 "numerics/moving_max_counter.h",
Karl Wiberge40468b2017-11-22 10:42:26 +0100211 "numerics/safe_conversions.h",
212 "numerics/safe_conversions_impl.h",
213 "numerics/safe_minmax.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200214 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200215 "pathutils.cc",
216 "pathutils.h",
217 "platform_file.cc",
218 "platform_file.h",
219 "platform_thread.cc",
220 "platform_thread.h",
Tommi1f3f3c22018-02-17 11:46:14 +0100221 "platform_thread_types.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200222 "platform_thread_types.h",
223 "ptr_util.h",
224 "race_checker.cc",
225 "race_checker.h",
226 "random.cc",
227 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200228 "rate_statistics.cc",
229 "rate_statistics.h",
230 "ratetracker.cc",
231 "ratetracker.h",
232 "refcount.h",
233 "refcountedobject.h",
Niels Möller9155e492017-10-23 11:22:30 +0200234 "refcounter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200235 "scoped_ref_ptr.h",
236 "string_to_number.cc",
237 "string_to_number.h",
238 "stringencode.cc",
239 "stringencode.h",
240 "stringize_macros.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200241 "swap_queue.h",
242 "template_util.h",
243 "thread_annotations.h",
244 "thread_checker.h",
245 "thread_checker_impl.cc",
246 "thread_checker_impl.h",
247 "timestampaligner.cc",
248 "timestampaligner.h",
249 "timeutils.cc",
250 "timeutils.h",
251 "trace_event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200252 ]
253
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100254 deps += [
255 "..:webrtc_common",
256 "../api:array_view",
257 "../api:optional",
258 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200259
260 if (is_android) {
261 libs += [ "log" ]
262 }
263
264 if (is_posix) {
265 sources += [ "file_posix.cc" ]
266 }
267
268 if (is_win) {
269 sources += [ "file_win.cc" ]
270 }
271
272 if (build_with_chromium) {
273 # Dependency on chromium's logging (in //base).
274 deps += [ "//base:base" ]
275 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100276 "../../webrtc_overrides/rtc_base/event.cc",
277 "../../webrtc_overrides/rtc_base/event.h",
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200278 "../../webrtc_overrides/rtc_base/logging.cc",
279 "../../webrtc_overrides/rtc_base/logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200280 ]
281 } else {
282 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100283 "event.cc",
284 "event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200285 "logging.cc",
286 "logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200287 ]
Tommie51a0a82018-02-27 15:30:29 +0100288
289 # logging.h needs the deprecation header while downstream projects are
290 # removing code that depends on logging implementation details.
291 deps += [ ":deprecation" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200292 }
293 if (is_component_build && is_win) {
294 # Copy the VS runtime DLLs into the isolate so that they don't have to be
295 # preinstalled on the target machine. The debug runtimes have a "d" at
296 # the end.
297 # This is a copy of https://codereview.chromium.org/1783973002.
298 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
299 # so we don't have to copy their changes and risk breakages.
300 # See http://crbug.com/653569
301 if (is_debug) {
302 vcrt_suffix = "d"
303 } else {
304 vcrt_suffix = ""
305 }
306
307 # These runtime files are copied to the output directory by the
308 # vs_toolchain script that runs as part of toolchain configuration.
309 data = [
310 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
311 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
312 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
313
314 # Universal Windows 10 CRT files
315 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
316 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
317 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
318 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
319 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
320 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
321 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
322 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
323 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
324 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
325 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
326 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
327 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
328 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
329 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
330 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
331 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
332 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
333 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
334 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
335 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
336 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
337 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
338 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
339 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
340 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
341 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
342 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
343 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
344 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
345 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
346 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
347 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
348 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
349 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
350 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
351 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
352 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
353 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
354 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
355 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
356 ]
357 if (is_asan) {
358 if (current_cpu == "x64") {
359 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
360 } else {
361 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
362 }
363 }
364 }
365 if (is_nacl) {
366 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
367 }
368}
369
mbonadeibc378472017-09-11 03:43:34 -0700370if (is_mac && !build_with_chromium) {
371 config("rtc_base_approved_objc_all_dependent_config") {
372 visibility = [ ":rtc_base_approved_objc" ]
373 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
374 }
375
376 rtc_source_set("rtc_base_approved_objc") {
377 visibility = [ ":rtc_base_approved" ]
378 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
379 sources = [
380 "logging_mac.mm",
381 ]
382 deps = [
383 ":rtc_base_approved_generic",
384 ]
385 }
386}
387
perkj650fdae2017-08-25 05:00:11 -0700388rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000389 visibility = [ "*" ]
mbonadei95c8f652017-08-27 23:40:10 -0700390 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200391 ":rtc_base_approved",
mbonadei95c8f652017-08-27 23:40:10 -0700392 ]
393 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700394 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200395 ]
396
perkj650fdae2017-08-25 05:00:11 -0700397 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700398 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700399 }
400}
401
402# WebRTC targets must not directly depend on rtc_task_queue_api or
403# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
404# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
405# to the default implemenation in rtc_task_queue_impl or if an externally
406# provided implementation should be used. An external implementation should
407# depend on rtc_task_queue_api.
408rtc_source_set("rtc_task_queue_api") {
nisse75dd6d42017-09-19 08:28:00 -0700409 sources = [
410 "task_queue.h",
411 ]
perkj650fdae2017-08-25 05:00:11 -0700412 deps = [
413 ":rtc_base_approved",
414 ]
415}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200416
perkj650fdae2017-08-25 05:00:11 -0700417rtc_source_set("rtc_task_queue_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000418 visibility = [ "*" ]
perkj650fdae2017-08-25 05:00:11 -0700419 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100420 ":checks",
perkj650fdae2017-08-25 05:00:11 -0700421 ":rtc_base_approved",
422 ":rtc_task_queue_api",
423 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200424 if (rtc_build_libevent) {
425 deps += [ "//base/third_party/libevent" ]
426 }
427 if (rtc_enable_libevent) {
perkj650fdae2017-08-25 05:00:11 -0700428 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200429 "task_queue_libevent.cc",
430 "task_queue_posix.cc",
431 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700432 ]
433 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200434 if (is_mac || is_ios) {
Niels Möller17a04742017-09-27 10:53:21 +0200435 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200436 "task_queue_gcd.cc",
Henrik Boströma9a27712017-10-03 08:01:07 +0000437 "task_queue_posix.cc",
438 "task_queue_posix.h",
Niels Möller17a04742017-09-27 10:53:21 +0200439 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200440 }
441 if (is_win) {
442 sources = [
443 "task_queue_win.cc",
444 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200445 }
446 }
447}
448
449rtc_static_library("sequenced_task_checker") {
450 sources = [
451 "sequenced_task_checker.h",
452 "sequenced_task_checker_impl.cc",
453 "sequenced_task_checker_impl.h",
454 ]
455 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100456 ":checks",
mbonadei95c8f652017-08-27 23:40:10 -0700457 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200458 ":rtc_task_queue",
459 ]
460}
461
462rtc_static_library("weak_ptr") {
463 sources = [
464 "weak_ptr.cc",
465 "weak_ptr.h",
466 ]
467 deps = [
468 ":rtc_base_approved",
469 ":sequenced_task_checker",
470 ]
471}
472
473rtc_static_library("rtc_numerics") {
474 sources = [
475 "numerics/exp_filter.cc",
476 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100477 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200478 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200479 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200480 ]
481 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100482 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200483 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100484 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200485 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200486 ]
487}
488
489config("rtc_base_warnings_config") {
490 if (is_win && is_clang) {
491 cflags = [
492 # Disable warnings failing when compiling with Clang on Windows.
493 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
494 "-Wno-sign-compare",
495 "-Wno-missing-braces",
496 ]
497 }
498}
499
500rtc_source_set("rtc_json") {
501 defines = []
502 sources = [
503 "json.cc",
504 "json.h",
505 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100506 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200507 if (rtc_build_json) {
508 public_deps = [
509 "//third_party/jsoncpp",
510 ]
511 } else {
512 include_dirs = [ "$rtc_jsoncpp_root" ]
513
514 # When defined changes the include path for json.h to where it is
515 # expected to be when building json outside of the standalone build.
516 defines += [ "WEBRTC_EXTERNAL_JSON" ]
517 }
518}
519
mbonadei9c5e5112017-09-05 05:17:02 -0700520rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000521 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500522 public_deps = []
523 if (!build_with_mozilla) {
524 public_deps += [ ":rtc_base_generic" ]
525 }
mbonadei310e32b2017-09-07 07:36:28 -0700526 if (is_win) {
527 sources = [
528 "noop.cc",
529 ]
530 }
531 if (is_ios || is_mac) {
532 sources = [
533 "noop.mm",
534 ]
535 public_deps += [ ":rtc_base_objc" ]
536 }
537}
538
539if (is_ios || is_mac) {
540 rtc_source_set("rtc_base_objc") {
541 sources = [
542 "thread_darwin.mm",
543 ]
544 deps = [
545 ":rtc_base_generic",
546 ]
547 visibility = [ ":rtc_base" ]
548 }
549}
550
551rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200552 cflags = []
553 cflags_cc = []
554 libs = []
555 defines = []
556 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100557 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100558 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200559 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100560 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700561 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200562 ]
563 public_deps = [
564 ":rtc_base_approved",
565 ]
566 public_configs = []
567
568 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
569
570 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200571 "asyncinvoker-inl.h",
572 "asyncinvoker.cc",
573 "asyncinvoker.h",
574 "asyncpacketsocket.cc",
575 "asyncpacketsocket.h",
576 "asyncresolverinterface.cc",
577 "asyncresolverinterface.h",
578 "asyncsocket.cc",
579 "asyncsocket.h",
580 "asynctcpsocket.cc",
581 "asynctcpsocket.h",
582 "asyncudpsocket.cc",
583 "asyncudpsocket.h",
584 "crc32.cc",
585 "crc32.h",
586 "cryptstring.cc",
587 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100588 "data_rate_limiter.cc",
589 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100590 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200591 "filerotatingstream.cc",
592 "filerotatingstream.h",
593 "fileutils.cc",
594 "fileutils.h",
595 "gunit_prod.h",
596 "helpers.cc",
597 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200598 "httpcommon-inl.h",
599 "httpcommon.cc",
600 "httpcommon.h",
601 "ipaddress.cc",
602 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100603 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200604 "messagedigest.cc",
605 "messagedigest.h",
606 "messagehandler.cc",
607 "messagehandler.h",
608 "messagequeue.cc",
609 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800610 "nethelper.cc",
611 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200612 "nethelpers.cc",
613 "nethelpers.h",
614 "network.cc",
615 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200616 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200617 "networkmonitor.cc",
618 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100619 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200620 "nullsocketserver.cc",
621 "nullsocketserver.h",
622 "openssl.h",
623 "openssladapter.cc",
624 "openssladapter.h",
625 "openssldigest.cc",
626 "openssldigest.h",
627 "opensslidentity.cc",
628 "opensslidentity.h",
629 "opensslstreamadapter.cc",
630 "opensslstreamadapter.h",
631 "physicalsocketserver.cc",
632 "physicalsocketserver.h",
633 "proxyinfo.cc",
634 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200635 "ratelimiter.h",
636 "rtccertificate.cc",
637 "rtccertificate.h",
638 "rtccertificategenerator.cc",
639 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700640 "signalthread.cc",
641 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200642 "sigslot.cc",
643 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700644 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200645 "socket.h",
646 "socketadapters.cc",
647 "socketadapters.h",
648 "socketaddress.cc",
649 "socketaddress.h",
650 "socketaddresspair.cc",
651 "socketaddresspair.h",
652 "socketfactory.h",
653 "socketserver.h",
654 "socketstream.cc",
655 "socketstream.h",
656 "ssladapter.cc",
657 "ssladapter.h",
658 "sslfingerprint.cc",
659 "sslfingerprint.h",
660 "sslidentity.cc",
661 "sslidentity.h",
662 "sslstreamadapter.cc",
663 "sslstreamadapter.h",
664 "stream.cc",
665 "stream.h",
666 "thread.cc",
667 "thread.h",
Joachim Bauch58daf402017-12-21 22:00:34 +0100668 "zero_memory.cc",
669 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200670 ]
671
mbonadei310e32b2017-09-07 07:36:28 -0700672 visibility = [
673 ":rtc_base",
674 ":rtc_base_objc",
675 ]
676
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200677 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
678 # compiler settings.
679 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
680 configs += [ "//build/config/compiler:no_chromium_code" ]
681 if (!is_win) {
682 cflags += [ "-Wno-uninitialized" ]
683 }
684
685 if (build_with_chromium) {
686 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200687 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200688 }
689 include_dirs = [ "../../boringssl/src/include" ]
690 public_configs += [ ":rtc_base_chromium_config" ]
691 } else {
692 configs += [ ":rtc_base_warnings_config" ]
693 sources += [
694 "callback.h",
695 "logsinks.cc",
696 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100697 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200698 "optionsfile.cc",
699 "optionsfile.h",
700 "rollingaccumulator.h",
701 "sslroots.h",
702 "transformadapter.cc",
703 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200704 ]
705
706 if (is_win) {
707 sources += [
708 "win32socketinit.cc",
709 "win32socketinit.h",
710 "win32socketserver.cc",
711 "win32socketserver.h",
712 ]
713 }
714 } # !build_with_chromium
715
716 if (rtc_build_ssl) {
717 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500718 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200719 configs += [ ":external_ssl_library" ]
720 }
721
722 if (is_android) {
723 sources += [
724 "ifaddrs-android.cc",
725 "ifaddrs-android.h",
726 ]
727
728 libs += [
729 "log",
730 "GLESv2",
731 ]
732 }
733
734 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700735 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200736 }
737
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100738 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200739 libs += [
740 "dl",
741 "rt",
742 "Xext",
743 "X11",
744 "Xcomposite",
745 "Xrender",
746 ]
747 }
748
749 if (is_linux) {
750 libs += [
751 "dl",
752 "rt",
753 ]
754 }
755
756 if (is_mac) {
757 sources += [
758 "macutils.cc",
759 "macutils.h",
760 ]
761 libs += [
762 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
763 "ApplicationServices.framework",
764 ]
765 }
766
767 if (is_win) {
768 sources += [
769 "win32.cc",
770 "win32.h",
771 "win32filesystem.cc",
772 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200773 "win32window.cc",
774 "win32window.h",
775 ]
776
777 libs += [
778 "crypt32.lib",
779 "iphlpapi.lib",
780 "secur32.lib",
781 ]
782
783 cflags += [
784 # Suppress warnings about WIN32_LEAN_AND_MEAN.
785 "/wd4005",
786 "/wd4703",
787 ]
788
789 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
790 }
791
792 if (is_posix) {
793 sources += [
794 "ifaddrs_converter.cc",
795 "ifaddrs_converter.h",
796 "unixfilesystem.cc",
797 "unixfilesystem.h",
798 ]
799 }
800
801 if (is_nacl) {
802 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
803 defines += [ "timezone=_timezone" ]
804 sources -= [ "ifaddrs_converter.cc" ]
805 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200806}
807
808rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000809 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200810 sources = [
811 "gtest_prod_util.h",
812 ]
813}
814
815config("rtc_base_tests_utils_exported_config") {
816 defines = [ "GTEST_RELATIVE_PATH" ]
817}
818
819config("rtc_base_tests_utils_warnings_config") {
820 if (is_win && is_clang) {
821 cflags = [
822 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
823 "-Wno-reorder",
824 "-Wno-sign-compare",
825 ]
826 }
827}
828
829rtc_source_set("rtc_base_tests_utils") {
830 testonly = true
831 sources = [
832 # Also use this as a convenient dumping ground for misc files that are
833 # included by multiple targets below.
834 "cpu_time.cc",
835 "cpu_time.h",
836 "fakeclock.cc",
837 "fakeclock.h",
838 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700839 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200840 "fakesslidentity.h",
841 "firewallsocketserver.cc",
842 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800843 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200844 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100845 "httpbase.cc",
846 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200847 "httpserver.cc",
848 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200849 "memory_usage.cc",
850 "memory_usage.h",
851 "natserver.cc",
852 "natserver.h",
853 "natsocketfactory.cc",
854 "natsocketfactory.h",
855 "nattypes.cc",
856 "nattypes.h",
857 "proxyserver.cc",
858 "proxyserver.h",
Patrik Höglund563934e2017-09-15 09:04:28 +0200859 "refcount.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200860 "sigslottester.h",
861 "sigslottester.h.pump",
862 "testbase64.h",
863 "testclient.cc",
864 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700865 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200866 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700867 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200868 "testutils.h",
869 "timedelta.h",
870 "virtualsocketserver.cc",
871 "virtualsocketserver.h",
872 ]
873 configs += [ ":rtc_base_tests_utils_warnings_config" ]
874 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
875 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100876 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200877 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100878 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200879 "../test:field_trial",
880 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100881 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200882 ]
883 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200884 "//testing/gtest",
885 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200886}
887
Tommida8781f2018-02-19 12:41:43 +0100888rtc_source_set("rtc_task_queue_for_test") {
889 visibility = [ "*" ]
890 testonly = true
891
892 sources = [
893 "task_queue_for_test.cc",
894 "task_queue_for_test.h",
895 ]
896 deps = [
897 ":checks",
898 ":rtc_base_approved",
899 ":rtc_task_queue",
900 ]
901}
902
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200903if (rtc_include_tests) {
904 rtc_source_set("rtc_base_tests_main") {
905 testonly = true
906 sources = [
907 "unittest_main.cc",
908 ]
909 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
910 deps = [
911 ":rtc_base",
912 ":rtc_base_approved",
913 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +0100914 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200915 "../test:field_trial",
916 "../test:test_support",
917 ]
918
919 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200920 "//testing/gtest",
921 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200922 }
923
924 rtc_source_set("rtc_base_nonparallel_tests") {
925 testonly = true
926
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200927 sources = [
928 "cpu_time_unittest.cc",
929 "filerotatingstream_unittest.cc",
930 "nullsocketserver_unittest.cc",
931 "physicalsocketserver_unittest.cc",
932 "socket_unittest.cc",
933 "socket_unittest.h",
934 "socketaddress_unittest.cc",
935 ]
936 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100937 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200938 ":rtc_base",
939 ":rtc_base_tests_main",
940 ":rtc_base_tests_utils",
941 "../system_wrappers:system_wrappers",
942 "../test:test_support",
943 "//testing/gtest",
944 ]
945 if (is_win) {
946 sources += [ "win32socketserver_unittest.cc" ]
947 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200948 }
949
950 rtc_source_set("rtc_base_approved_unittests") {
951 testonly = true
952
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200954 "atomicops_unittest.cc",
955 "base64_unittest.cc",
956 "basictypes_unittest.cc",
957 "bind_unittest.cc",
958 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100959 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200960 "buffer_unittest.cc",
961 "bufferqueue_unittest.cc",
962 "bytebuffer_unittest.cc",
963 "byteorder_unittest.cc",
964 "copyonwritebuffer_unittest.cc",
965 "criticalsection_unittest.cc",
966 "event_tracer_unittest.cc",
967 "event_unittest.cc",
968 "file_unittest.cc",
969 "function_view_unittest.cc",
970 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100971 "numerics/histogram_percentile_counter_unittest.cc",
972 "numerics/mod_ops_unittest.cc",
973 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100974 "numerics/safe_compare_unittest.cc",
975 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200977 "pathutils_unittest.cc",
978 "platform_thread_unittest.cc",
979 "random_unittest.cc",
980 "rate_limiter_unittest.cc",
981 "rate_statistics_unittest.cc",
982 "ratetracker_unittest.cc",
983 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200984 "string_to_number_unittest.cc",
985 "stringencode_unittest.cc",
986 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +0100987 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200988 "stringutils_unittest.cc",
989 "swap_queue_unittest.cc",
990 "thread_annotations_unittest.cc",
991 "thread_checker_unittest.cc",
992 "timestampaligner_unittest.cc",
993 "timeutils_unittest.cc",
994 "virtualsocket_unittest.cc",
995 ]
996 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100997 ":checks",
998 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200999 ":rtc_base",
1000 ":rtc_base_approved",
1001 ":rtc_base_tests_main",
1002 ":rtc_base_tests_utils",
1003 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001004 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +01001005 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001006 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001007 "../system_wrappers:system_wrappers",
1008 "../test:test_support",
1009 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001010 }
1011
1012 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001013 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001014 testonly = true
1015
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001016 sources = [
1017 "task_queue_unittest.cc",
1018 ]
1019 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001020 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 ":rtc_base_tests_main",
1022 ":rtc_base_tests_utils",
1023 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001024 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 "../test:test_support",
1026 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 }
1028
1029 rtc_source_set("sequenced_task_checker_unittests") {
1030 testonly = true
1031
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001032 sources = [
1033 "sequenced_task_checker_unittest.cc",
1034 ]
1035 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001036 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001037 ":rtc_base_approved",
1038 ":rtc_base_tests_main",
1039 ":rtc_task_queue",
1040 ":sequenced_task_checker",
1041 "../test:test_support",
1042 ]
1043 }
1044
1045 rtc_source_set("weak_ptr_unittests") {
1046 testonly = true
1047
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001048 sources = [
1049 "weak_ptr_unittest.cc",
1050 ]
1051 deps = [
Tommi897e1362017-12-01 18:56:43 +01001052 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001053 ":rtc_base_tests_main",
1054 ":rtc_base_tests_utils",
1055 ":rtc_task_queue",
1056 ":weak_ptr",
1057 "../test:test_support",
1058 ]
1059 }
1060
1061 rtc_source_set("rtc_numerics_unittests") {
1062 testonly = true
1063
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 sources = [
1065 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001066 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001067 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001068 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001069 ]
1070 deps = [
1071 ":rtc_base_approved",
1072 ":rtc_base_tests_main",
1073 ":rtc_numerics",
1074 "../test:test_support",
1075 ]
1076 }
1077
1078 config("rtc_base_unittests_config") {
1079 if (is_clang) {
1080 cflags = [ "-Wno-unused-const-variable" ]
1081 }
1082 }
1083 rtc_source_set("rtc_base_unittests") {
1084 testonly = true
1085
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001086 sources = [
1087 "callback_unittest.cc",
1088 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001089 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001090 "helpers_unittest.cc",
1091 "httpbase_unittest.cc",
1092 "httpcommon_unittest.cc",
1093 "httpserver_unittest.cc",
1094 "ipaddress_unittest.cc",
1095 "memory_usage_unittest.cc",
1096 "messagedigest_unittest.cc",
1097 "messagequeue_unittest.cc",
1098 "nat_unittest.cc",
1099 "network_unittest.cc",
1100 "optionsfile_unittest.cc",
1101 "proxy_unittest.cc",
1102 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001103 "rollingaccumulator_unittest.cc",
1104 "rtccertificate_unittest.cc",
1105 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001106 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001107 "sigslot_unittest.cc",
1108 "sigslottester_unittest.cc",
1109 "stream_unittest.cc",
1110 "testclient_unittest.cc",
1111 "thread_unittest.cc",
Joachim Bauch58daf402017-12-21 22:00:34 +01001112 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001113 ]
1114 if (is_win) {
1115 sources += [
1116 "win32_unittest.cc",
1117 "win32window_unittest.cc",
1118 ]
1119 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001120 if (is_posix) {
1121 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001122 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001123 "ssladapter_unittest.cc",
1124 "sslidentity_unittest.cc",
1125 "sslstreamadapter_unittest.cc",
1126 ]
1127 }
1128 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001129 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001130 ":rtc_base_tests_main",
1131 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001132 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001133 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001134 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001135 "../test:test_support",
1136 ]
1137 public_deps = [
1138 ":rtc_base",
1139 ]
1140 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001141 if (build_with_chromium) {
1142 include_dirs = [ "../../boringssl/src/include" ]
1143 }
1144 if (rtc_build_ssl) {
1145 deps += [ "//third_party/boringssl" ]
1146 } else {
1147 configs += [ ":external_ssl_library" ]
1148 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001149 }
1150}
1151
Henrik Kjellander73e21802017-06-20 08:38:58 +02001152if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001153 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001154 java_files = [
1155 "java/src/org/webrtc/ContextUtils.java",
1156 "java/src/org/webrtc/Logging.java",
1157 "java/src/org/webrtc/Size.java",
1158 "java/src/org/webrtc/ThreadUtils.java",
1159 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001160 }
1161}