blob: df4969fdd9497c281eff69ef33cee62f10808ad0 [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",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100588 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200589 "filerotatingstream.cc",
590 "filerotatingstream.h",
591 "fileutils.cc",
592 "fileutils.h",
593 "gunit_prod.h",
594 "helpers.cc",
595 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200596 "httpcommon-inl.h",
597 "httpcommon.cc",
598 "httpcommon.h",
599 "ipaddress.cc",
600 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100601 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200602 "messagedigest.cc",
603 "messagedigest.h",
604 "messagehandler.cc",
605 "messagehandler.h",
606 "messagequeue.cc",
607 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800608 "nethelper.cc",
609 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200610 "nethelpers.cc",
611 "nethelpers.h",
612 "network.cc",
613 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200614 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200615 "networkmonitor.cc",
616 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100617 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200618 "nullsocketserver.cc",
619 "nullsocketserver.h",
620 "openssl.h",
621 "openssladapter.cc",
622 "openssladapter.h",
623 "openssldigest.cc",
624 "openssldigest.h",
625 "opensslidentity.cc",
626 "opensslidentity.h",
627 "opensslstreamadapter.cc",
628 "opensslstreamadapter.h",
629 "physicalsocketserver.cc",
630 "physicalsocketserver.h",
631 "proxyinfo.cc",
632 "proxyinfo.h",
633 "ratelimiter.cc",
634 "ratelimiter.h",
635 "rtccertificate.cc",
636 "rtccertificate.h",
637 "rtccertificategenerator.cc",
638 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700639 "signalthread.cc",
640 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200641 "sigslot.cc",
642 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700643 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200644 "socket.h",
645 "socketadapters.cc",
646 "socketadapters.h",
647 "socketaddress.cc",
648 "socketaddress.h",
649 "socketaddresspair.cc",
650 "socketaddresspair.h",
651 "socketfactory.h",
652 "socketserver.h",
653 "socketstream.cc",
654 "socketstream.h",
655 "ssladapter.cc",
656 "ssladapter.h",
657 "sslfingerprint.cc",
658 "sslfingerprint.h",
659 "sslidentity.cc",
660 "sslidentity.h",
661 "sslstreamadapter.cc",
662 "sslstreamadapter.h",
663 "stream.cc",
664 "stream.h",
665 "thread.cc",
666 "thread.h",
Joachim Bauch58daf402017-12-21 22:00:34 +0100667 "zero_memory.cc",
668 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200669 ]
670
mbonadei310e32b2017-09-07 07:36:28 -0700671 visibility = [
672 ":rtc_base",
673 ":rtc_base_objc",
674 ]
675
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200676 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
677 # compiler settings.
678 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
679 configs += [ "//build/config/compiler:no_chromium_code" ]
680 if (!is_win) {
681 cflags += [ "-Wno-uninitialized" ]
682 }
683
684 if (build_with_chromium) {
685 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200686 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200687 }
688 include_dirs = [ "../../boringssl/src/include" ]
689 public_configs += [ ":rtc_base_chromium_config" ]
690 } else {
691 configs += [ ":rtc_base_warnings_config" ]
692 sources += [
693 "callback.h",
694 "logsinks.cc",
695 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100696 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200697 "optionsfile.cc",
698 "optionsfile.h",
699 "rollingaccumulator.h",
700 "sslroots.h",
701 "transformadapter.cc",
702 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200703 ]
704
705 if (is_win) {
706 sources += [
707 "win32socketinit.cc",
708 "win32socketinit.h",
709 "win32socketserver.cc",
710 "win32socketserver.h",
711 ]
712 }
713 } # !build_with_chromium
714
715 if (rtc_build_ssl) {
716 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500717 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200718 configs += [ ":external_ssl_library" ]
719 }
720
721 if (is_android) {
722 sources += [
723 "ifaddrs-android.cc",
724 "ifaddrs-android.h",
725 ]
726
727 libs += [
728 "log",
729 "GLESv2",
730 ]
731 }
732
733 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700734 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200735 }
736
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100737 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200738 libs += [
739 "dl",
740 "rt",
741 "Xext",
742 "X11",
743 "Xcomposite",
744 "Xrender",
745 ]
746 }
747
748 if (is_linux) {
749 libs += [
750 "dl",
751 "rt",
752 ]
753 }
754
755 if (is_mac) {
756 sources += [
757 "macutils.cc",
758 "macutils.h",
759 ]
760 libs += [
761 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
762 "ApplicationServices.framework",
763 ]
764 }
765
766 if (is_win) {
767 sources += [
768 "win32.cc",
769 "win32.h",
770 "win32filesystem.cc",
771 "win32filesystem.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200772 "win32window.cc",
773 "win32window.h",
774 ]
775
776 libs += [
777 "crypt32.lib",
778 "iphlpapi.lib",
779 "secur32.lib",
780 ]
781
782 cflags += [
783 # Suppress warnings about WIN32_LEAN_AND_MEAN.
784 "/wd4005",
785 "/wd4703",
786 ]
787
788 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
789 }
790
791 if (is_posix) {
792 sources += [
793 "ifaddrs_converter.cc",
794 "ifaddrs_converter.h",
795 "unixfilesystem.cc",
796 "unixfilesystem.h",
797 ]
798 }
799
800 if (is_nacl) {
801 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
802 defines += [ "timezone=_timezone" ]
803 sources -= [ "ifaddrs_converter.cc" ]
804 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200805}
806
807rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000808 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200809 sources = [
810 "gtest_prod_util.h",
811 ]
812}
813
814config("rtc_base_tests_utils_exported_config") {
815 defines = [ "GTEST_RELATIVE_PATH" ]
816}
817
818config("rtc_base_tests_utils_warnings_config") {
819 if (is_win && is_clang) {
820 cflags = [
821 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
822 "-Wno-reorder",
823 "-Wno-sign-compare",
824 ]
825 }
826}
827
828rtc_source_set("rtc_base_tests_utils") {
829 testonly = true
830 sources = [
831 # Also use this as a convenient dumping ground for misc files that are
832 # included by multiple targets below.
833 "cpu_time.cc",
834 "cpu_time.h",
835 "fakeclock.cc",
836 "fakeclock.h",
837 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700838 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 "fakesslidentity.h",
840 "firewallsocketserver.cc",
841 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800842 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200843 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100844 "httpbase.cc",
845 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200846 "httpserver.cc",
847 "httpserver.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200848 "memory_usage.cc",
849 "memory_usage.h",
850 "natserver.cc",
851 "natserver.h",
852 "natsocketfactory.cc",
853 "natsocketfactory.h",
854 "nattypes.cc",
855 "nattypes.h",
856 "proxyserver.cc",
857 "proxyserver.h",
Patrik Höglund563934e2017-09-15 09:04:28 +0200858 "refcount.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200859 "sigslottester.h",
860 "sigslottester.h.pump",
861 "testbase64.h",
862 "testclient.cc",
863 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700864 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200865 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700866 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200867 "testutils.h",
868 "timedelta.h",
869 "virtualsocketserver.cc",
870 "virtualsocketserver.h",
871 ]
872 configs += [ ":rtc_base_tests_utils_warnings_config" ]
873 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
874 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100875 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200876 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100877 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200878 "../test:field_trial",
879 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100880 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200881 ]
882 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200883 "//testing/gtest",
884 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200885}
886
Tommida8781f2018-02-19 12:41:43 +0100887rtc_source_set("rtc_task_queue_for_test") {
888 visibility = [ "*" ]
889 testonly = true
890
891 sources = [
892 "task_queue_for_test.cc",
893 "task_queue_for_test.h",
894 ]
895 deps = [
896 ":checks",
897 ":rtc_base_approved",
898 ":rtc_task_queue",
899 ]
900}
901
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200902if (rtc_include_tests) {
903 rtc_source_set("rtc_base_tests_main") {
904 testonly = true
905 sources = [
906 "unittest_main.cc",
907 ]
908 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
909 deps = [
910 ":rtc_base",
911 ":rtc_base_approved",
912 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +0100913 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200914 "../test:field_trial",
915 "../test:test_support",
916 ]
917
918 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200919 "//testing/gtest",
920 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200921 }
922
923 rtc_source_set("rtc_base_nonparallel_tests") {
924 testonly = true
925
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200926 sources = [
927 "cpu_time_unittest.cc",
928 "filerotatingstream_unittest.cc",
929 "nullsocketserver_unittest.cc",
930 "physicalsocketserver_unittest.cc",
931 "socket_unittest.cc",
932 "socket_unittest.h",
933 "socketaddress_unittest.cc",
934 ]
935 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100936 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200937 ":rtc_base",
938 ":rtc_base_tests_main",
939 ":rtc_base_tests_utils",
940 "../system_wrappers:system_wrappers",
941 "../test:test_support",
942 "//testing/gtest",
943 ]
944 if (is_win) {
945 sources += [ "win32socketserver_unittest.cc" ]
946 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200947 }
948
949 rtc_source_set("rtc_base_approved_unittests") {
950 testonly = true
951
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200952 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200953 "atomicops_unittest.cc",
954 "base64_unittest.cc",
955 "basictypes_unittest.cc",
956 "bind_unittest.cc",
957 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100958 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200959 "buffer_unittest.cc",
960 "bufferqueue_unittest.cc",
961 "bytebuffer_unittest.cc",
962 "byteorder_unittest.cc",
963 "copyonwritebuffer_unittest.cc",
964 "criticalsection_unittest.cc",
965 "event_tracer_unittest.cc",
966 "event_unittest.cc",
967 "file_unittest.cc",
968 "function_view_unittest.cc",
969 "logging_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100970 "numerics/histogram_percentile_counter_unittest.cc",
971 "numerics/mod_ops_unittest.cc",
972 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100973 "numerics/safe_compare_unittest.cc",
974 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200975 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200976 "pathutils_unittest.cc",
977 "platform_thread_unittest.cc",
978 "random_unittest.cc",
979 "rate_limiter_unittest.cc",
980 "rate_statistics_unittest.cc",
981 "ratetracker_unittest.cc",
982 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200983 "string_to_number_unittest.cc",
984 "stringencode_unittest.cc",
985 "stringize_macros_unittest.cc",
Tommifef05002018-02-27 13:51:08 +0100986 "strings/string_builder_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200987 "stringutils_unittest.cc",
988 "swap_queue_unittest.cc",
989 "thread_annotations_unittest.cc",
990 "thread_checker_unittest.cc",
991 "timestampaligner_unittest.cc",
992 "timeutils_unittest.cc",
993 "virtualsocket_unittest.cc",
994 ]
995 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100996 ":checks",
997 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200998 ":rtc_base",
999 ":rtc_base_approved",
1000 ":rtc_base_tests_main",
1001 ":rtc_base_tests_utils",
1002 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001003 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +01001004 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001005 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001006 "../system_wrappers:system_wrappers",
1007 "../test:test_support",
1008 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009 }
1010
1011 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001012 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001013 testonly = true
1014
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001015 sources = [
1016 "task_queue_unittest.cc",
1017 ]
1018 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001019 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001020 ":rtc_base_tests_main",
1021 ":rtc_base_tests_utils",
1022 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001023 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 "../test:test_support",
1025 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001026 }
1027
1028 rtc_source_set("sequenced_task_checker_unittests") {
1029 testonly = true
1030
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001031 sources = [
1032 "sequenced_task_checker_unittest.cc",
1033 ]
1034 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001035 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 ":rtc_base_approved",
1037 ":rtc_base_tests_main",
1038 ":rtc_task_queue",
1039 ":sequenced_task_checker",
1040 "../test:test_support",
1041 ]
1042 }
1043
1044 rtc_source_set("weak_ptr_unittests") {
1045 testonly = true
1046
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001047 sources = [
1048 "weak_ptr_unittest.cc",
1049 ]
1050 deps = [
Tommi897e1362017-12-01 18:56:43 +01001051 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001052 ":rtc_base_tests_main",
1053 ":rtc_base_tests_utils",
1054 ":rtc_task_queue",
1055 ":weak_ptr",
1056 "../test:test_support",
1057 ]
1058 }
1059
1060 rtc_source_set("rtc_numerics_unittests") {
1061 testonly = true
1062
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001063 sources = [
1064 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001065 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001066 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001067 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001068 ]
1069 deps = [
1070 ":rtc_base_approved",
1071 ":rtc_base_tests_main",
1072 ":rtc_numerics",
1073 "../test:test_support",
1074 ]
1075 }
1076
1077 config("rtc_base_unittests_config") {
1078 if (is_clang) {
1079 cflags = [ "-Wno-unused-const-variable" ]
1080 }
1081 }
1082 rtc_source_set("rtc_base_unittests") {
1083 testonly = true
1084
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001085 sources = [
1086 "callback_unittest.cc",
1087 "crc32_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001088 "helpers_unittest.cc",
1089 "httpbase_unittest.cc",
1090 "httpcommon_unittest.cc",
1091 "httpserver_unittest.cc",
1092 "ipaddress_unittest.cc",
1093 "memory_usage_unittest.cc",
1094 "messagedigest_unittest.cc",
1095 "messagequeue_unittest.cc",
1096 "nat_unittest.cc",
1097 "network_unittest.cc",
1098 "optionsfile_unittest.cc",
1099 "proxy_unittest.cc",
1100 "ptr_util_unittest.cc",
1101 "ratelimiter_unittest.cc",
1102 "rollingaccumulator_unittest.cc",
1103 "rtccertificate_unittest.cc",
1104 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001105 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001106 "sigslot_unittest.cc",
1107 "sigslottester_unittest.cc",
1108 "stream_unittest.cc",
1109 "testclient_unittest.cc",
1110 "thread_unittest.cc",
Joachim Bauch58daf402017-12-21 22:00:34 +01001111 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001112 ]
1113 if (is_win) {
1114 sources += [
1115 "win32_unittest.cc",
1116 "win32window_unittest.cc",
1117 ]
1118 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001119 if (is_posix) {
1120 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001121 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001122 "ssladapter_unittest.cc",
1123 "sslidentity_unittest.cc",
1124 "sslstreamadapter_unittest.cc",
1125 ]
1126 }
1127 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001128 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001129 ":rtc_base_tests_main",
1130 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001131 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001132 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001133 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 "../test:test_support",
1135 ]
1136 public_deps = [
1137 ":rtc_base",
1138 ]
1139 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001140 if (build_with_chromium) {
1141 include_dirs = [ "../../boringssl/src/include" ]
1142 }
1143 if (rtc_build_ssl) {
1144 deps += [ "//third_party/boringssl" ]
1145 } else {
1146 configs += [ ":external_ssl_library" ]
1147 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001148 }
1149}
1150
Henrik Kjellander73e21802017-06-20 08:38:58 +02001151if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001152 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 java_files = [
1154 "java/src/org/webrtc/ContextUtils.java",
1155 "java/src/org/webrtc/Logging.java",
1156 "java/src/org/webrtc/Size.java",
1157 "java/src/org/webrtc/ThreadUtils.java",
1158 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001159 }
1160}