blob: 0a62567d9603fa80f80f2ec63e51240f000fc8a3 [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 -080013# Enable OpenSSL (BoringSSL) for iOS. This is covered in webrtc/supplement.gypi
14# for the GYP build.
15import("//build_overrides/webrtc.gni")
16if (is_ios && !build_with_chromium) {
17 use_openssl = true
18}
19
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000020config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000021 include_dirs = [
22 "//third_party/jsoncpp/overrides/include",
23 "//third_party/jsoncpp/source/include",
24 ]
25
26 defines = [
27 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000028 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000029 ]
30
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020031 if (is_posix) {
32 # TODO(henrike): issue 3307, make rtc_base build without disabling
33 # these flags.
34 cflags_cc = [ "-Wno-non-virtual-dtor" ]
35 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000036}
37
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000038config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020039 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000040}
41
42config("openssl_config") {
43 defines = [
44 "SSL_USE_OPENSSL",
45 "HAVE_OPENSSL_SSL_H",
46 ]
47}
48
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000049config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000050 libs = [
hjonaa32c3e2015-12-13 19:58:11 -080051 "AVFoundation.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070052 "CFNetwork.framework",
53
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"UIKit.framework", # Already included in //build/config:default_libs.
59 ]
60}
61
62config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000063 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000064 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020065
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000066 #"Foundation.framework", # Already included in //build/config:default_libs.
67 #"IOKit.framework", # Already included in //build/config:default_libs.
68 #"Security.framework", # Already included in //build/config:default_libs.
69 "SystemConfiguration.framework",
70 ]
71}
72
73config("mac_x86_config") {
74 libs = [
75 #"Carbon.framework", # Already included in //build/config:default_libs.
76 ]
77}
78
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000079if (is_linux && !build_with_chromium) {
80 # Provides the same functionality as the //crypto:platform target, which
81 # WebRTC cannot use as we don't sync src/crypto from Chromium.
82 group("linux_system_ssl") {
83 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020084 deps = [
85 "//third_party/boringssl",
86 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000087 }
88 }
89}
90
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000091if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000092 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000093 assert(rtc_ssl_root != "",
94 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
95 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000096 }
97}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000098
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099# The subset of rtc_base approved for use outside of libjingle.
100static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +0100101 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000102 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000103 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000104
105 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100106 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200107 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700108 "bitbuffer.cc",
109 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200110 "buffer.cc",
111 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200112 "bufferqueue.cc",
113 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700114 "bytebuffer.cc",
115 "bytebuffer.h",
116 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000117 "checks.cc",
118 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100119 "constructormagic.h",
Tommi494f2092015-04-27 17:39:23 +0200120 "criticalsection.cc",
121 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800122 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000123 "event.cc",
124 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000125 "event_tracer.cc",
126 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000127 "exp_filter.cc",
128 "exp_filter.h",
129 "md5.cc",
130 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000131 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100133 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000134 "platform_file.cc",
135 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200136 "platform_thread.cc",
137 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800138 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800139 "random.cc",
140 "random.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000141 "safe_conversions.h",
142 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200143 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000144 "stringencode.cc",
145 "stringencode.h",
146 "stringutils.cc",
147 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700148 "systeminfo.cc",
149 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000150 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000151 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000152 "thread_checker.h",
153 "thread_checker_impl.cc",
154 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000155 "timeutils.cc",
156 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000157 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000158 ]
Noah Richards915590e2015-04-22 15:43:08 -0700159
Peter Boström11e02292015-11-25 21:36:14 +0100160 if (build_with_chromium) {
161 # Dependency on chromium's logging (in //base).
162 deps += [ "//base:base" ]
163 sources += [
164 "../../webrtc_overrides/webrtc/base/logging.cc",
165 "../../webrtc_overrides/webrtc/base/logging.h",
166 ]
167 include_dirs = [ "../../webrtc_overrides" ]
168 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700169 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200170 "logging.cc",
171 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700172 ]
173 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000174}
175
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000176static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 cflags = []
178 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000179 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180 deps = [
181 ":rtc_base_approved",
182 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000186 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 ]
188
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000189 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000191 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 ]
193
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200194 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195
196 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000197 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "asyncfile.cc",
199 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700200 "asyncinvoker-inl.h",
201 "asyncinvoker.cc",
202 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000203 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000205 "asyncresolverinterface.cc",
206 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "asyncsocket.cc",
208 "asyncsocket.h",
209 "asynctcpsocket.cc",
210 "asynctcpsocket.h",
211 "asyncudpsocket.cc",
212 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "autodetectproxy.cc",
214 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "base64.cc",
216 "base64.h",
217 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "common.cc",
219 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "crc32.cc",
221 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000222 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "diskcache.cc",
225 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700226 "filerotatingstream.cc",
227 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "fileutils.cc",
229 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "firewallsocketserver.cc",
231 "firewallsocketserver.h",
232 "flags.cc",
233 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000234 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "gunit_prod.h",
236 "helpers.cc",
237 "helpers.h",
238 "httpbase.cc",
239 "httpbase.h",
240 "httpclient.cc",
241 "httpclient.h",
242 "httpcommon-inl.h",
243 "httpcommon.cc",
244 "httpcommon.h",
245 "httprequest.cc",
246 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "iosfilesystem.mm",
248 "ipaddress.cc",
249 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "messagedigest.cc",
253 "messagedigest.h",
254 "messagehandler.cc",
255 "messagehandler.h",
256 "messagequeue.cc",
257 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "nethelpers.cc",
259 "nethelpers.h",
260 "network.cc",
261 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700262 "networkmonitor.cc",
263 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "pathutils.cc",
266 "pathutils.h",
267 "physicalsocketserver.cc",
268 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "proxydetect.cc",
270 "proxydetect.h",
271 "proxyinfo.cc",
272 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "ratelimiter.cc",
274 "ratelimiter.h",
275 "ratetracker.cc",
276 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200277 "rtccertificate.cc",
278 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "scoped_autorelease_pool.h",
280 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "sha1.cc",
282 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000283 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "signalthread.cc",
286 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000287 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "sigslot.h",
289 "sigslotrepeater.h",
290 "socket.h",
291 "socketadapters.cc",
292 "socketadapters.h",
293 "socketaddress.cc",
294 "socketaddress.h",
295 "socketaddresspair.cc",
296 "socketaddresspair.h",
297 "socketfactory.h",
298 "socketpool.cc",
299 "socketpool.h",
300 "socketserver.h",
301 "socketstream.cc",
302 "socketstream.h",
303 "ssladapter.cc",
304 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "sslfingerprint.cc",
306 "sslfingerprint.h",
307 "sslidentity.cc",
308 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "sslsocketfactory.cc",
310 "sslsocketfactory.h",
311 "sslstreamadapter.cc",
312 "sslstreamadapter.h",
313 "sslstreamadapterhelper.cc",
314 "sslstreamadapterhelper.h",
315 "stream.cc",
316 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000317 "task.cc",
318 "task.h",
319 "taskparent.cc",
320 "taskparent.h",
321 "taskrunner.cc",
322 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "thread.cc",
324 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "timing.cc",
326 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "urlencode.cc",
328 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "worker.cc",
330 "worker.h",
331 ]
332
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000333 if (is_posix) {
334 sources += [
335 "unixfilesystem.cc",
336 "unixfilesystem.h",
337 ]
338 }
339
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000341 deps += [ "..:webrtc_common" ]
342
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700344 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000346
347 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700348 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000349 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000350 ]
351
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000352 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353 } else {
354 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "bandwidthsmoother.cc",
356 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "bind.h",
358 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 "callback.h",
360 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 "fileutils_mock.h",
362 "genericslot.h",
363 "genericslot.h.pump",
364 "httpserver.cc",
365 "httpserver.h",
366 "json.cc",
367 "json.h",
tkchin93411912015-07-22 12:12:17 -0700368 "logsinks.cc",
369 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "mathutils.h",
371 "multipart.cc",
372 "multipart.h",
373 "natserver.cc",
374 "natserver.h",
375 "natsocketfactory.cc",
376 "natsocketfactory.h",
377 "nattypes.cc",
378 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "optionsfile.cc",
380 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "profiler.cc",
382 "profiler.h",
383 "proxyserver.cc",
384 "proxyserver.h",
385 "refcount.h",
386 "referencecountedsingletonfactory.h",
387 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200389 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000391 "sharedexclusivelock.cc",
392 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "sslconfig.h",
394 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "testclient.cc",
396 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "transformadapter.cc",
398 "transformadapter.h",
399 "versionparsing.cc",
400 "versionparsing.h",
401 "virtualsocketserver.cc",
402 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200405 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 ]
407
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000408 deps += [ "..:webrtc_common" ]
409
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000410 if (is_posix) {
411 sources += [
412 "latebindingsymboltable.cc",
413 "latebindingsymboltable.cc.def",
414 "latebindingsymboltable.h",
415 "latebindingsymboltable.h.def",
416 "posix.cc",
417 "posix.h",
418 ]
419 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000420
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 if (is_linux) {
422 sources += [
423 "dbus.cc",
424 "dbus.h",
425 "libdbusglibsymboltable.cc",
426 "libdbusglibsymboltable.h",
427 "linuxfdwalk.c",
428 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000429 ]
430 }
431
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000432 if (is_mac) {
433 sources += [
434 "macasyncsocket.cc",
435 "macasyncsocket.h",
436 "maccocoasocketserver.h",
437 "maccocoasocketserver.mm",
438 "macsocketserver.cc",
439 "macsocketserver.h",
440 "macwindowpicker.cc",
441 "macwindowpicker.h",
442 ]
443 }
444
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000445 if (is_win) {
446 sources += [
447 "diskcache_win32.cc",
448 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000449 "win32regkey.cc",
450 "win32regkey.h",
451 "win32socketinit.cc",
452 "win32socketinit.h",
453 "win32socketserver.cc",
454 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000455 ]
456 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000457 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000458 deps += [ "//third_party/jsoncpp" ]
459 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000460 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000462 # When defined changes the include path for json.h to where it is
463 # expected to be when building json outside of the standalone build.
464 defines += [ "WEBRTC_EXTERNAL_JSON" ]
465 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000466 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000467
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000468 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000469 # compiler settings.
470 configs -= [ "//build/config/compiler:chromium_code" ]
471 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000472 if (!is_win) {
473 cflags += [ "-Wno-uninitialized" ]
474 cflags_cc += [ "-Wno-non-virtual-dtor" ]
475 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000476
477 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000478 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000479 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000480 deps += [ "//third_party/boringssl" ]
481 } else {
482 configs += [ "external_ssl_library" ]
483 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000484 sources += [
485 "openssl.h",
486 "openssladapter.cc",
487 "openssladapter.h",
488 "openssldigest.cc",
489 "openssldigest.h",
490 "opensslidentity.cc",
491 "opensslidentity.h",
492 "opensslstreamadapter.cc",
493 "opensslstreamadapter.h",
494 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000495 }
496
497 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000498 sources += [
499 "ifaddrs-android.cc",
500 "ifaddrs-android.h",
501 ]
502
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000503 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200505 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000506 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507 }
508
509 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200510 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200511
512 sources += [
513 "macconversion.cc",
514 "macconversion.h",
515 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 }
517
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 if (use_x11) {
519 sources += [
520 "x11windowpicker.cc",
521 "x11windowpicker.h",
522 ]
523 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 "dl",
525 "rt",
526 "Xext",
527 "X11",
528 "Xcomposite",
529 "Xrender",
530 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000531 }
532
533 if (is_linux) {
534 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000535 "dl",
536 "rt",
537 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 }
539
540 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000541 sources += [
542 "maccocoathreadhelper.h",
543 "maccocoathreadhelper.mm",
544 "macconversion.cc",
545 "macconversion.h",
546 "macutils.cc",
547 "macutils.h",
548 ]
549
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 all_dependent_configs = [ ":mac_config" ]
551
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000552 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000553 all_dependent_configs += [ ":mac_x86_config" ]
554 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000555 }
556
557 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000558 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000559 "win32.cc",
560 "win32.h",
561 "win32filesystem.cc",
562 "win32filesystem.h",
563 "win32securityerrors.cc",
564 "win32window.cc",
565 "win32window.h",
566 "win32windowpicker.cc",
567 "win32windowpicker.h",
568 "winfirewall.cc",
569 "winfirewall.h",
570 "winping.cc",
571 "winping.h",
572 ]
573
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000574 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000575 "crypt32.lib",
576 "iphlpapi.lib",
577 "secur32.lib",
578 ]
579
580 cflags += [
581 # Suppress warnings about WIN32_LEAN_AND_MEAN.
582 "/wd4005",
583 "/wd4703",
584 ]
585
586 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 }
588
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000589 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000590 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000591 # _except_ for ios & mac. We want it there as well, e.g.
592 # because ASSERT and friends trigger off of it.
593 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594 }
595
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000596 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000597 defines += [ "CARBON_DEPRECATED=YES" ]
598 }
599
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000600 if (is_linux || is_android) {
601 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 "linux.cc",
603 "linux.h",
604 ]
605 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700606
607 if (is_nacl) {
608 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
609 defines += [ "timezone=_timezone" ]
610 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611}
tkchin42f580e2015-11-26 23:18:23 -0800612
613if (is_ios) {
614 source_set("rtc_base_objc") {
615 deps = [
616 ":rtc_base",
617 ]
618 cflags = [ "-fobjc-arc" ]
619 configs += [ "..:common_config" ]
620 public_configs = [ "..:common_inherited_config" ]
621
622 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800623 "objc/NSString+StdString.h",
624 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800625 "objc/RTCCameraPreviewView.h",
626 "objc/RTCCameraPreviewView.m",
627 "objc/RTCDispatcher.h",
628 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800629 "objc/RTCLogging.h",
630 "objc/RTCLogging.mm",
631 ]
632 }
633}