blob: 583cf6881316fdb0b4096de04a82aecceea0cddb [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",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000157 "timeutils.cc",
158 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000159 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 ]
Noah Richards915590e2015-04-22 15:43:08 -0700161
Peter Boström11e02292015-11-25 21:36:14 +0100162 if (build_with_chromium) {
163 # Dependency on chromium's logging (in //base).
164 deps += [ "//base:base" ]
165 sources += [
166 "../../webrtc_overrides/webrtc/base/logging.cc",
167 "../../webrtc_overrides/webrtc/base/logging.h",
168 ]
169 include_dirs = [ "../../webrtc_overrides" ]
170 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700171 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200172 "logging.cc",
173 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200174 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700175 ]
176 }
tommi09c60da2016-05-24 11:40:35 -0700177}
178
179static_library("rtc_task_queue") {
kjellanderbac04122016-06-02 02:18:48 -0700180 public_deps = [
181 ":rtc_base_approved",
182 ]
tommi09c60da2016-05-24 11:40:35 -0700183 configs += [ "..:common_config" ]
184
185 sources = [
186 "task_queue.h",
187 "task_queue_posix.h",
188 ]
tommic06b1332016-05-14 11:31:40 -0700189
phoglundff274392016-05-17 03:44:28 -0700190 if (rtc_build_libevent) {
kjellanderbac04122016-06-02 02:18:48 -0700191 deps = [
192 "//base/third_party/libevent",
193 ]
tommic06b1332016-05-14 11:31:40 -0700194 }
tommi09c60da2016-05-24 11:40:35 -0700195
phoglundff274392016-05-17 03:44:28 -0700196 if (rtc_enable_libevent) {
197 sources += [
198 "task_queue_libevent.cc",
199 "task_queue_posix.cc",
200 ]
201 } else {
phoglundff274392016-05-17 03:44:28 -0700202 if (is_mac || is_ios) {
203 sources += [
204 "task_queue_gcd.cc",
205 "task_queue_posix.cc",
206 ]
207 }
208 if (is_win) {
209 sources += [ "task_queue_win.cc" ]
210 }
tommic06b1332016-05-14 11:31:40 -0700211 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000212}
213
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000214static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 cflags = []
216 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000217 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700218 deps = [
219 "..:webrtc_common",
220 ]
Tommid44c0772016-03-11 17:12:32 -0800221 public_deps = [
222 ":rtc_base_approved",
223 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700227 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000228 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 ]
230
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000231 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700233 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000234 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 ]
236
kjellanderb1f14062016-04-25 00:01:36 -0700237 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
238
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200239 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240
241 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000242 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "asyncfile.cc",
244 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700245 "asyncinvoker-inl.h",
246 "asyncinvoker.cc",
247 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000248 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000250 "asyncresolverinterface.cc",
251 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "asyncsocket.cc",
253 "asyncsocket.h",
254 "asynctcpsocket.cc",
255 "asynctcpsocket.h",
256 "asyncudpsocket.cc",
257 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "autodetectproxy.cc",
259 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "base64.cc",
261 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "common.cc",
263 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "crc32.cc",
265 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000266 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "diskcache.cc",
269 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700270 "filerotatingstream.cc",
271 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "fileutils.cc",
273 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "firewallsocketserver.cc",
275 "firewallsocketserver.h",
276 "flags.cc",
277 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000278 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "gunit_prod.h",
280 "helpers.cc",
281 "helpers.h",
282 "httpbase.cc",
283 "httpbase.h",
284 "httpclient.cc",
285 "httpclient.h",
286 "httpcommon-inl.h",
287 "httpcommon.cc",
288 "httpcommon.h",
289 "httprequest.cc",
290 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000291 "iosfilesystem.mm",
292 "ipaddress.cc",
293 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "messagedigest.cc",
296 "messagedigest.h",
297 "messagehandler.cc",
298 "messagehandler.h",
299 "messagequeue.cc",
300 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "nethelpers.cc",
302 "nethelpers.h",
303 "network.cc",
304 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700305 "networkmonitor.cc",
306 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700307 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700309 "openssl.h",
310 "openssladapter.cc",
311 "openssladapter.h",
312 "openssldigest.cc",
313 "openssldigest.h",
314 "opensslidentity.cc",
315 "opensslidentity.h",
316 "opensslstreamadapter.cc",
317 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 "pathutils.cc",
319 "pathutils.h",
320 "physicalsocketserver.cc",
321 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "proxydetect.cc",
323 "proxydetect.h",
324 "proxyinfo.cc",
325 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "ratelimiter.cc",
327 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200328 "rtccertificate.cc",
329 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200330 "rtccertificategenerator.cc",
331 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "sha1.cc",
333 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000334 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800336 "sharedexclusivelock.cc",
337 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "signalthread.cc",
339 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000340 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "sigslot.h",
342 "sigslotrepeater.h",
343 "socket.h",
344 "socketadapters.cc",
345 "socketadapters.h",
346 "socketaddress.cc",
347 "socketaddress.h",
348 "socketaddresspair.cc",
349 "socketaddresspair.h",
350 "socketfactory.h",
351 "socketpool.cc",
352 "socketpool.h",
353 "socketserver.h",
354 "socketstream.cc",
355 "socketstream.h",
356 "ssladapter.cc",
357 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "sslfingerprint.cc",
359 "sslfingerprint.h",
360 "sslidentity.cc",
361 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "sslsocketfactory.cc",
363 "sslsocketfactory.h",
364 "sslstreamadapter.cc",
365 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "stream.cc",
367 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "task.cc",
369 "task.h",
370 "taskparent.cc",
371 "taskparent.h",
372 "taskrunner.cc",
373 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "thread.cc",
375 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "timing.cc",
377 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "urlencode.cc",
379 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "worker.cc",
381 "worker.h",
382 ]
383
384 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700386 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000388
389 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700390 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000391 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000392 ]
393
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000394 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000395 } else {
396 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "bandwidthsmoother.cc",
398 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "httpserver.cc",
402 "httpserver.h",
403 "json.cc",
404 "json.h",
tkchin93411912015-07-22 12:12:17 -0700405 "logsinks.cc",
406 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 "mathutils.h",
408 "multipart.cc",
409 "multipart.h",
410 "natserver.cc",
411 "natserver.h",
412 "natsocketfactory.cc",
413 "natsocketfactory.h",
414 "nattypes.cc",
415 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "optionsfile.cc",
417 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418 "profiler.cc",
419 "profiler.h",
420 "proxyserver.cc",
421 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000422 "referencecountedsingletonfactory.h",
423 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200424 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000426 "sslconfig.h",
427 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700428 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000429 "testclient.cc",
430 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000431 "transformadapter.cc",
432 "transformadapter.h",
433 "versionparsing.cc",
434 "versionparsing.h",
435 "virtualsocketserver.cc",
436 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000437 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000438 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200439 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 ]
441
kjellandera8a7ef62016-04-05 08:13:31 -0700442 if (is_linux) {
443 sources += [
444 "dbus.cc",
445 "dbus.h",
446 "libdbusglibsymboltable.cc",
447 "libdbusglibsymboltable.h",
448 "linuxfdwalk.c",
449 "linuxfdwalk.h",
450 ]
451 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000452
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000453 if (is_posix) {
454 sources += [
455 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000456 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000457 "posix.cc",
458 "posix.h",
459 ]
460 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000462 if (is_mac) {
463 sources += [
464 "macasyncsocket.cc",
465 "macasyncsocket.h",
466 "maccocoasocketserver.h",
467 "maccocoasocketserver.mm",
468 "macsocketserver.cc",
469 "macsocketserver.h",
470 "macwindowpicker.cc",
471 "macwindowpicker.h",
472 ]
473 }
474
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000475 if (is_win) {
476 sources += [
477 "diskcache_win32.cc",
478 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000479 "win32regkey.cc",
480 "win32regkey.h",
481 "win32socketinit.cc",
482 "win32socketinit.h",
483 "win32socketserver.cc",
484 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000485 ]
486 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000487 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000488 deps += [ "//third_party/jsoncpp" ]
489 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000490 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000492 # When defined changes the include path for json.h to where it is
493 # expected to be when building json outside of the standalone build.
494 defines += [ "WEBRTC_EXTERNAL_JSON" ]
495 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000496 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000497
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000498 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000499 # compiler settings.
500 configs -= [ "//build/config/compiler:chromium_code" ]
501 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000502 if (!is_win) {
503 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000504 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505
svaldez7f7a8192016-04-18 11:13:11 -0700506 if (rtc_build_ssl) {
507 deps += [ "//third_party/boringssl" ]
508 } else {
509 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000510 }
511
512 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000513 sources += [
514 "ifaddrs-android.cc",
515 "ifaddrs-android.h",
516 ]
517
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200520 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000522 }
523
kjellandera8a7ef62016-04-05 08:13:31 -0700524 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200525 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700526 "maccocoathreadhelper.h",
527 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200528 "macconversion.cc",
529 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700530 "macifaddrs_converter.cc",
531 "scoped_autorelease_pool.h",
532 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200533 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 }
535
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000536 if (use_x11) {
537 sources += [
538 "x11windowpicker.cc",
539 "x11windowpicker.h",
540 ]
541 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000542 "dl",
543 "rt",
544 "Xext",
545 "X11",
546 "Xcomposite",
547 "Xrender",
548 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000549 }
550
551 if (is_linux) {
552 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000553 "dl",
554 "rt",
555 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000556 }
557
558 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000559 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000560 "macutils.cc",
561 "macutils.h",
562 ]
kjellander3bcedd32016-06-08 01:14:15 -0700563 libs += [
564 # For ProcessInformationCopyDictionary in unixfilesystem.cc.
565 "ApplicationServices.framework",
566
567 # For GetGestalt in macutils.cc.
568 "CoreServices.framework",
569 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 }
571
572 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000573 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000574 "win32.cc",
575 "win32.h",
576 "win32filesystem.cc",
577 "win32filesystem.h",
578 "win32securityerrors.cc",
579 "win32window.cc",
580 "win32window.h",
581 "win32windowpicker.cc",
582 "win32windowpicker.h",
583 "winfirewall.cc",
584 "winfirewall.h",
585 "winping.cc",
586 "winping.h",
587 ]
588
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000589 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000590 "crypt32.lib",
591 "iphlpapi.lib",
592 "secur32.lib",
593 ]
594
595 cflags += [
596 # Suppress warnings about WIN32_LEAN_AND_MEAN.
597 "/wd4005",
598 "/wd4703",
599 ]
600
601 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 }
603
kjellandera8a7ef62016-04-05 08:13:31 -0700604 if (is_posix) {
605 sources += [
606 "ifaddrs_converter.cc",
607 "ifaddrs_converter.h",
608 "unixfilesystem.cc",
609 "unixfilesystem.h",
610 ]
611 if (is_debug) {
612 # The Chromium build/common.gypi defines this for all posix
613 # _except_ for ios & mac. We want it there as well, e.g.
614 # because ASSERT and friends trigger off of it.
615 defines += [ "_DEBUG" ]
616 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000617 }
618
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000619 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000620 defines += [ "CARBON_DEPRECATED=YES" ]
621 }
622
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000623 if (is_linux || is_android) {
624 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000625 "linux.cc",
626 "linux.h",
627 ]
628 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700629
630 if (is_nacl) {
631 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
632 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800633 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700634 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000635}
tkchin42f580e2015-11-26 23:18:23 -0800636
kjellander988d31e2016-02-05 00:23:50 -0800637source_set("gtest_prod") {
638 sources = [
639 "gtest_prod_util.h",
640 ]
641}
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200642
kjellander@webrtc.orgaff499c2016-06-06 23:04:31 +0200643if (rtc_include_tests) {
kjellander82a94492016-06-12 22:12:01 -0700644 config("rtc_base_tests_utils_exported_config") {
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200645 defines = [ "GTEST_RELATIVE_PATH" ]
646 }
647
kjellander82a94492016-06-12 22:12:01 -0700648 source_set("rtc_base_tests_utils") {
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200649 testonly = true
650 sources = [
651 # Also use this as a convenient dumping ground for misc files that are
652 # included by multiple targets below.
kjellander82a94492016-06-12 22:12:01 -0700653 "fakeclock.cc",
654 "fakeclock.h",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200655 "fakenetwork.h",
656 "fakesslidentity.h",
657 "faketaskrunner.h",
658 "gunit.h",
659 "testbase64.h",
660 "testechoserver.h",
661 "testutils.h",
kjellander82a94492016-06-12 22:12:01 -0700662 "timedelta.h",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200663 "unittest_main.cc",
664 ]
665 configs += [ "..:common_config" ]
666 public_configs = [
667 "..:common_inherited_config",
kjellander82a94492016-06-12 22:12:01 -0700668 ":rtc_base_tests_utils_exported_config",
kjellander@webrtc.org3ee56142016-06-03 15:57:02 +0200669 ]
670 deps = [
671 ":rtc_base",
672 "../test:field_trial",
673 ]
674 public_deps = [
675 "//testing/gtest",
676 ]
677 }
678}