blob: 382ba52d8bc537106a6746fa807d91d2d62c2d0a [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 = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100134 "stringutils.cc",
135 "stringutils.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100136 ]
137 deps = [
Patrik Höglund3e113432017-12-15 14:40:10 +0100138 ":checks",
139 ]
140}
141
142rtc_source_set("type_traits") {
143 sources = [
144 "type_traits.h",
145 ]
146}
147
148rtc_source_set("deprecation") {
149 sources = [
150 "deprecation.h",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100151 ]
152}
153
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200154# The subset of rtc_base approved for use outside of libjingle.
mbonadeibc378472017-09-11 03:43:34 -0700155rtc_source_set("rtc_base_approved_generic") {
156 visibility = [
157 ":rtc_base_approved",
158 ":rtc_base_approved_objc",
Tommi897e1362017-12-01 18:56:43 +0100159 ":weak_ptr_unittests",
mbonadeibc378472017-09-11 03:43:34 -0700160 ]
161
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100162 cflags = []
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200163 defines = []
164 libs = []
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100165 deps = [
166 ":checks",
167 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +0100168 ":stringutils",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100169 ":type_traits",
Patrik Höglund3e113432017-12-15 14:40:10 +0100170 "../:typedefs",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100171 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200172
173 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200174 "arraysize.h",
175 "atomicops.h",
176 "base64.cc",
177 "base64.h",
178 "basictypes.h",
179 "bind.h",
180 "bitbuffer.cc",
181 "bitbuffer.h",
Alex Narest78609d52017-10-20 10:37:47 +0200182 "bitrateallocationstrategy.cc",
183 "bitrateallocationstrategy.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200184 "buffer.h",
185 "bufferqueue.cc",
186 "bufferqueue.h",
187 "bytebuffer.cc",
188 "bytebuffer.h",
189 "byteorder.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200190 "constructormagic.h",
191 "copyonwritebuffer.cc",
192 "copyonwritebuffer.h",
193 "criticalsection.cc",
194 "criticalsection.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200195 "event_tracer.cc",
196 "event_tracer.h",
197 "file.cc",
198 "file.h",
199 "flags.cc",
200 "flags.h",
201 "format_macros.h",
202 "function_view.h",
203 "ignore_wundef.h",
204 "location.cc",
205 "location.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100206 "numerics/histogram_percentile_counter.cc",
207 "numerics/histogram_percentile_counter.h",
208 "numerics/mod_ops.h",
209 "numerics/moving_max_counter.h",
Karl Wiberge40468b2017-11-22 10:42:26 +0100210 "numerics/safe_conversions.h",
211 "numerics/safe_conversions_impl.h",
212 "numerics/safe_minmax.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200213 "onetimeevent.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200214 "pathutils.cc",
215 "pathutils.h",
216 "platform_file.cc",
217 "platform_file.h",
218 "platform_thread.cc",
219 "platform_thread.h",
Tommi1f3f3c22018-02-17 11:46:14 +0100220 "platform_thread_types.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200221 "platform_thread_types.h",
222 "ptr_util.h",
223 "race_checker.cc",
224 "race_checker.h",
225 "random.cc",
226 "random.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200227 "rate_statistics.cc",
228 "rate_statistics.h",
229 "ratetracker.cc",
230 "ratetracker.h",
231 "refcount.h",
232 "refcountedobject.h",
Niels Möller9155e492017-10-23 11:22:30 +0200233 "refcounter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200234 "scoped_ref_ptr.h",
235 "string_to_number.cc",
236 "string_to_number.h",
237 "stringencode.cc",
238 "stringencode.h",
239 "stringize_macros.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200240 "swap_queue.h",
241 "template_util.h",
242 "thread_annotations.h",
243 "thread_checker.h",
244 "thread_checker_impl.cc",
245 "thread_checker_impl.h",
246 "timestampaligner.cc",
247 "timestampaligner.h",
248 "timeutils.cc",
249 "timeutils.h",
250 "trace_event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200251 ]
252
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100253 deps += [
254 "..:webrtc_common",
255 "../api:array_view",
256 "../api:optional",
257 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200258
259 if (is_android) {
260 libs += [ "log" ]
261 }
262
263 if (is_posix) {
264 sources += [ "file_posix.cc" ]
265 }
266
267 if (is_win) {
268 sources += [ "file_win.cc" ]
269 }
270
271 if (build_with_chromium) {
272 # Dependency on chromium's logging (in //base).
273 deps += [ "//base:base" ]
274 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100275 "../../webrtc_overrides/rtc_base/event.cc",
276 "../../webrtc_overrides/rtc_base/event.h",
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200277 "../../webrtc_overrides/rtc_base/logging.cc",
278 "../../webrtc_overrides/rtc_base/logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200279 ]
280 } else {
281 sources += [
Tommi06483ca2017-11-26 18:22:52 +0100282 "event.cc",
283 "event.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200284 "logging.cc",
285 "logging.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200286 ]
287 }
288 if (is_component_build && is_win) {
289 # Copy the VS runtime DLLs into the isolate so that they don't have to be
290 # preinstalled on the target machine. The debug runtimes have a "d" at
291 # the end.
292 # This is a copy of https://codereview.chromium.org/1783973002.
293 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
294 # so we don't have to copy their changes and risk breakages.
295 # See http://crbug.com/653569
296 if (is_debug) {
297 vcrt_suffix = "d"
298 } else {
299 vcrt_suffix = ""
300 }
301
302 # These runtime files are copied to the output directory by the
303 # vs_toolchain script that runs as part of toolchain configuration.
304 data = [
305 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
306 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
307 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
308
309 # Universal Windows 10 CRT files
310 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
311 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
312 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
313 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
314 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
315 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
316 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
317 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
318 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
319 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
320 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
321 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
322 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
323 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
324 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
325 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
326 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
327 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
328 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
329 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
330 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
331 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
332 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
333 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
334 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
335 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
336 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
337 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
338 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
339 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
340 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
341 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
342 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
343 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
344 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
345 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
346 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
347 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
348 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
349 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
350 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
351 ]
352 if (is_asan) {
353 if (current_cpu == "x64") {
354 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
355 } else {
356 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
357 }
358 }
359 }
360 if (is_nacl) {
361 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
362 }
363}
364
mbonadeibc378472017-09-11 03:43:34 -0700365if (is_mac && !build_with_chromium) {
366 config("rtc_base_approved_objc_all_dependent_config") {
367 visibility = [ ":rtc_base_approved_objc" ]
368 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
369 }
370
371 rtc_source_set("rtc_base_approved_objc") {
372 visibility = [ ":rtc_base_approved" ]
373 all_dependent_configs = [ ":rtc_base_approved_objc_all_dependent_config" ]
374 sources = [
375 "logging_mac.mm",
376 ]
377 deps = [
378 ":rtc_base_approved_generic",
379 ]
380 }
381}
382
perkj650fdae2017-08-25 05:00:11 -0700383rtc_source_set("rtc_task_queue") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000384 visibility = [ "*" ]
mbonadei95c8f652017-08-27 23:40:10 -0700385 deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200386 ":rtc_base_approved",
mbonadei95c8f652017-08-27 23:40:10 -0700387 ]
388 public_deps = [
perkj650fdae2017-08-25 05:00:11 -0700389 ":rtc_task_queue_api",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200390 ]
391
perkj650fdae2017-08-25 05:00:11 -0700392 if (rtc_link_task_queue_impl) {
mbonadei95c8f652017-08-27 23:40:10 -0700393 deps += [ ":rtc_task_queue_impl" ]
perkj650fdae2017-08-25 05:00:11 -0700394 }
395}
396
397# WebRTC targets must not directly depend on rtc_task_queue_api or
398# rtc_task_queue_impl. Instead, depend on rtc_task_queue.
399# The build flag |rtc_link_task_queue_impl| decides if WebRTC targets will link
400# to the default implemenation in rtc_task_queue_impl or if an externally
401# provided implementation should be used. An external implementation should
402# depend on rtc_task_queue_api.
403rtc_source_set("rtc_task_queue_api") {
nisse75dd6d42017-09-19 08:28:00 -0700404 sources = [
405 "task_queue.h",
406 ]
perkj650fdae2017-08-25 05:00:11 -0700407 deps = [
408 ":rtc_base_approved",
409 ]
410}
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200411
perkj650fdae2017-08-25 05:00:11 -0700412rtc_source_set("rtc_task_queue_impl") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000413 visibility = [ "*" ]
perkj650fdae2017-08-25 05:00:11 -0700414 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100415 ":checks",
perkj650fdae2017-08-25 05:00:11 -0700416 ":rtc_base_approved",
417 ":rtc_task_queue_api",
418 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200419 if (rtc_build_libevent) {
420 deps += [ "//base/third_party/libevent" ]
421 }
422 if (rtc_enable_libevent) {
perkj650fdae2017-08-25 05:00:11 -0700423 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200424 "task_queue_libevent.cc",
425 "task_queue_posix.cc",
426 "task_queue_posix.h",
perkj650fdae2017-08-25 05:00:11 -0700427 ]
428 } else {
Niels Möller15c9cf72017-10-19 12:38:09 +0200429 if (is_mac || is_ios) {
Niels Möller17a04742017-09-27 10:53:21 +0200430 sources = [
Niels Möller15c9cf72017-10-19 12:38:09 +0200431 "task_queue_gcd.cc",
Henrik Boströma9a27712017-10-03 08:01:07 +0000432 "task_queue_posix.cc",
433 "task_queue_posix.h",
Niels Möller17a04742017-09-27 10:53:21 +0200434 ]
Niels Möller15c9cf72017-10-19 12:38:09 +0200435 }
436 if (is_win) {
437 sources = [
438 "task_queue_win.cc",
439 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200440 }
441 }
442}
443
444rtc_static_library("sequenced_task_checker") {
445 sources = [
446 "sequenced_task_checker.h",
447 "sequenced_task_checker_impl.cc",
448 "sequenced_task_checker_impl.h",
449 ]
450 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100451 ":checks",
mbonadei95c8f652017-08-27 23:40:10 -0700452 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200453 ":rtc_task_queue",
454 ]
455}
456
457rtc_static_library("weak_ptr") {
458 sources = [
459 "weak_ptr.cc",
460 "weak_ptr.h",
461 ]
462 deps = [
463 ":rtc_base_approved",
464 ":sequenced_task_checker",
465 ]
466}
467
468rtc_static_library("rtc_numerics") {
469 sources = [
470 "numerics/exp_filter.cc",
471 "numerics/exp_filter.h",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +0100472 "numerics/moving_median_filter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200473 "numerics/percentile_filter.h",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200474 "numerics/sequence_number_util.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200475 ]
476 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100477 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200478 ":rtc_base_approved",
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100479 ":safe_compare",
Bjorn Tereliusa194e582017-10-25 13:07:09 +0200480 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200481 ]
482}
483
484config("rtc_base_warnings_config") {
485 if (is_win && is_clang) {
486 cflags = [
487 # Disable warnings failing when compiling with Clang on Windows.
488 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
489 "-Wno-sign-compare",
490 "-Wno-missing-braces",
491 ]
492 }
493}
494
495rtc_source_set("rtc_json") {
496 defines = []
497 sources = [
498 "json.cc",
499 "json.h",
500 ]
Mirko Bonadeia0e29fc2018-01-26 16:50:02 +0100501 all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200502 if (rtc_build_json) {
503 public_deps = [
504 "//third_party/jsoncpp",
505 ]
506 } else {
507 include_dirs = [ "$rtc_jsoncpp_root" ]
508
509 # When defined changes the include path for json.h to where it is
510 # expected to be when building json outside of the standalone build.
511 defines += [ "WEBRTC_EXTERNAL_JSON" ]
512 }
513}
514
mbonadei9c5e5112017-09-05 05:17:02 -0700515rtc_static_library("rtc_base") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000516 visibility = [ "*" ]
Dan Minor9c686132018-01-15 10:20:00 -0500517 public_deps = []
518 if (!build_with_mozilla) {
519 public_deps += [ ":rtc_base_generic" ]
520 }
mbonadei310e32b2017-09-07 07:36:28 -0700521 if (is_win) {
522 sources = [
523 "noop.cc",
524 ]
525 }
526 if (is_ios || is_mac) {
527 sources = [
528 "noop.mm",
529 ]
530 public_deps += [ ":rtc_base_objc" ]
531 }
532}
533
534if (is_ios || is_mac) {
535 rtc_source_set("rtc_base_objc") {
536 sources = [
537 "thread_darwin.mm",
538 ]
539 deps = [
540 ":rtc_base_generic",
541 ]
542 visibility = [ ":rtc_base" ]
543 }
544}
545
546rtc_static_library("rtc_base_generic") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200547 cflags = []
548 cflags_cc = []
549 libs = []
550 defines = []
551 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100552 ":checks",
Patrik Höglund3e113432017-12-15 14:40:10 +0100553 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200554 "..:webrtc_common",
Joachim Bauch58daf402017-12-21 22:00:34 +0100555 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -0700556 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200557 ]
558 public_deps = [
559 ":rtc_base_approved",
560 ]
561 public_configs = []
562
563 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
564
565 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200566 "asyncinvoker-inl.h",
567 "asyncinvoker.cc",
568 "asyncinvoker.h",
569 "asyncpacketsocket.cc",
570 "asyncpacketsocket.h",
571 "asyncresolverinterface.cc",
572 "asyncresolverinterface.h",
573 "asyncsocket.cc",
574 "asyncsocket.h",
575 "asynctcpsocket.cc",
576 "asynctcpsocket.h",
577 "asyncudpsocket.cc",
578 "asyncudpsocket.h",
579 "crc32.cc",
580 "crc32.h",
581 "cryptstring.cc",
582 "cryptstring.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100583 "dscp.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200584 "filerotatingstream.cc",
585 "filerotatingstream.h",
586 "fileutils.cc",
587 "fileutils.h",
588 "gunit_prod.h",
589 "helpers.cc",
590 "helpers.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200591 "httpcommon-inl.h",
592 "httpcommon.cc",
593 "httpcommon.h",
594 "ipaddress.cc",
595 "ipaddress.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100596 "keep_ref_until_done.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200597 "messagedigest.cc",
598 "messagedigest.h",
599 "messagehandler.cc",
600 "messagehandler.h",
601 "messagequeue.cc",
602 "messagequeue.h",
Zhi Huang942bc2e2017-11-13 13:26:07 -0800603 "nethelper.cc",
604 "nethelper.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200605 "nethelpers.cc",
606 "nethelpers.h",
607 "network.cc",
608 "network.h",
Patrik Höglunde2d6a062017-10-05 14:53:33 +0200609 "network_constants.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200610 "networkmonitor.cc",
611 "networkmonitor.h",
Patrik Höglund76df0df2017-12-19 11:50:21 +0100612 "networkroute.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200613 "nullsocketserver.cc",
614 "nullsocketserver.h",
615 "openssl.h",
616 "openssladapter.cc",
617 "openssladapter.h",
618 "openssldigest.cc",
619 "openssldigest.h",
620 "opensslidentity.cc",
621 "opensslidentity.h",
622 "opensslstreamadapter.cc",
623 "opensslstreamadapter.h",
624 "physicalsocketserver.cc",
625 "physicalsocketserver.h",
626 "proxyinfo.cc",
627 "proxyinfo.h",
628 "ratelimiter.cc",
629 "ratelimiter.h",
630 "rtccertificate.cc",
631 "rtccertificate.h",
632 "rtccertificategenerator.cc",
633 "rtccertificategenerator.h",
deadbeef8290ddf2017-07-11 16:56:05 -0700634 "signalthread.cc",
635 "signalthread.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200636 "sigslot.cc",
637 "sigslot.h",
Taylor Brandstettere68b6c92017-10-05 09:13:55 -0700638 "sigslotrepeater.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200639 "socket.h",
640 "socketadapters.cc",
641 "socketadapters.h",
642 "socketaddress.cc",
643 "socketaddress.h",
644 "socketaddresspair.cc",
645 "socketaddresspair.h",
646 "socketfactory.h",
647 "socketserver.h",
648 "socketstream.cc",
649 "socketstream.h",
650 "ssladapter.cc",
651 "ssladapter.h",
652 "sslfingerprint.cc",
653 "sslfingerprint.h",
654 "sslidentity.cc",
655 "sslidentity.h",
656 "sslstreamadapter.cc",
657 "sslstreamadapter.h",
658 "stream.cc",
659 "stream.h",
660 "thread.cc",
661 "thread.h",
Joachim Bauch58daf402017-12-21 22:00:34 +0100662 "zero_memory.cc",
663 "zero_memory.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200664 ]
665
mbonadei310e32b2017-09-07 07:36:28 -0700666 visibility = [
667 ":rtc_base",
668 ":rtc_base_objc",
669 ]
670
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200671 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
672 # compiler settings.
673 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
674 configs += [ "//build/config/compiler:no_chromium_code" ]
675 if (!is_win) {
676 cflags += [ "-Wno-uninitialized" ]
677 }
678
679 if (build_with_chromium) {
680 if (is_win) {
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200681 sources += [ "../../webrtc_overrides/rtc_base/win32socketinit.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200682 }
683 include_dirs = [ "../../boringssl/src/include" ]
684 public_configs += [ ":rtc_base_chromium_config" ]
685 } else {
686 configs += [ ":rtc_base_warnings_config" ]
687 sources += [
688 "callback.h",
689 "logsinks.cc",
690 "logsinks.h",
Karl Wiberg65c39222017-11-22 12:25:14 +0100691 "numerics/mathutils.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200692 "optionsfile.cc",
693 "optionsfile.h",
694 "rollingaccumulator.h",
695 "sslroots.h",
696 "transformadapter.cc",
697 "transformadapter.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200698 ]
699
700 if (is_win) {
701 sources += [
702 "win32socketinit.cc",
703 "win32socketinit.h",
704 "win32socketserver.cc",
705 "win32socketserver.h",
706 ]
707 }
708 } # !build_with_chromium
709
710 if (rtc_build_ssl) {
711 deps += [ "//third_party/boringssl" ]
Dan Minor9cdd8762018-01-16 10:40:39 -0500712 } else {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200713 configs += [ ":external_ssl_library" ]
714 }
715
716 if (is_android) {
717 sources += [
718 "ifaddrs-android.cc",
719 "ifaddrs-android.h",
720 ]
721
722 libs += [
723 "log",
724 "GLESv2",
725 ]
726 }
727
728 if (is_ios || is_mac) {
mbonadei310e32b2017-09-07 07:36:28 -0700729 sources += [ "macifaddrs_converter.cc" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200730 }
731
Joachim Bauch75f18fc2017-12-20 21:25:47 +0100732 if (rtc_use_x11) {
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200733 libs += [
734 "dl",
735 "rt",
736 "Xext",
737 "X11",
738 "Xcomposite",
739 "Xrender",
740 ]
741 }
742
743 if (is_linux) {
744 libs += [
745 "dl",
746 "rt",
747 ]
748 }
749
750 if (is_mac) {
751 sources += [
752 "macutils.cc",
753 "macutils.h",
754 ]
755 libs += [
756 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
757 "ApplicationServices.framework",
758 ]
759 }
760
761 if (is_win) {
762 sources += [
763 "win32.cc",
764 "win32.h",
765 "win32filesystem.cc",
766 "win32filesystem.h",
767 "win32securityerrors.cc",
768 "win32window.cc",
769 "win32window.h",
770 ]
771
772 libs += [
773 "crypt32.lib",
774 "iphlpapi.lib",
775 "secur32.lib",
776 ]
777
778 cflags += [
779 # Suppress warnings about WIN32_LEAN_AND_MEAN.
780 "/wd4005",
781 "/wd4703",
782 ]
783
784 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
785 }
786
787 if (is_posix) {
788 sources += [
789 "ifaddrs_converter.cc",
790 "ifaddrs_converter.h",
791 "unixfilesystem.cc",
792 "unixfilesystem.h",
793 ]
794 }
795
796 if (is_nacl) {
797 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
798 defines += [ "timezone=_timezone" ]
799 sources -= [ "ifaddrs_converter.cc" ]
800 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200801}
802
803rtc_source_set("gtest_prod") {
Per Kjellandera7f2d842018-01-10 15:54:53 +0000804 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200805 sources = [
806 "gtest_prod_util.h",
807 ]
808}
809
810config("rtc_base_tests_utils_exported_config") {
811 defines = [ "GTEST_RELATIVE_PATH" ]
812}
813
814config("rtc_base_tests_utils_warnings_config") {
815 if (is_win && is_clang) {
816 cflags = [
817 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
818 "-Wno-reorder",
819 "-Wno-sign-compare",
820 ]
821 }
822}
823
824rtc_source_set("rtc_base_tests_utils") {
825 testonly = true
826 sources = [
827 # Also use this as a convenient dumping ground for misc files that are
828 # included by multiple targets below.
829 "cpu_time.cc",
830 "cpu_time.h",
831 "fakeclock.cc",
832 "fakeclock.h",
833 "fakenetwork.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700834 "fakesslidentity.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200835 "fakesslidentity.h",
836 "firewallsocketserver.cc",
837 "firewallsocketserver.h",
Steve Antonad7bffc2018-01-22 10:21:56 -0800838 "gunit.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200839 "gunit.h",
Niels Möller3c8a5f22017-12-15 16:04:21 +0100840 "httpbase.cc",
841 "httpbase.h",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200842 "httpserver.cc",
843 "httpserver.h",
844 "md5.cc",
845 "md5.h",
846 "md5digest.cc",
847 "md5digest.h",
848 "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 "sha1.cc",
860 "sha1.h",
861 "sha1digest.cc",
862 "sha1digest.h",
863 "sigslottester.h",
864 "sigslottester.h.pump",
865 "testbase64.h",
866 "testclient.cc",
867 "testclient.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700868 "testechoserver.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200869 "testechoserver.h",
Steve Anton9de3aac2017-10-24 10:08:26 -0700870 "testutils.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200871 "testutils.h",
872 "timedelta.h",
873 "virtualsocketserver.cc",
874 "virtualsocketserver.h",
875 ]
876 configs += [ ":rtc_base_tests_utils_warnings_config" ]
877 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
878 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100879 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200880 ":rtc_base",
Patrik Höglund3e113432017-12-15 14:40:10 +0100881 ":stringutils",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200882 "../test:field_trial",
883 "../test:test_support",
Karl Wiberg80ba3332018-02-05 10:33:35 +0100884 "system:fallthrough",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200885 ]
886 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200887 "//testing/gtest",
888 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200889}
890
Tommida8781f2018-02-19 12:41:43 +0100891rtc_source_set("rtc_task_queue_for_test") {
892 visibility = [ "*" ]
893 testonly = true
894
895 sources = [
896 "task_queue_for_test.cc",
897 "task_queue_for_test.h",
898 ]
899 deps = [
900 ":checks",
901 ":rtc_base_approved",
902 ":rtc_task_queue",
903 ]
904}
905
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200906if (rtc_include_tests) {
907 rtc_source_set("rtc_base_tests_main") {
908 testonly = true
909 sources = [
910 "unittest_main.cc",
911 ]
912 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
913 deps = [
914 ":rtc_base",
915 ":rtc_base_approved",
916 ":rtc_base_tests_utils",
Bjorn Tereliusedab3012018-01-31 17:23:40 +0100917 "../system_wrappers:field_trial_default",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200918 "../test:field_trial",
919 "../test:test_support",
920 ]
921
922 public_deps = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200923 "//testing/gtest",
924 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200925 }
926
927 rtc_source_set("rtc_base_nonparallel_tests") {
928 testonly = true
929
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200930 sources = [
931 "cpu_time_unittest.cc",
932 "filerotatingstream_unittest.cc",
933 "nullsocketserver_unittest.cc",
934 "physicalsocketserver_unittest.cc",
935 "socket_unittest.cc",
936 "socket_unittest.h",
937 "socketaddress_unittest.cc",
938 ]
939 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +0100940 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200941 ":rtc_base",
942 ":rtc_base_tests_main",
943 ":rtc_base_tests_utils",
944 "../system_wrappers:system_wrappers",
945 "../test:test_support",
946 "//testing/gtest",
947 ]
948 if (is_win) {
949 sources += [ "win32socketserver_unittest.cc" ]
950 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200951 }
952
953 rtc_source_set("rtc_base_approved_unittests") {
954 testonly = true
955
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200956 sources = [
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200957 "atomicops_unittest.cc",
958 "base64_unittest.cc",
959 "basictypes_unittest.cc",
960 "bind_unittest.cc",
961 "bitbuffer_unittest.cc",
Alex Narestd0e196b2017-11-22 17:22:35 +0100962 "bitrateallocationstrategy_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200963 "buffer_unittest.cc",
964 "bufferqueue_unittest.cc",
965 "bytebuffer_unittest.cc",
966 "byteorder_unittest.cc",
967 "copyonwritebuffer_unittest.cc",
968 "criticalsection_unittest.cc",
969 "event_tracer_unittest.cc",
970 "event_unittest.cc",
971 "file_unittest.cc",
972 "function_view_unittest.cc",
973 "logging_unittest.cc",
974 "md5digest_unittest.cc",
Karl Wiberg65c39222017-11-22 12:25:14 +0100975 "numerics/histogram_percentile_counter_unittest.cc",
976 "numerics/mod_ops_unittest.cc",
977 "numerics/moving_max_counter_unittest.cc",
Karl Wiberge40468b2017-11-22 10:42:26 +0100978 "numerics/safe_compare_unittest.cc",
979 "numerics/safe_minmax_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200980 "onetimeevent_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200981 "pathutils_unittest.cc",
982 "platform_thread_unittest.cc",
983 "random_unittest.cc",
984 "rate_limiter_unittest.cc",
985 "rate_statistics_unittest.cc",
986 "ratetracker_unittest.cc",
987 "refcountedobject_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +0200988 "string_to_number_unittest.cc",
989 "stringencode_unittest.cc",
990 "stringize_macros_unittest.cc",
991 "stringutils_unittest.cc",
992 "swap_queue_unittest.cc",
993 "thread_annotations_unittest.cc",
994 "thread_checker_unittest.cc",
995 "timestampaligner_unittest.cc",
996 "timeutils_unittest.cc",
997 "virtualsocket_unittest.cc",
998 ]
999 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001000 ":checks",
1001 ":rate_limiter",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001002 ":rtc_base",
1003 ":rtc_base_approved",
1004 ":rtc_base_tests_main",
1005 ":rtc_base_tests_utils",
1006 ":rtc_task_queue",
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001007 ":safe_compare",
Patrik Höglund3e113432017-12-15 14:40:10 +01001008 ":stringutils",
kwiberg529662a2017-09-04 05:43:17 -07001009 "../api:array_view",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001010 "../system_wrappers:system_wrappers",
1011 "../test:test_support",
1012 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001013 }
1014
1015 rtc_source_set("rtc_task_queue_unittests") {
Per Kjellandera7f2d842018-01-10 15:54:53 +00001016 visibility = [ "*" ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001017 testonly = true
1018
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001019 sources = [
1020 "task_queue_unittest.cc",
1021 ]
1022 deps = [
mbonadei95c8f652017-08-27 23:40:10 -07001023 ":rtc_base_approved",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001024 ":rtc_base_tests_main",
1025 ":rtc_base_tests_utils",
1026 ":rtc_task_queue",
Tommi68561562018-02-13 19:47:50 +01001027 ":rtc_task_queue_for_test",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001028 "../test:test_support",
1029 ]
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001030 }
1031
1032 rtc_source_set("sequenced_task_checker_unittests") {
1033 testonly = true
1034
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001035 sources = [
1036 "sequenced_task_checker_unittest.cc",
1037 ]
1038 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001039 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001040 ":rtc_base_approved",
1041 ":rtc_base_tests_main",
1042 ":rtc_task_queue",
1043 ":sequenced_task_checker",
1044 "../test:test_support",
1045 ]
1046 }
1047
1048 rtc_source_set("weak_ptr_unittests") {
1049 testonly = true
1050
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001051 sources = [
1052 "weak_ptr_unittest.cc",
1053 ]
1054 deps = [
Tommi897e1362017-12-01 18:56:43 +01001055 ":rtc_base_approved_generic",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001056 ":rtc_base_tests_main",
1057 ":rtc_base_tests_utils",
1058 ":rtc_task_queue",
1059 ":weak_ptr",
1060 "../test:test_support",
1061 ]
1062 }
1063
1064 rtc_source_set("rtc_numerics_unittests") {
1065 testonly = true
1066
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001067 sources = [
1068 "numerics/exp_filter_unittest.cc",
Ilya Nikolaevskiyb9685752017-11-01 14:01:00 +01001069 "numerics/moving_median_filter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001070 "numerics/percentile_filter_unittest.cc",
Bjorn Tereliusa194e582017-10-25 13:07:09 +02001071 "numerics/sequence_number_util_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001072 ]
1073 deps = [
1074 ":rtc_base_approved",
1075 ":rtc_base_tests_main",
1076 ":rtc_numerics",
1077 "../test:test_support",
1078 ]
1079 }
1080
1081 config("rtc_base_unittests_config") {
1082 if (is_clang) {
1083 cflags = [ "-Wno-unused-const-variable" ]
1084 }
1085 }
1086 rtc_source_set("rtc_base_unittests") {
1087 testonly = true
1088
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001089 sources = [
1090 "callback_unittest.cc",
1091 "crc32_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001092 "helpers_unittest.cc",
1093 "httpbase_unittest.cc",
1094 "httpcommon_unittest.cc",
1095 "httpserver_unittest.cc",
1096 "ipaddress_unittest.cc",
1097 "memory_usage_unittest.cc",
1098 "messagedigest_unittest.cc",
1099 "messagequeue_unittest.cc",
1100 "nat_unittest.cc",
1101 "network_unittest.cc",
1102 "optionsfile_unittest.cc",
1103 "proxy_unittest.cc",
1104 "ptr_util_unittest.cc",
1105 "ratelimiter_unittest.cc",
1106 "rollingaccumulator_unittest.cc",
1107 "rtccertificate_unittest.cc",
1108 "rtccertificategenerator_unittest.cc",
1109 "sha1digest_unittest.cc",
deadbeef8290ddf2017-07-11 16:56:05 -07001110 "signalthread_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001111 "sigslot_unittest.cc",
1112 "sigslottester_unittest.cc",
1113 "stream_unittest.cc",
1114 "testclient_unittest.cc",
1115 "thread_unittest.cc",
Joachim Bauch58daf402017-12-21 22:00:34 +01001116 "zero_memory_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001117 ]
1118 if (is_win) {
1119 sources += [
1120 "win32_unittest.cc",
1121 "win32window_unittest.cc",
1122 ]
1123 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001124 if (is_posix) {
1125 sources += [
Diogo Real1dca9d52017-08-29 12:18:32 -07001126 "openssladapter_unittest.cc",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001127 "ssladapter_unittest.cc",
1128 "sslidentity_unittest.cc",
1129 "sslstreamadapter_unittest.cc",
1130 ]
1131 }
1132 deps = [
Patrik Höglunda8005cf2017-12-13 16:05:42 +01001133 ":checks",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001134 ":rtc_base_tests_main",
1135 ":rtc_base_tests_utils",
Patrik Höglund3e113432017-12-15 14:40:10 +01001136 ":stringutils",
Joachim Bauch58daf402017-12-21 22:00:34 +01001137 "../api:array_view",
kwiberg84f6a3f2017-09-05 08:43:13 -07001138 "../api:optional",
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001139 "../test:test_support",
1140 ]
1141 public_deps = [
1142 ":rtc_base",
1143 ]
1144 configs += [ ":rtc_base_unittests_config" ]
Diogo Real1dca9d52017-08-29 12:18:32 -07001145 if (build_with_chromium) {
1146 include_dirs = [ "../../boringssl/src/include" ]
1147 }
1148 if (rtc_build_ssl) {
1149 deps += [ "//third_party/boringssl" ]
1150 } else {
1151 configs += [ ":external_ssl_library" ]
1152 }
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001153 }
1154}
1155
Henrik Kjellander73e21802017-06-20 08:38:58 +02001156if (is_android) {
Mirko Bonadeifbb3b7d2017-11-07 15:36:33 +00001157 rtc_android_library("base_java") {
Henrik Kjellanderc0362762017-06-29 08:03:04 +02001158 java_files = [
1159 "java/src/org/webrtc/ContextUtils.java",
1160 "java/src/org/webrtc/Logging.java",
1161 "java/src/org/webrtc/Size.java",
1162 "java/src/org/webrtc/ThreadUtils.java",
1163 ]
Henrik Kjellander73e21802017-06-20 08:38:58 +02001164 }
1165}