blob: fe00059a852415413c9b4fcc0fdb30a72f884fae [file] [log] [blame]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +00001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2#
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
9import("//build/config/crypto.gni")
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +000010import("//build/config/ui.gni")
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000011import("../build/webrtc.gni")
12
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +020013if (is_android) {
14 import("//build/config/android/config.gni")
15 import("//build/config/android/rules.gni")
16}
ehmaldonado2334b702016-10-07 02:47:38 -070017if (is_win) {
ehmaldonado5c639892016-10-17 12:28:44 -070018 import("//build/config/clang/clang.gni")
ehmaldonado2334b702016-10-07 02:47:38 -070019}
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +020020
kjellander6ceab082016-10-28 05:44:03 -070021group("base") {
22 public_deps = [
23 ":rtc_base",
24 ":rtc_base_approved",
25 ":rtc_task_queue",
26 ]
27 if (is_android) {
28 public_deps += [ ":base_java" ]
29 }
30}
31
kjellander84ba8b62016-04-24 23:03:07 -070032config("rtc_base_approved_all_dependent_config") {
33 if (is_mac && !build_with_chromium) {
34 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
35 }
36}
37
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000038config("rtc_base_config") {
kjellandera101e562016-10-27 02:34:31 -070039 defines = [ "FEATURE_ENABLE_SSL" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000040}
41
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000042config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020043 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000044}
45
46config("openssl_config") {
47 defines = [
48 "SSL_USE_OPENSSL",
49 "HAVE_OPENSSL_SSL_H",
50 ]
51}
52
kjellanderb1f14062016-04-25 00:01:36 -070053config("rtc_base_all_dependent_config") {
54 if (is_ios) {
55 libs = [
56 "CFNetwork.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070057
kjellanderb1f14062016-04-25 00:01:36 -070058 #"Foundation.framework", # Already in //build/config:default_libs.
59 "Security.framework",
60 "SystemConfiguration.framework",
kjellander3bcedd32016-06-08 01:14:15 -070061 "UIKit.framework",
kjellanderb1f14062016-04-25 00:01:36 -070062 ]
63 }
64 if (is_mac) {
65 libs = [
66 "Cocoa.framework",
67 "Foundation.framework",
68 "IOKit.framework",
69 "Security.framework",
70 "SystemConfiguration.framework",
71 ]
kjellanderb1f14062016-04-25 00:01:36 -070072 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000073}
74
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000075if (is_linux && !build_with_chromium) {
76 # Provides the same functionality as the //crypto:platform target, which
77 # WebRTC cannot use as we don't sync src/crypto from Chromium.
78 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070079 deps = [
80 "//third_party/boringssl",
81 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000082 }
83}
84
kjellanderec5c9062016-08-19 01:07:30 -070085if (!rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000086 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000087 assert(rtc_ssl_root != "",
88 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
89 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000090 }
91}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000092
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000093# The subset of rtc_base approved for use outside of libjingle.
ehmaldonado38a21322016-09-02 04:10:34 -070094rtc_static_library("rtc_base_approved") {
tommic06b1332016-05-14 11:31:40 -070095 defines = []
aleloi16f55a12016-08-23 08:08:23 -070096 libs = []
Peter Boström11e02292015-11-25 21:36:14 +010097 deps = []
kjellander84ba8b62016-04-24 23:03:07 -070098 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099
100 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100101 "array_view.h",
maxmorinec623742016-09-15 05:11:55 -0700102 "arraysize.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200103 "atomicops.h",
philipela9a1ac22016-10-28 14:23:14 +0200104 "base64.cc",
105 "base64.h",
ehmaldonadoda8dcfb2017-01-04 07:11:23 -0800106 "basictypes.h",
Tommicc4fdde2016-04-22 19:34:59 +0200107 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -0700108 "bitbuffer.cc",
109 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200110 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200111 "bufferqueue.cc",
112 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700113 "bytebuffer.cc",
114 "bytebuffer.h",
115 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000116 "checks.cc",
117 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100118 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700119 "copyonwritebuffer.cc",
120 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200121 "criticalsection.cc",
122 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800123 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000124 "event.cc",
125 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000126 "event_tracer.cc",
127 "event_tracer.h",
Viktor Palmkvist4ec6a0c2016-09-02 13:38:32 +0200128 "file.cc",
129 "file.h",
zijiehedd87d582016-12-06 15:04:02 -0800130 "flags.cc",
131 "flags.h",
ivoc48052312016-08-25 04:43:45 -0700132 "format_macros.h",
kwiberg24c7c122016-09-28 11:57:10 -0700133 "function_view.h",
kwiberg77eab702016-09-28 17:42:01 -0700134 "ignore_wundef.h",
Taylor Brandstetter5d97a9a2016-06-10 14:17:27 -0700135 "location.cc",
136 "location.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000137 "md5.cc",
138 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000139 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000140 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700141 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700142 "onetimeevent.h",
kwiberg2b11fd22016-09-09 03:35:24 -0700143 "optional.cc",
Karl Wibergbe579832015-11-10 22:34:18 +0100144 "optional.h",
zijiehedd87d582016-12-06 15:04:02 -0800145 "pathutils.cc",
146 "pathutils.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000147 "platform_file.cc",
148 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200149 "platform_thread.cc",
150 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800151 "platform_thread_types.h",
Peter Boström02bafc62016-07-01 12:45:15 +0200152 "race_checker.cc",
153 "race_checker.h",
terelius84e78f92015-12-10 01:50:55 -0800154 "random.cc",
155 "random.h",
sprangcd349d92016-07-13 09:11:28 -0700156 "rate_limiter.cc",
157 "rate_limiter.h",
tkchinf75d0082016-02-23 22:49:42 -0800158 "rate_statistics.cc",
159 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700160 "ratetracker.cc",
161 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800162 "refcount.h",
perkj0489e492016-10-20 00:24:01 -0700163 "refcountedobject.h",
kwiberg8a44e1d2016-11-01 12:04:26 -0700164 "safe_compare.h",
Tommid44c0772016-03-11 17:12:32 -0800165 "safe_conversions.h",
166 "safe_conversions_impl.h",
kwibergac554ee2016-09-02 00:39:33 -0700167 "sanitizer.h",
tommi04af8392016-02-14 08:11:10 -0800168 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000169 "stringencode.cc",
170 "stringencode.h",
171 "stringutils.cc",
172 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700173 "swap_queue.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000174 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000175 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000176 "thread_checker.h",
177 "thread_checker_impl.cc",
178 "thread_checker_impl.h",
nisse191b3592016-06-22 08:36:53 -0700179 "timestampaligner.cc",
180 "timestampaligner.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000181 "timeutils.cc",
182 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000183 "trace_event.h",
kwibergd3134032016-09-05 07:46:20 -0700184 "type_traits.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000185 ]
Noah Richards915590e2015-04-22 15:43:08 -0700186
aleloi16f55a12016-08-23 08:08:23 -0700187 if (is_android) {
188 libs += [ "log" ]
189 }
190
Viktor Palmkvist4ec6a0c2016-09-02 13:38:32 +0200191 if (is_posix) {
192 sources += [ "file_posix.cc" ]
193 }
194
195 if (is_win) {
196 sources += [ "file_win.cc" ]
197 }
198
Peter Boström11e02292015-11-25 21:36:14 +0100199 if (build_with_chromium) {
200 # Dependency on chromium's logging (in //base).
201 deps += [ "//base:base" ]
202 sources += [
203 "../../webrtc_overrides/webrtc/base/logging.cc",
204 "../../webrtc_overrides/webrtc/base/logging.h",
205 ]
Peter Boström11e02292015-11-25 21:36:14 +0100206 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700207 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200208 "logging.cc",
209 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200210 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700211 ]
212 }
ehmaldonado2334b702016-10-07 02:47:38 -0700213 if (is_component_build && is_win) {
214 # Copy the VS runtime DLLs into the isolate so that they don't have to be
215 # preinstalled on the target machine. The debug runtimes have a "d" at
216 # the end.
217 # This is a copy of https://codereview.chromium.org/1783973002.
218 # TODO(ehmaldonado): We'd like Chromium to make this changes easier to use,
219 # so we don't have to copy their changes and risk breakages.
220 # See http://crbug.com/653569
221 if (is_debug) {
222 vcrt_suffix = "d"
223 } else {
224 vcrt_suffix = ""
225 }
226
227 # These runtime files are copied to the output directory by the
228 # vs_toolchain script that runs as part of toolchain configuration.
ehmaldonado809f9772016-11-03 11:26:34 -0700229 data = [
230 "$root_out_dir/msvcp140${vcrt_suffix}.dll",
231 "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
232 "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
ehmaldonado2334b702016-10-07 02:47:38 -0700233
ehmaldonado809f9772016-11-03 11:26:34 -0700234 # Universal Windows 10 CRT files
235 "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
236 "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
237 "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
238 "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
239 "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
240 "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
241 "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
242 "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
243 "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
244 "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
245 "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
246 "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
247 "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
248 "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
249 "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
250 "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
251 "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
252 "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
253 "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
254 "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
255 "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
256 "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
257 "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
258 "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
259 "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
260 "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
261 "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
262 "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
263 "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
264 "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
265 "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
266 "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
267 "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
268 "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
269 "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
270 "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
271 "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
272 "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
273 "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
274 "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
275 "$root_out_dir/ucrtbase${vcrt_suffix}.dll",
276 ]
ehmaldonado2334b702016-10-07 02:47:38 -0700277 if (is_asan) {
278 if (current_cpu == "x64") {
279 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
280 } else {
281 data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-i386.dll" ]
282 }
283 }
284 }
tommi09c60da2016-05-24 11:40:35 -0700285}
286
Per33b9c8f2016-07-15 08:25:42 +0200287config("enable_libevent_config") {
288 defines = [ "WEBRTC_BUILD_LIBEVENT" ]
289}
290
ehmaldonado38a21322016-09-02 04:10:34 -0700291rtc_static_library("rtc_task_queue") {
kjellanderbac04122016-06-02 02:18:48 -0700292 public_deps = [
293 ":rtc_base_approved",
294 ]
tommi09c60da2016-05-24 11:40:35 -0700295
296 sources = [
perkj9c16fe82016-07-12 15:04:07 -0700297 "sequenced_task_checker.h",
298 "sequenced_task_checker_impl.cc",
299 "sequenced_task_checker_impl.h",
perkj8ff860a2016-10-03 00:30:04 -0700300 "weak_ptr.cc",
301 "weak_ptr.h",
tommi09c60da2016-05-24 11:40:35 -0700302 ]
tommic06b1332016-05-14 11:31:40 -0700303
perkj84bd5c72016-08-30 23:01:06 -0700304 if (build_with_chromium) {
phoglundff274392016-05-17 03:44:28 -0700305 sources += [
perkj84bd5c72016-08-30 23:01:06 -0700306 "../../webrtc_overrides/webrtc/base/task_queue.cc",
307 "../../webrtc_overrides/webrtc/base/task_queue.h",
phoglundff274392016-05-17 03:44:28 -0700308 ]
309 } else {
perkj84bd5c72016-08-30 23:01:06 -0700310 sources += [
311 "task_queue.h",
312 "task_queue_posix.h",
313 ]
314 if (rtc_build_libevent) {
315 deps = [
316 "//base/third_party/libevent",
phoglundff274392016-05-17 03:44:28 -0700317 ]
318 }
perkj84bd5c72016-08-30 23:01:06 -0700319
320 if (rtc_enable_libevent) {
321 sources += [
322 "task_queue_libevent.cc",
323 "task_queue_posix.cc",
324 ]
325 all_dependent_configs = [ ":enable_libevent_config" ]
326 } else {
327 if (is_mac || is_ios) {
328 sources += [
329 "task_queue_gcd.cc",
330 "task_queue_posix.cc",
331 ]
332 }
333 if (is_win) {
334 sources += [ "task_queue_win.cc" ]
335 }
phoglundff274392016-05-17 03:44:28 -0700336 }
tommic06b1332016-05-14 11:31:40 -0700337 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000338}
339
tereliusbc5d9212017-01-13 09:14:33 -0800340rtc_static_library("rtc_numerics") {
minyue69b627d2016-11-24 11:01:09 -0800341 sources = [
tereliusbc5d9212017-01-13 09:14:33 -0800342 "numerics/exp_filter.cc",
343 "numerics/exp_filter.h",
344 "numerics/percentile_filter.h",
tereliuscb861e02016-11-30 06:51:57 -0800345 ]
346 deps = [
347 ":rtc_base_approved",
minyue69b627d2016-11-24 11:01:09 -0800348 ]
349}
350
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700351config("rtc_base_warnings_config") {
352 if (is_win && is_clang) {
353 cflags = [
354 # Disable warnings failing when compiling with Clang on Windows.
355 # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
356 "-Wno-sign-compare",
357 "-Wno-missing-braces",
358 ]
359 }
360}
361
ehmaldonado38a21322016-09-02 04:10:34 -0700362rtc_static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 cflags = []
364 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000365 libs = []
kjellandera101e562016-10-27 02:34:31 -0700366 defines = []
kjellandera8a7ef62016-04-05 08:13:31 -0700367 deps = [
368 "..:webrtc_common",
369 ]
Tommid44c0772016-03-11 17:12:32 -0800370 public_deps = [
371 ":rtc_base_approved",
372 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 configs += [
sdefresne0db3db92016-03-21 11:20:28 -0700375 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000376 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 ]
378
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000379 public_configs = [
sdefresne0db3db92016-03-21 11:20:28 -0700380 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000381 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 ]
383
kjellanderb1f14062016-04-25 00:01:36 -0700384 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385
386 sources = [
kthelgasond5472242016-09-09 03:19:48 -0700387 "applefilesystem.mm",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700388 "asyncinvoker-inl.h",
389 "asyncinvoker.cc",
390 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000391 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000392 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000393 "asyncresolverinterface.cc",
394 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "asyncsocket.cc",
396 "asyncsocket.h",
397 "asynctcpsocket.cc",
398 "asynctcpsocket.h",
399 "asyncudpsocket.cc",
400 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "autodetectproxy.cc",
402 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "common.cc",
404 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "crc32.cc",
406 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000407 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "diskcache.cc",
410 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700411 "filerotatingstream.cc",
412 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000413 "fileutils.cc",
414 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000415 "gunit_prod.h",
416 "helpers.cc",
417 "helpers.h",
418 "httpbase.cc",
419 "httpbase.h",
honghaized9dccf2016-11-18 15:27:03 -0800420 "httpclient.cc",
421 "httpclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000422 "httpcommon-inl.h",
423 "httpcommon.cc",
424 "httpcommon.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425 "ipaddress.cc",
426 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000427 "messagedigest.cc",
428 "messagedigest.h",
429 "messagehandler.cc",
430 "messagehandler.h",
431 "messagequeue.cc",
432 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000433 "nethelpers.cc",
434 "nethelpers.h",
435 "network.cc",
436 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700437 "networkmonitor.cc",
438 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700439 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700441 "openssl.h",
442 "openssladapter.cc",
443 "openssladapter.h",
444 "openssldigest.cc",
445 "openssldigest.h",
446 "opensslidentity.cc",
447 "opensslidentity.h",
448 "opensslstreamadapter.cc",
449 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450 "physicalsocketserver.cc",
451 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000452 "proxydetect.cc",
453 "proxydetect.h",
454 "proxyinfo.cc",
455 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456 "ratelimiter.cc",
457 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200458 "rtccertificate.cc",
459 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200460 "rtccertificategenerator.cc",
461 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000462 "sha1.cc",
463 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000464 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800466 "sharedexclusivelock.cc",
467 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468 "signalthread.cc",
469 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000470 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000471 "sigslot.h",
472 "sigslotrepeater.h",
473 "socket.h",
474 "socketadapters.cc",
475 "socketadapters.h",
476 "socketaddress.cc",
477 "socketaddress.h",
478 "socketaddresspair.cc",
479 "socketaddresspair.h",
480 "socketfactory.h",
ivoc3324cf72016-10-05 01:23:16 -0700481 "socketpool.cc",
482 "socketpool.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000483 "socketserver.h",
484 "socketstream.cc",
485 "socketstream.h",
486 "ssladapter.cc",
487 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000488 "sslfingerprint.cc",
489 "sslfingerprint.h",
490 "sslidentity.cc",
491 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000492 "sslsocketfactory.cc",
493 "sslsocketfactory.h",
494 "sslstreamadapter.cc",
495 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000496 "stream.cc",
497 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000498 "task.cc",
499 "task.h",
500 "taskparent.cc",
501 "taskparent.h",
502 "taskrunner.cc",
503 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 "thread.cc",
505 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000506 ]
507
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700508 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
509 # compiler settings.
ehmaldonado38a21322016-09-02 04:10:34 -0700510 suppressed_configs += [ "//build/config/compiler:chromium_code" ]
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700511 configs += [ "//build/config/compiler:no_chromium_code" ]
512 if (!is_win) {
513 cflags += [ "-Wno-uninitialized" ]
514 }
515
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700518 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 }
ehmaldonado7495c8c2016-12-07 03:30:45 -0800520 include_dirs = [ "../../boringssl/src/include" ]
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000521 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000522 } else {
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700523 configs += [ ":rtc_base_warnings_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000524 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000525 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000527 "httpserver.cc",
528 "httpserver.h",
529 "json.cc",
530 "json.h",
tkchin93411912015-07-22 12:12:17 -0700531 "logsinks.cc",
532 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 "optionsfile.cc",
535 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 "proxyserver.cc",
537 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200539 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000540 "sslconfig.h",
541 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700542 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 "testclient.cc",
544 "testclient.h",
nisse8e7577c2016-10-06 01:37:37 -0700545 "transformadapter.cc",
546 "transformadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000547 "virtualsocketserver.cc",
548 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000549 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 ]
551
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000552 if (is_win) {
553 sources += [
554 "diskcache_win32.cc",
555 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000556 "win32socketinit.cc",
557 "win32socketinit.h",
558 "win32socketserver.cc",
559 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 ]
561 }
ehmaldonado4bc4d272016-08-25 04:15:40 -0700562
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000563 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000564 deps += [ "//third_party/jsoncpp" ]
565 } else {
kjellanderec5c9062016-08-19 01:07:30 -0700566 include_dirs = [ "$rtc_jsoncpp_root" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000567
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000568 # When defined changes the include path for json.h to where it is
569 # expected to be when building json outside of the standalone build.
570 defines += [ "WEBRTC_EXTERNAL_JSON" ]
571 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000572 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000573
svaldez7f7a8192016-04-18 11:13:11 -0700574 if (rtc_build_ssl) {
575 deps += [ "//third_party/boringssl" ]
576 } else {
kjellanderec5c9062016-08-19 01:07:30 -0700577 configs += [ ":external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000578 }
579
580 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000581 sources += [
582 "ifaddrs-android.cc",
583 "ifaddrs-android.h",
584 ]
585
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000586 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200588 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000589 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000590 }
591
kjellandera8a7ef62016-04-05 08:13:31 -0700592 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200593 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700594 "maccocoathreadhelper.h",
595 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200596 "macconversion.cc",
597 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700598 "macifaddrs_converter.cc",
599 "scoped_autorelease_pool.h",
600 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200601 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 }
603
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000604 if (use_x11) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000605 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000606 "dl",
607 "rt",
608 "Xext",
609 "X11",
610 "Xcomposite",
611 "Xrender",
612 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000613 }
614
615 if (is_linux) {
616 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000617 "dl",
618 "rt",
619 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000620 }
621
622 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000623 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000624 "macutils.cc",
625 "macutils.h",
626 ]
kjellander3bcedd32016-06-08 01:14:15 -0700627 libs += [
628 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
629 "ApplicationServices.framework",
kjellander3bcedd32016-06-08 01:14:15 -0700630 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000631 }
632
633 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000634 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000635 "win32.cc",
636 "win32.h",
637 "win32filesystem.cc",
638 "win32filesystem.h",
639 "win32securityerrors.cc",
640 "win32window.cc",
641 "win32window.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000642 "winping.cc",
643 "winping.h",
644 ]
645
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000646 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000647 "crypt32.lib",
648 "iphlpapi.lib",
649 "secur32.lib",
650 ]
651
652 cflags += [
653 # Suppress warnings about WIN32_LEAN_AND_MEAN.
654 "/wd4005",
655 "/wd4703",
656 ]
657
658 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000659 }
660
kjellandera8a7ef62016-04-05 08:13:31 -0700661 if (is_posix) {
662 sources += [
663 "ifaddrs_converter.cc",
664 "ifaddrs_converter.h",
665 "unixfilesystem.cc",
666 "unixfilesystem.h",
667 ]
668 if (is_debug) {
669 # The Chromium build/common.gypi defines this for all posix
670 # _except_ for ios & mac. We want it there as well, e.g.
671 # because ASSERT and friends trigger off of it.
672 defines += [ "_DEBUG" ]
673 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000674 }
675
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700676 if (is_nacl) {
677 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
678 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800679 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700680 }
ehmaldonado3e3b6f22016-08-29 02:56:06 -0700681 if (is_win && is_clang) {
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700682 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
ehmaldonado38a21322016-09-02 04:10:34 -0700683 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
ehmaldonadod02fe4b2016-08-26 13:31:24 -0700684 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000685}
tkchin42f580e2015-11-26 23:18:23 -0800686
ehmaldonado894c2bb2017-01-05 06:03:24 -0800687rtc_source_set("gtest_prod") {
688 sources = [
689 "gtest_prod_util.h",
690 ]
691}
692
ehmaldonadoda8dcfb2017-01-04 07:11:23 -0800693if (rtc_include_tests) {
ehmaldonado894c2bb2017-01-05 06:03:24 -0800694 config("rtc_base_tests_utils_exported_config") {
695 defines = [ "GTEST_RELATIVE_PATH" ]
696 }
697
698 config("rtc_base_tests_utils_warnings_config") {
699 if (is_win && is_clang) {
700 cflags = [
701 # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
702 "-Wno-reorder",
703 "-Wno-sign-compare",
704 ]
705 }
706 }
707
michaelt566d8202017-01-12 10:17:38 -0800708 rtc_source_set("rtc_base_tests_main") {
709 testonly = true
710 sources = [
711 "unittest_main.cc",
712 ]
713 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
714 deps = [
715 ":rtc_base_tests_utils",
716 ]
717 public_deps = [
718 "//testing/gmock",
719 "//testing/gtest",
720 ]
721
722 if (!build_with_chromium && is_clang) {
723 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
724 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
725 }
726 }
727
ehmaldonado894c2bb2017-01-05 06:03:24 -0800728 rtc_source_set("rtc_base_tests_utils") {
729 testonly = true
730 sources = [
731 # Also use this as a convenient dumping ground for misc files that are
732 # included by multiple targets below.
733 "fakeclock.cc",
734 "fakeclock.h",
735 "fakenetwork.h",
736 "fakesslidentity.h",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800737 "firewallsocketserver.cc",
738 "firewallsocketserver.h",
739 "gunit.h",
740 "natserver.cc",
741 "natserver.h",
742 "natsocketfactory.cc",
743 "natsocketfactory.h",
744 "nattypes.cc",
745 "nattypes.h",
746 "sigslottester.h",
747 "sigslottester.h.pump",
748 "testbase64.h",
749 "testechoserver.h",
750 "testutils.h",
751 "timedelta.h",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800752 ]
753 configs += [ ":rtc_base_tests_utils_warnings_config" ]
754 public_configs = [ ":rtc_base_tests_utils_exported_config" ]
755 deps = [
756 ":rtc_base",
757 "../test:field_trial",
758 "../test:test_support",
759 ]
760 public_deps = [
761 "//testing/gmock",
762 "//testing/gtest",
763 ]
764
765 if (!build_with_chromium && is_clang) {
766 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
767 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
768 }
769 }
770
771 rtc_source_set("rtc_base_nonparallel_tests") {
772 testonly = true
773 sources = [
774 "nullsocketserver_unittest.cc",
775 "physicalsocketserver_unittest.cc",
776 "socket_unittest.cc",
777 "socket_unittest.h",
778 "socketaddress_unittest.cc",
779 "virtualsocket_unittest.cc",
780 ]
781 deps = [
782 ":rtc_base",
michaelt566d8202017-01-12 10:17:38 -0800783 ":rtc_base_tests_main",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800784 "//testing/gtest",
785 ]
786 if (is_win) {
787 sources += [ "win32socketserver_unittest.cc" ]
788 }
789
790 if (!build_with_chromium && is_clang) {
791 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
792 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
793 }
794 }
795
796 rtc_source_set("rtc_base_approved_unittests") {
797 testonly = true
798 sources = [
799 "array_view_unittest.cc",
800 "atomicops_unittest.cc",
801 "base64_unittest.cc",
802 "basictypes_unittest.cc",
803 "bind_unittest.cc",
804 "bitbuffer_unittest.cc",
805 "buffer_unittest.cc",
806 "bufferqueue_unittest.cc",
807 "bytebuffer_unittest.cc",
808 "byteorder_unittest.cc",
809 "copyonwritebuffer_unittest.cc",
810 "criticalsection_unittest.cc",
811 "event_tracer_unittest.cc",
812 "event_unittest.cc",
813 "file_unittest.cc",
814 "function_view_unittest.cc",
815 "logging_unittest.cc",
816 "md5digest_unittest.cc",
817 "mod_ops_unittest.cc",
818 "onetimeevent_unittest.cc",
819 "optional_unittest.cc",
820 "pathutils_unittest.cc",
821 "platform_thread_unittest.cc",
822 "random_unittest.cc",
823 "rate_limiter_unittest.cc",
824 "rate_statistics_unittest.cc",
825 "ratetracker_unittest.cc",
826 "refcountedobject_unittest.cc",
827 "safe_compare_unittest.cc",
828 "stringencode_unittest.cc",
829 "stringutils_unittest.cc",
830 "swap_queue_unittest.cc",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800831 "thread_annotations_unittest.cc",
832 "thread_checker_unittest.cc",
833 "timestampaligner_unittest.cc",
834 "timeutils_unittest.cc",
835 ]
836 deps = [
837 ":rtc_base_approved",
michaelt566d8202017-01-12 10:17:38 -0800838 ":rtc_base_tests_main",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800839 ]
840 if (!build_with_chromium && is_clang) {
841 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
842 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
843 }
844 }
845
846 rtc_source_set("rtc_task_queue_unittests") {
847 testonly = true
848 sources = [
849 "sequenced_task_checker_unittest.cc",
850 "task_queue_unittest.cc",
851 "weak_ptr_unittest.cc",
852 ]
853 deps = [
michaelt566d8202017-01-12 10:17:38 -0800854 ":rtc_base_tests_main",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800855 ":rtc_task_queue",
856 ]
857 if (!build_with_chromium && is_clang) {
858 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
859 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
860 }
861 }
862
tereliusbc5d9212017-01-13 09:14:33 -0800863 rtc_source_set("rtc_numerics_unittests") {
ehmaldonado894c2bb2017-01-05 06:03:24 -0800864 testonly = true
865 sources = [
tereliusbc5d9212017-01-13 09:14:33 -0800866 "numerics/exp_filter_unittest.cc",
867 "numerics/percentile_filter_unittest.cc",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800868 ]
869 deps = [
michaelt566d8202017-01-12 10:17:38 -0800870 ":rtc_base_tests_main",
tereliusbc5d9212017-01-13 09:14:33 -0800871 ":rtc_numerics",
ehmaldonado894c2bb2017-01-05 06:03:24 -0800872 ]
873 }
874
ehmaldonadoda8dcfb2017-01-04 07:11:23 -0800875 config("rtc_base_unittests_config") {
876 if (is_clang) {
877 cflags = [ "-Wno-unused-const-variable" ]
878 }
879 }
880 rtc_source_set("rtc_base_unittests") {
881 testonly = true
882 sources = [
883 "autodetectproxy_unittest.cc",
884 "callback_unittest.cc",
885 "crc32_unittest.cc",
886 "filerotatingstream_unittest.cc",
887 "fileutils_unittest.cc",
888 "helpers_unittest.cc",
889 "httpbase_unittest.cc",
890 "httpcommon_unittest.cc",
891 "httpserver_unittest.cc",
892 "ipaddress_unittest.cc",
893 "messagedigest_unittest.cc",
894 "messagequeue_unittest.cc",
895 "nat_unittest.cc",
896 "network_unittest.cc",
897 "optionsfile_unittest.cc",
898 "proxy_unittest.cc",
899 "proxydetect_unittest.cc",
900 "ratelimiter_unittest.cc",
901 "rollingaccumulator_unittest.cc",
902 "rtccertificate_unittest.cc",
903 "rtccertificategenerator_unittest.cc",
904 "scopedptrcollection_unittest.cc",
905 "sha1digest_unittest.cc",
906 "sharedexclusivelock_unittest.cc",
907 "signalthread_unittest.cc",
908 "sigslot_unittest.cc",
909 "sigslottester_unittest.cc",
910 "stream_unittest.cc",
911 "task_unittest.cc",
912 "testclient_unittest.cc",
913 "thread_unittest.cc",
914 ]
915 if (is_win) {
916 sources += [
917 "win32_unittest.cc",
918 "win32window_unittest.cc",
919 ]
920 }
921 if (is_mac) {
922 sources += [ "macutils_unittest.cc" ]
923 }
924 if (is_posix) {
925 sources += [
926 "ssladapter_unittest.cc",
927 "sslidentity_unittest.cc",
928 "sslstreamadapter_unittest.cc",
929 ]
930 }
931 deps = [
michaelt566d8202017-01-12 10:17:38 -0800932 ":rtc_base_tests_main",
ehmaldonadoda8dcfb2017-01-04 07:11:23 -0800933 ]
934 public_deps = [
935 ":rtc_base",
936 ]
937 configs += [ ":rtc_base_unittests_config" ]
938 if (!build_with_chromium && is_clang) {
939 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
940 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
941 }
942 }
943}
944
mbonadeia62a82b2017-01-20 06:15:34 -0800945if (!build_with_chromium && is_android) {
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200946 android_library("base_java") {
947 java_files = [
948 "java/src/org/webrtc/Logging.java",
949 "java/src/org/webrtc/Size.java",
950 "java/src/org/webrtc/ThreadUtils.java",
951 ]
Sami Kalliomaki9c0c75b2016-06-29 14:55:00 +0200952 }
953}