blob: e38b713a3e30f4e7c9cb9a160b3202285133a2a8 [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",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200262 ]
263
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100264 deps += [
265 "..:webrtc_common",
266 "../api:array_view",
267 "../api:optional",
268 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200269
270 if (is_android) {
271 libs += [ "log" ]
272 }
273
274 if (is_posix) {
275 sources += [ "file_posix.cc" ]
276 }
277
278 if (is_win) {
279 sources += [ "file_win.cc" ]
280 }
281
282 if (build_with_chromium) {
283 # Dependency on chromium's logging (in //base).
284 deps += [ "//base:base" ]
285 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100286 "../../webrtc_overrides/rtc_base/event.cc",
287 "../../webrtc_overrides/rtc_base/event.h",
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200288 "../../webrtc_overrides/rtc_base/logging.cc",
289 "../../webrtc_overrides/rtc_base/logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200290 ]
291 } else {
292 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100293 "event.cc",
294 "event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200295 "logging.cc",
296 "logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200297 ]
Tommie51a0a82018-02-27 15:30:29 +0100298
299 # logging.h needs the deprecation header while downstream projects are
300 # removing code that depends on logging implementation details.
301 deps += [ ":deprecation" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200302 }
303 if (is_component_build && is_win) {
304 # Copy the VS runtime DLLs into the isolate so that they don't have to be
305 # preinstalled on the target machine. The debug runtimes have a "d" at
306 # the end.
307 # This is a copy of https://codereview.chromium.org/1783973002.
308 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
309 # so we don't have to copy their changes and risk breakages.
310 # See http://crbug.com/653569
311 if (is_debug) {
312 vcrt_suffix = "d"
313 } else {
314 vcrt_suffix = ""
315 }
316
317 # These runtime files are copied to the output directory by the
318 # vs_toolchain script that runs as part of toolchain configuration.
319 data = [
320 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
321 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
322 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
323
324 # Universal Windows 10 CRT files
325 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
326 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
327 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
328 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
329 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
330 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
331 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
332 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
333 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
334 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
335 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
336 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
337 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
338 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
339 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
340 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
341 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
342 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
343 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
344 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
345 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
346 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
347 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
348 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
349 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
350 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
351 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
352 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
353 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
354 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
355 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
356 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
357 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
358 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
359 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
360 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
361 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
362 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
363 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
364 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
365 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
366 ]
367 if (is_asan) {
368 if (current_cpu == "x64") {
369 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
370 } else {
371 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
372 }
373 }
374 }
375 if (is_nacl) {
376 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
377 }
378}
379
mbonadeibc378472017-09-11 03:43:34 -0700380if (is_mac && !build_with_chromium) {
381 config("rtc_base_approved_objc_all_dependent_config") {
382 visibility = [ ":rtc_base_approved_objc" ]
383 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
384 }
385
386 rtc_source_set("rtc_base_approved_objc") {
387 visibility = [ ":rtc_base_approved" ]
388 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
389 sources = [
390 "logging_mac.mm",
391 ]
392 deps = [
393 ":rtc_base_approved_generic",
394 ]
395 }
396}
397
perkj650fdae2017-08-25 05:00:11 -0700398rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000399 visibility = [ "*" ]
mbonadei95c8f652017-08-27 23:40:10 -0700400 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200401 ":rtc_base_approved",
mbonadei95c8f652017-08-27 23:40:10 -0700402 ]
403 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700404 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200405 ]
406
perkj650fdae2017-08-25 05:00:11 -0700407 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700408 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700409 }
410}
411
412# WebRTC targets must not directly depend on rtc_task_queue_api or
413# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
414# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
415# to the default implemenation in rtc_task_queue_impl or if an externally
416# provided implementation should be used. An external implementation should
417# depend on rtc_task_queue_api.
418rtc_source_set("rtc_task_queue_api") {
nisse75dd6d42017-09-19 08:28:00 -0700419 sources = [
420 "task_queue.h",
421 ]
perkj650fdae2017-08-25 05:00:11 -0700422 deps = [
423 ":rtc_base_approved",
424 ]
425}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200426
perkj650fdae2017-08-25 05:00:11 -0700427rtc_source_set("rtc_task_queue_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000428 visibility = [ "*" ]
perkj650fdae2017-08-25 05:00:11 -0700429 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100430 ":checks",
perkj650fdae2017-08-25 05:00:11 -0700431 ":rtc_base_approved",
432 ":rtc_task_queue_api",
433 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200434 if (rtc_build_libevent) {
435 deps += [ "//base/third_party/libevent" ]
436 }
437 if (rtc_enable_libevent) {
perkj650fdae2017-08-25 05:00:11 -0700438 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200439 "task_queue_libevent.cc",
440 "task_queue_posix.cc",
441 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700442 ]
443 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200444 if (is_mac || is_ios) {
Niels Möller17a04742017-09-27 10:53:21 +0200445 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200446 "task_queue_gcd.cc",
Henrik Boströma9a27712017-10-03 08:01:07 +0000447 "task_queue_posix.cc",
448 "task_queue_posix.h",
Niels Möller17a04742017-09-27 10:53:21 +0200449 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200450 }
451 if (is_win) {
452 sources = [
453 "task_queue_win.cc",
454 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200455 }
456 }
457}
458
459rtc_static_library("sequenced_task_checker") {
460 sources = [
461 "sequenced_task_checker.h",
462 "sequenced_task_checker_impl.cc",
463 "sequenced_task_checker_impl.h",
464 ]
465 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100466 ":checks",
mbonadei95c8f652017-08-27 23:40:10 -0700467 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200468 ":rtc_task_queue",
469 ]
470}
471
472rtc_static_library("weak_ptr") {
473 sources = [
474 "weak_ptr.cc",
475 "weak_ptr.h",
476 ]
477 deps = [
478 ":rtc_base_approved",
479 ":sequenced_task_checker",
480 ]
481}
482
483rtc_static_library("rtc_numerics") {
484 sources = [
485 "numerics/exp_filter.cc",
486 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100487 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200488 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200489 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200490 ]
491 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100492 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200493 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100494 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200495 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200496 ]
497}
498
499config("rtc_base_warnings_config") {
500 if (is_win && is_clang) {
501 cflags = [
502 # Disable warnings failing when compiling with Clang on Windows.
503 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
504 "-Wno-sign-compare",
505 "-Wno-missing-braces",
506 ]
507 }
508}
509
510rtc_source_set("rtc_json") {
511 defines = []
512 sources = [
513 "json.cc",
514 "json.h",
515 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100516 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200517 if (rtc_build_json) {
518 public_deps = [
519 "//third_party/jsoncpp",
520 ]
521 } else {
522 include_dirs = [ "$rtc_jsoncpp_root" ]
523
524 # When defined changes the include path for json.h to where it is
525 # expected to be when building json outside of the standalone build.
526 defines += [ "WEBRTC_EXTERNAL_JSON" ]
527 }
528}
529
mbonadei9c5e5112017-09-05 05:17:02 -0700530rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000531 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500532 public_deps = []
533 if (!build_with_mozilla) {
534 public_deps += [ ":rtc_base_generic" ]
535 }
mbonadei310e32b2017-09-07 07:36:28 -0700536 if (is_win) {
537 sources = [
538 "noop.cc",
539 ]
540 }
541 if (is_ios || is_mac) {
542 sources = [
543 "noop.mm",
544 ]
545 public_deps += [ ":rtc_base_objc" ]
546 }
547}
548
549if (is_ios || is_mac) {
550 rtc_source_set("rtc_base_objc") {
551 sources = [
552 "thread_darwin.mm",
553 ]
554 deps = [
555 ":rtc_base_generic",
556 ]
557 visibility = [ ":rtc_base" ]
558 }
559}
560
561rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200562 cflags = []
563 cflags_cc = []
564 libs = []
565 defines = []
566 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100567 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100568 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200569 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100570 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700571 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200572 ]
573 public_deps = [
574 ":rtc_base_approved",
575 ]
576 public_configs = []
577
578 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
579
580 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200581 "asyncinvoker-inl.h",
582 "asyncinvoker.cc",
583 "asyncinvoker.h",
584 "asyncpacketsocket.cc",
585 "asyncpacketsocket.h",
586 "asyncresolverinterface.cc",
587 "asyncresolverinterface.h",
588 "asyncsocket.cc",
589 "asyncsocket.h",
590 "asynctcpsocket.cc",
591 "asynctcpsocket.h",
592 "asyncudpsocket.cc",
593 "asyncudpsocket.h",
594 "crc32.cc",
595 "crc32.h",
596 "cryptstring.cc",
597 "cryptstring.h",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +0100598 "data_rate_limiter.cc",
599 "data_rate_limiter.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100600 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200601 "filerotatingstream.cc",
602 "filerotatingstream.h",
603 "fileutils.cc",
604 "fileutils.h",
605 "gunit_prod.h",
606 "helpers.cc",
607 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200608 "httpcommon-inl.h",
609 "httpcommon.cc",
610 "httpcommon.h",
611 "ipaddress.cc",
612 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100613 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200614 "messagedigest.cc",
615 "messagedigest.h",
616 "messagehandler.cc",
617 "messagehandler.h",
618 "messagequeue.cc",
619 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800620 "nethelper.cc",
621 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200622 "nethelpers.cc",
623 "nethelpers.h",
624 "network.cc",
625 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200626 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200627 "networkmonitor.cc",
628 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100629 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200630 "nullsocketserver.cc",
631 "nullsocketserver.h",
632 "openssl.h",
633 "openssladapter.cc",
634 "openssladapter.h",
635 "openssldigest.cc",
636 "openssldigest.h",
637 "opensslidentity.cc",
638 "opensslidentity.h",
639 "opensslstreamadapter.cc",
640 "opensslstreamadapter.h",
641 "physicalsocketserver.cc",
642 "physicalsocketserver.h",
643 "proxyinfo.cc",
644 "proxyinfo.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200645 "ratelimiter.h",
646 "rtccertificate.cc",
647 "rtccertificate.h",
648 "rtccertificategenerator.cc",
649 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700650 "signalthread.cc",
651 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200652 "sigslot.cc",
653 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700654 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200655 "socket.h",
656 "socketadapters.cc",
657 "socketadapters.h",
658 "socketaddress.cc",
659 "socketaddress.h",
660 "socketaddresspair.cc",
661 "socketaddresspair.h",
662 "socketfactory.h",
663 "socketserver.h",
664 "socketstream.cc",
665 "socketstream.h",
666 "ssladapter.cc",
667 "ssladapter.h",
668 "sslfingerprint.cc",
669 "sslfingerprint.h",
670 "sslidentity.cc",
671 "sslidentity.h",
672 "sslstreamadapter.cc",
673 "sslstreamadapter.h",
674 "stream.cc",
675 "stream.h",
676 "thread.cc",
677 "thread.h",
Joachim Bauch58daf402017-12-21 22:00:34 +0100678 "zero_memory.cc",
679 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200680 ]
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",
1005 ]
1006 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001007 ":checks",
1008 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001009 ":rtc_base",
1010 ":rtc_base_approved",
1011 ":rtc_base_tests_main",
1012 ":rtc_base_tests_utils",
1013 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001014 ":safe_compare",
Karl Wiberg12edf4c2018-03-07 14:18:56 +01001015 ":safe_minmax",
Patrik Höglund3e113432017-12-15 14:40:10 +01001016 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001017 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001018 "../system_wrappers:system_wrappers",
1019 "../test:test_support",
1020 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001021 }
1022
1023 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001024 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001025 testonly = true
1026
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001027 sources = [
1028 "task_queue_unittest.cc",
1029 ]
1030 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001031 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001032 ":rtc_base_tests_main",
1033 ":rtc_base_tests_utils",
1034 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001035 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001036 "../test:test_support",
1037 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001038 }
1039
1040 rtc_source_set("sequenced_task_checker_unittests") {
1041 testonly = true
1042
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001043 sources = [
1044 "sequenced_task_checker_unittest.cc",
1045 ]
1046 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001047 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001048 ":rtc_base_approved",
1049 ":rtc_base_tests_main",
1050 ":rtc_task_queue",
1051 ":sequenced_task_checker",
1052 "../test:test_support",
1053 ]
1054 }
1055
1056 rtc_source_set("weak_ptr_unittests") {
1057 testonly = true
1058
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001059 sources = [
1060 "weak_ptr_unittest.cc",
1061 ]
1062 deps = [
Tommi897e1362017-12-01 18:56:43 +01001063 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001064 ":rtc_base_tests_main",
1065 ":rtc_base_tests_utils",
1066 ":rtc_task_queue",
1067 ":weak_ptr",
1068 "../test:test_support",
1069 ]
1070 }
1071
1072 rtc_source_set("rtc_numerics_unittests") {
1073 testonly = true
1074
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001075 sources = [
1076 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001077 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001078 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001079 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001080 ]
1081 deps = [
1082 ":rtc_base_approved",
1083 ":rtc_base_tests_main",
1084 ":rtc_numerics",
1085 "../test:test_support",
1086 ]
1087 }
1088
1089 config("rtc_base_unittests_config") {
1090 if (is_clang) {
1091 cflags = [ "-Wno-unused-const-variable" ]
1092 }
1093 }
1094 rtc_source_set("rtc_base_unittests") {
1095 testonly = true
1096
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001097 sources = [
1098 "callback_unittest.cc",
1099 "crc32_unittest.cc",
Sebastian Janssonf9c5cf62018-02-28 16:04:26 +01001100 "data_rate_limiter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001101 "helpers_unittest.cc",
1102 "httpbase_unittest.cc",
1103 "httpcommon_unittest.cc",
1104 "httpserver_unittest.cc",
1105 "ipaddress_unittest.cc",
1106 "memory_usage_unittest.cc",
1107 "messagedigest_unittest.cc",
1108 "messagequeue_unittest.cc",
1109 "nat_unittest.cc",
1110 "network_unittest.cc",
1111 "optionsfile_unittest.cc",
1112 "proxy_unittest.cc",
1113 "ptr_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001114 "rollingaccumulator_unittest.cc",
1115 "rtccertificate_unittest.cc",
1116 "rtccertificategenerator_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001117 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001118 "sigslot_unittest.cc",
1119 "sigslottester_unittest.cc",
1120 "stream_unittest.cc",
1121 "testclient_unittest.cc",
1122 "thread_unittest.cc",
Joachim Bauch58daf402017-12-21 22:00:34 +01001123 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001124 ]
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}