blob: e971d0b0fee614ef289964018f65cd046fe6e1c1 [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
kjellander70bed7d2015-11-23 17:23:44 -080013import("//build_overrides/webrtc.gni")
kjellander70bed7d2015-11-23 17:23:44 -080014
kjellander84ba8b62016-04-24 23:03:07 -070015config("rtc_base_approved_all_dependent_config") {
16 if (is_mac && !build_with_chromium) {
17 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
18 }
19}
20
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000021config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000022 include_dirs = [
23 "//third_party/jsoncpp/overrides/include",
24 "//third_party/jsoncpp/source/include",
25 ]
26
27 defines = [
28 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000029 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000030 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000031}
32
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000033config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020034 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000035}
36
37config("openssl_config") {
38 defines = [
39 "SSL_USE_OPENSSL",
40 "HAVE_OPENSSL_SSL_H",
41 ]
42}
43
kjellanderb1f14062016-04-25 00:01:36 -070044config("rtc_base_all_dependent_config") {
45 if (is_ios) {
46 libs = [
47 "CFNetwork.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070048
kjellanderb1f14062016-04-25 00:01:36 -070049 #"Foundation.framework", # Already in //build/config:default_libs.
50 "Security.framework",
51 "SystemConfiguration.framework",
kjellander3bcedd32016-06-08 01:14:15 -070052 "UIKit.framework",
kjellanderb1f14062016-04-25 00:01:36 -070053 ]
54 }
55 if (is_mac) {
56 libs = [
57 "Cocoa.framework",
58 "Foundation.framework",
59 "IOKit.framework",
60 "Security.framework",
61 "SystemConfiguration.framework",
62 ]
63 if (current_cpu == "x86") {
kjellander781e0c02016-06-13 05:41:11 -070064 libs += [ "Carbon.framework" ]
kjellanderb1f14062016-04-25 00:01:36 -070065 }
66 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000067}
68
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000069if (is_linux && !build_with_chromium) {
70 # Provides the same functionality as the //crypto:platform target, which
71 # WebRTC cannot use as we don't sync src/crypto from Chromium.
72 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070073 deps = [
74 "//third_party/boringssl",
75 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000076 }
77}
78
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000079if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000080 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000081 assert(rtc_ssl_root != "",
82 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
83 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000084 }
85}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000086
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000087# The subset of rtc_base approved for use outside of libjingle.
88static_library("rtc_base_approved") {
tommic06b1332016-05-14 11:31:40 -070089 defines = []
Peter Boström11e02292015-11-25 21:36:14 +010090 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000091 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000092 public_configs = [ "..:common_inherited_config" ]
kjellander84ba8b62016-04-24 23:03:07 -070093 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000094
95 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +010096 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +020097 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +020098 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -070099 "bitbuffer.cc",
100 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200101 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200102 "bufferqueue.cc",
103 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700104 "bytebuffer.cc",
105 "bytebuffer.h",
106 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000107 "checks.cc",
108 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100109 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700110 "copyonwritebuffer.cc",
111 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200112 "criticalsection.cc",
113 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800114 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000115 "event.cc",
116 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000117 "event_tracer.cc",
118 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000119 "exp_filter.cc",
120 "exp_filter.h",
Taylor Brandstetter5d97a9a2016-06-10 14:17:27 -0700121 "location.cc",
122 "location.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000123 "md5.cc",
124 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000125 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000126 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700127 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700128 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100129 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000130 "platform_file.cc",
131 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200132 "platform_thread.cc",
133 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800134 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800135 "random.cc",
136 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800137 "rate_statistics.cc",
138 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700139 "ratetracker.cc",
140 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800141 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800142 "safe_conversions.h",
143 "safe_conversions_impl.h",
tommi04af8392016-02-14 08:11:10 -0800144 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 "stringencode.cc",
146 "stringencode.h",
147 "stringutils.cc",
148 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700149 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700150 "systeminfo.cc",
151 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000152 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000153 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000154 "thread_checker.h",
155 "thread_checker_impl.cc",
156 "thread_checker_impl.h",
nisse191b3592016-06-22 08:36:53 -0700157 "timestampaligner.cc",
158 "timestampaligner.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 "timeutils.cc",
160 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000161 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000162 ]
Noah Richards915590e2015-04-22 15:43:08 -0700163
Peter Boström11e02292015-11-25 21:36:14 +0100164 if (build_with_chromium) {
165 # Dependency on chromium's logging (in //base).
166 deps += [ "//base:base" ]
167 sources += [
168 "../../webrtc_overrides/webrtc/base/logging.cc",
169 "../../webrtc_overrides/webrtc/base/logging.h",
170 ]
171 include_dirs = [ "../../webrtc_overrides" ]
172 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700173 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200174 "logging.cc",
175 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200176 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700177 ]
178 }
tommi09c60da2016-05-24 11:40:35 -0700179}
180
181static_library("rtc_task_queue") {
kjellanderbac04122016-06-02 02:18:48 -0700182 public_deps = [
183 ":rtc_base_approved",
184 ]
tommi09c60da2016-05-24 11:40:35 -0700185 configs += [ "..:common_config" ]
186
187 sources = [
188 "task_queue.h",
189 "task_queue_posix.h",
190 ]
tommic06b1332016-05-14 11:31:40 -0700191
phoglundff274392016-05-17 03:44:28 -0700192 if (rtc_build_libevent) {
kjellanderbac04122016-06-02 02:18:48 -0700193 deps = [
194 "//base/third_party/libevent",
195 ]
tommic06b1332016-05-14 11:31:40 -0700196 }
tommi09c60da2016-05-24 11:40:35 -0700197
phoglundff274392016-05-17 03:44:28 -0700198 if (rtc_enable_libevent) {
199 sources += [
200 "task_queue_libevent.cc",
201 "task_queue_posix.cc",
202 ]
203 } else {
phoglundff274392016-05-17 03:44:28 -0700204 if (is_mac || is_ios) {
205 sources += [
206 "task_queue_gcd.cc",
207 "task_queue_posix.cc",
208 ]
209 }
210 if (is_win) {
211 sources += [ "task_queue_win.cc" ]
212 }
tommic06b1332016-05-14 11:31:40 -0700213 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000214}
215
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000216static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 cflags = []
218 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000219 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700220 deps = [
221 "..:webrtc_common",
222 ]
Tommid44c0772016-03-11 17:12:32 -0800223 public_deps = [
224 ":rtc_base_approved",
225 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700229 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000230 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 ]
232
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000233 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700235 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000236 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 ]
238
kjellanderb1f14062016-04-25 00:01:36 -0700239 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
240
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200241 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242
243 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000244 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "asyncfile.cc",
246 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700247 "asyncinvoker-inl.h",
248 "asyncinvoker.cc",
249 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000250 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000252 "asyncresolverinterface.cc",
253 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "asyncsocket.cc",
255 "asyncsocket.h",
256 "asynctcpsocket.cc",
257 "asynctcpsocket.h",
258 "asyncudpsocket.cc",
259 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "autodetectproxy.cc",
261 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "base64.cc",
263 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "common.cc",
265 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "crc32.cc",
267 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000268 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "diskcache.cc",
271 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700272 "filerotatingstream.cc",
273 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "fileutils.cc",
275 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000276 "firewallsocketserver.cc",
277 "firewallsocketserver.h",
278 "flags.cc",
279 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000280 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "gunit_prod.h",
282 "helpers.cc",
283 "helpers.h",
284 "httpbase.cc",
285 "httpbase.h",
286 "httpclient.cc",
287 "httpclient.h",
288 "httpcommon-inl.h",
289 "httpcommon.cc",
290 "httpcommon.h",
291 "httprequest.cc",
292 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "iosfilesystem.mm",
294 "ipaddress.cc",
295 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "messagedigest.cc",
298 "messagedigest.h",
299 "messagehandler.cc",
300 "messagehandler.h",
301 "messagequeue.cc",
302 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "nethelpers.cc",
304 "nethelpers.h",
305 "network.cc",
306 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700307 "networkmonitor.cc",
308 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700309 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700311 "openssl.h",
312 "openssladapter.cc",
313 "openssladapter.h",
314 "openssldigest.cc",
315 "openssldigest.h",
316 "opensslidentity.cc",
317 "opensslidentity.h",
318 "opensslstreamadapter.cc",
319 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "pathutils.cc",
321 "pathutils.h",
322 "physicalsocketserver.cc",
323 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 "proxydetect.cc",
325 "proxydetect.h",
326 "proxyinfo.cc",
327 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 "ratelimiter.cc",
329 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200330 "rtccertificate.cc",
331 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200332 "rtccertificategenerator.cc",
333 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "sha1.cc",
335 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000336 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800338 "sharedexclusivelock.cc",
339 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "signalthread.cc",
341 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000342 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "sigslot.h",
344 "sigslotrepeater.h",
345 "socket.h",
346 "socketadapters.cc",
347 "socketadapters.h",
348 "socketaddress.cc",
349 "socketaddress.h",
350 "socketaddresspair.cc",
351 "socketaddresspair.h",
352 "socketfactory.h",
353 "socketpool.cc",
354 "socketpool.h",
355 "socketserver.h",
356 "socketstream.cc",
357 "socketstream.h",
358 "ssladapter.cc",
359 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "sslfingerprint.cc",
361 "sslfingerprint.h",
362 "sslidentity.cc",
363 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "sslsocketfactory.cc",
365 "sslsocketfactory.h",
366 "sslstreamadapter.cc",
367 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "stream.cc",
369 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "task.cc",
371 "task.h",
372 "taskparent.cc",
373 "taskparent.h",
374 "taskrunner.cc",
375 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "thread.cc",
377 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "timing.cc",
379 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "urlencode.cc",
381 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "worker.cc",
383 "worker.h",
384 ]
385
386 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700388 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000390
391 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700392 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000393 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000394 ]
395
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000396 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000397 } else {
398 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "bandwidthsmoother.cc",
400 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "httpserver.cc",
404 "httpserver.h",
405 "json.cc",
406 "json.h",
tkchin93411912015-07-22 12:12:17 -0700407 "logsinks.cc",
408 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "mathutils.h",
410 "multipart.cc",
411 "multipart.h",
412 "natserver.cc",
413 "natserver.h",
414 "natsocketfactory.cc",
415 "natsocketfactory.h",
416 "nattypes.cc",
417 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418 "optionsfile.cc",
419 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000420 "profiler.cc",
421 "profiler.h",
422 "proxyserver.cc",
423 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000424 "referencecountedsingletonfactory.h",
425 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200426 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000427 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000428 "sslconfig.h",
429 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700430 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000431 "testclient.cc",
432 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000433 "transformadapter.cc",
434 "transformadapter.h",
435 "versionparsing.cc",
436 "versionparsing.h",
437 "virtualsocketserver.cc",
438 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000439 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200441 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000442 ]
443
kjellandera8a7ef62016-04-05 08:13:31 -0700444 if (is_linux) {
445 sources += [
446 "dbus.cc",
447 "dbus.h",
448 "libdbusglibsymboltable.cc",
449 "libdbusglibsymboltable.h",
450 "linuxfdwalk.c",
451 "linuxfdwalk.h",
452 ]
453 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000454
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000455 if (is_posix) {
456 sources += [
457 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000458 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000459 "posix.cc",
460 "posix.h",
461 ]
462 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000463
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000464 if (is_mac) {
465 sources += [
466 "macasyncsocket.cc",
467 "macasyncsocket.h",
468 "maccocoasocketserver.h",
469 "maccocoasocketserver.mm",
470 "macsocketserver.cc",
471 "macsocketserver.h",
472 "macwindowpicker.cc",
473 "macwindowpicker.h",
474 ]
475 }
476
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000477 if (is_win) {
478 sources += [
479 "diskcache_win32.cc",
480 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000481 "win32regkey.cc",
482 "win32regkey.h",
483 "win32socketinit.cc",
484 "win32socketinit.h",
485 "win32socketserver.cc",
486 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487 ]
488 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000489 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000490 deps += [ "//third_party/jsoncpp" ]
491 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000492 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000493
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000494 # When defined changes the include path for json.h to where it is
495 # expected to be when building json outside of the standalone build.
496 defines += [ "WEBRTC_EXTERNAL_JSON" ]
497 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000498 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000499
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000500 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000501 # compiler settings.
502 configs -= [ "//build/config/compiler:chromium_code" ]
503 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000504 if (!is_win) {
505 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000506 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507
svaldez7f7a8192016-04-18 11:13:11 -0700508 if (rtc_build_ssl) {
509 deps += [ "//third_party/boringssl" ]
510 } else {
511 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 }
513
514 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000515 sources += [
516 "ifaddrs-android.cc",
517 "ifaddrs-android.h",
518 ]
519
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000520 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200522 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000523 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 }
525
kjellandera8a7ef62016-04-05 08:13:31 -0700526 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200527 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700528 "maccocoathreadhelper.h",
529 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200530 "macconversion.cc",
531 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700532 "macifaddrs_converter.cc",
533 "scoped_autorelease_pool.h",
534 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200535 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 }
537
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000538 if (use_x11) {
539 sources += [
540 "x11windowpicker.cc",
541 "x11windowpicker.h",
542 ]
543 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000544 "dl",
545 "rt",
546 "Xext",
547 "X11",
548 "Xcomposite",
549 "Xrender",
550 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000551 }
552
553 if (is_linux) {
554 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000555 "dl",
556 "rt",
557 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 }
559
560 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000561 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000562 "macutils.cc",
563 "macutils.h",
564 ]
kjellander3bcedd32016-06-08 01:14:15 -0700565 libs += [
566 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
567 "ApplicationServices.framework",
568
569 # For GetGestalt in macutils.cc.
570 "CoreServices.framework",
571 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000572 }
573
574 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000575 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000576 "win32.cc",
577 "win32.h",
578 "win32filesystem.cc",
579 "win32filesystem.h",
580 "win32securityerrors.cc",
581 "win32window.cc",
582 "win32window.h",
583 "win32windowpicker.cc",
584 "win32windowpicker.h",
585 "winfirewall.cc",
586 "winfirewall.h",
587 "winping.cc",
588 "winping.h",
589 ]
590
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000591 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 "crypt32.lib",
593 "iphlpapi.lib",
594 "secur32.lib",
595 ]
596
597 cflags += [
598 # Suppress warnings about WIN32_LEAN_AND_MEAN.
599 "/wd4005",
600 "/wd4703",
601 ]
602
603 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 }
605
kjellandera8a7ef62016-04-05 08:13:31 -0700606 if (is_posix) {
607 sources += [
608 "ifaddrs_converter.cc",
609 "ifaddrs_converter.h",
610 "unixfilesystem.cc",
611 "unixfilesystem.h",
612 ]
613 if (is_debug) {
614 # The Chromium build/common.gypi defines this for all posix
615 # _except_ for ios & mac. We want it there as well, e.g.
616 # because ASSERT and friends trigger off of it.
617 defines += [ "_DEBUG" ]
618 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000619 }
620
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000621 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000622 defines += [ "CARBON_DEPRECATED=YES" ]
623 }
624
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000625 if (is_linux || is_android) {
626 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000627 "linux.cc",
628 "linux.h",
629 ]
630 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700631
632 if (is_nacl) {
633 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
634 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800635 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700636 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000637}
tkchin42f580e2015-11-26 23:18:23 -0800638
kjellander988d31e2016-02-05 00:23:50 -0800639source_set("gtest_prod") {
640 sources = [
641 "gtest_prod_util.h",
642 ]
643}
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200644
kjellander@webrtc.orgaff499c2016-06-06 23:04:31 +0200645if (rtc_include_tests) {
kjellander82a94492016-06-12 22:12:01 -0700646 config("rtc_base_tests_utils_exported_config") {
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200647 defines = [ "GTEST_RELATIVE_PATH" ]
648 }
649
kjellander82a94492016-06-12 22:12:01 -0700650 source_set("rtc_base_tests_utils") {
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200651 testonly = true
652 sources = [
653 # Also use this as a convenient dumping ground for misc files that are
654 # included by multiple targets below.
kjellander82a94492016-06-12 22:12:01 -0700655 "fakeclock.cc",
656 "fakeclock.h",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200657 "fakenetwork.h",
658 "fakesslidentity.h",
659 "faketaskrunner.h",
660 "gunit.h",
661 "testbase64.h",
662 "testechoserver.h",
663 "testutils.h",
kjellander82a94492016-06-12 22:12:01 -0700664 "timedelta.h",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200665 "unittest_main.cc",
666 ]
667 configs += [ "..:common_config" ]
668 public_configs = [
669 "..:common_inherited_config",
kjellander82a94492016-06-12 22:12:01 -0700670 ":rtc_base_tests_utils_exported_config",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200671 ]
672 deps = [
673 ":rtc_base",
674 "../test:field_trial",
Niels Möllerb00dc382016-06-16 12:44:30 +0200675 "../test:test_support",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200676 ]
677 public_deps = [
678 "//testing/gtest",
679 ]
680 }
681}