blob: 027fa45a0175d8e3fe949f595990a74a40574cc8 [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
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000013config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000014 include_dirs = [
15 "//third_party/jsoncpp/overrides/include",
16 "//third_party/jsoncpp/source/include",
17 ]
18
19 defines = [
20 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000021 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000022 ]
23
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020024 if (is_posix) {
25 # TODO(henrike): issue 3307, make rtc_base build without disabling
26 # these flags.
27 cflags_cc = [ "-Wno-non-virtual-dtor" ]
28 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000029}
30
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000031config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020032 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000033}
34
35config("openssl_config") {
36 defines = [
37 "SSL_USE_OPENSSL",
38 "HAVE_OPENSSL_SSL_H",
39 ]
40}
41
deadbeef9eb13652015-09-05 04:39:15 -070042config("nss_config") {
43 defines = [
44 "SSL_USE_NSS",
45 "HAVE_NSS_SSL_H",
46 "SSL_USE_NSS_RNG",
47 ]
48}
49
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000050config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000051 libs = [
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 ]
deadbeef9eb13652015-09-05 04:39:15 -070087 } else {
88 deps = [
89 "//net/third_party/nss/ssl:libssl",
90 ]
91
92 public_configs = [
93 "//net/third_party/nss/ssl:ssl_config",
94 "//third_party/nss:system_nss_no_ssl_config",
95 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000096 }
97 }
98}
99
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000100if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000101 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000102 assert(rtc_ssl_root != "",
103 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
104 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000105 }
106}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +0000107
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000108# The subset of rtc_base approved for use outside of libjingle.
109static_library("rtc_base_approved") {
110 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000111 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000112
113 sources = [
Peter Boströmff019b02015-04-30 14:16:07 +0200114 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700115 "bitbuffer.cc",
116 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200117 "buffer.cc",
118 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200119 "bufferqueue.cc",
120 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700121 "bytebuffer.cc",
122 "bytebuffer.h",
123 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "checks.cc",
125 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200126 "criticalsection.cc",
127 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000128 "event.cc",
129 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000130 "event_tracer.cc",
131 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "exp_filter.cc",
133 "exp_filter.h",
134 "md5.cc",
135 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000136 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000137 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000138 "platform_file.cc",
139 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200140 "platform_thread.cc",
141 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000142 "safe_conversions.h",
143 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200144 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 "stringencode.cc",
146 "stringencode.h",
147 "stringutils.cc",
148 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700149 "systeminfo.cc",
150 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000151 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000152 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000153 "thread_checker.h",
154 "thread_checker_impl.cc",
155 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000156 "timeutils.cc",
157 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000158 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 ]
Noah Richards915590e2015-04-22 15:43:08 -0700160
161 if (build_with_chromium) {
162 sources += [
163 "../overrides/webrtc/base/basictypes.h",
164 "../overrides/webrtc/base/constructormagic.h",
165 ]
166 } else {
167 sources += [
168 "basictypes.h",
169 "constructormagic.h",
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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "pathutils.cc",
264 "pathutils.h",
265 "physicalsocketserver.cc",
266 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "proxydetect.cc",
268 "proxydetect.h",
269 "proxyinfo.cc",
270 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "ratelimiter.cc",
272 "ratelimiter.h",
273 "ratetracker.cc",
274 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200275 "rtccertificate.cc",
276 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "scoped_autorelease_pool.h",
278 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "sha1.cc",
280 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000281 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "signalthread.cc",
284 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000285 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "sigslot.h",
287 "sigslotrepeater.h",
288 "socket.h",
289 "socketadapters.cc",
290 "socketadapters.h",
291 "socketaddress.cc",
292 "socketaddress.h",
293 "socketaddresspair.cc",
294 "socketaddresspair.h",
295 "socketfactory.h",
296 "socketpool.cc",
297 "socketpool.h",
298 "socketserver.h",
299 "socketstream.cc",
300 "socketstream.h",
301 "ssladapter.cc",
302 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "sslfingerprint.cc",
304 "sslfingerprint.h",
305 "sslidentity.cc",
306 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 "sslsocketfactory.cc",
308 "sslsocketfactory.h",
309 "sslstreamadapter.cc",
310 "sslstreamadapter.h",
311 "sslstreamadapterhelper.cc",
312 "sslstreamadapterhelper.h",
313 "stream.cc",
314 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000315 "task.cc",
316 "task.h",
317 "taskparent.cc",
318 "taskparent.h",
319 "taskrunner.cc",
320 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "thread.cc",
322 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "timing.cc",
324 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "urlencode.cc",
326 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "worker.cc",
328 "worker.h",
329 ]
330
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000331 if (is_posix) {
332 sources += [
333 "unixfilesystem.cc",
334 "unixfilesystem.h",
335 ]
336 }
337
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 if (build_with_chromium) {
339 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "../overrides/webrtc/base/logging.cc",
341 "../overrides/webrtc/base/logging.h",
342 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000343
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000344 deps += [ "..:webrtc_common" ]
345
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 if (is_win) {
347 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
348 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349
350 include_dirs = [
351 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000352 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353 ]
354
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000355 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356 } else {
357 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "bandwidthsmoother.cc",
359 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "bind.h",
361 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "callback.h",
363 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "fileutils_mock.h",
365 "genericslot.h",
366 "genericslot.h.pump",
367 "httpserver.cc",
368 "httpserver.h",
369 "json.cc",
370 "json.h",
tkchin93411912015-07-22 12:12:17 -0700371 "logsinks.cc",
372 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "mathutils.h",
374 "multipart.cc",
375 "multipart.h",
376 "natserver.cc",
377 "natserver.h",
378 "natsocketfactory.cc",
379 "natsocketfactory.h",
380 "nattypes.cc",
381 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "optionsfile.cc",
383 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "profiler.cc",
385 "profiler.h",
386 "proxyserver.cc",
387 "proxyserver.h",
388 "refcount.h",
389 "referencecountedsingletonfactory.h",
390 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200392 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000394 "sharedexclusivelock.cc",
395 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "sslconfig.h",
397 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "testclient.cc",
399 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "transformadapter.cc",
401 "transformadapter.h",
402 "versionparsing.cc",
403 "versionparsing.h",
404 "virtualsocketserver.cc",
405 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200408 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 ]
410
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000411 deps += [ "..:webrtc_common" ]
412
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000413 if (is_posix) {
414 sources += [
415 "latebindingsymboltable.cc",
416 "latebindingsymboltable.cc.def",
417 "latebindingsymboltable.h",
418 "latebindingsymboltable.h.def",
419 "posix.cc",
420 "posix.h",
421 ]
422 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000423
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000424 if (is_linux) {
425 sources += [
426 "dbus.cc",
427 "dbus.h",
428 "libdbusglibsymboltable.cc",
429 "libdbusglibsymboltable.h",
430 "linuxfdwalk.c",
431 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000432 ]
433 }
434
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000435 if (is_mac) {
436 sources += [
437 "macasyncsocket.cc",
438 "macasyncsocket.h",
439 "maccocoasocketserver.h",
440 "maccocoasocketserver.mm",
441 "macsocketserver.cc",
442 "macsocketserver.h",
443 "macwindowpicker.cc",
444 "macwindowpicker.h",
445 ]
446 }
447
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000448 if (is_win) {
449 sources += [
450 "diskcache_win32.cc",
451 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000452 "win32regkey.cc",
453 "win32regkey.h",
454 "win32socketinit.cc",
455 "win32socketinit.h",
456 "win32socketserver.cc",
457 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000458 ]
459 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000460 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000461 deps += [ "//third_party/jsoncpp" ]
462 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000463 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000464
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000465 # When defined changes the include path for json.h to where it is
466 # expected to be when building json outside of the standalone build.
467 defines += [ "WEBRTC_EXTERNAL_JSON" ]
468 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000469 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000470
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000471 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000472 # compiler settings.
473 configs -= [ "//build/config/compiler:chromium_code" ]
474 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000475 if (!is_win) {
476 cflags += [ "-Wno-uninitialized" ]
477 cflags_cc += [ "-Wno-non-virtual-dtor" ]
478 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479
480 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000481 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000482 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000483 deps += [ "//third_party/boringssl" ]
484 } else {
485 configs += [ "external_ssl_library" ]
486 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000487 sources += [
488 "openssl.h",
489 "openssladapter.cc",
490 "openssladapter.h",
491 "openssldigest.cc",
492 "openssldigest.h",
493 "opensslidentity.cc",
494 "opensslidentity.h",
495 "opensslstreamadapter.cc",
496 "opensslstreamadapter.h",
497 ]
deadbeef9eb13652015-09-05 04:39:15 -0700498 } else {
499 public_configs += [ ":nss_config" ]
500 if (rtc_build_ssl) {
501 if (build_with_chromium) {
502 deps += [ "//crypto:platform" ]
503 } else {
504 deps += [ "//net/third_party/nss/ssl:libssl" ]
505 if (is_linux) {
506 deps += [ ":linux_system_ssl" ]
507 } else {
508 deps += [
509 "//third_party/nss:nspr",
510 "//third_party/nss:nss",
511 ]
512 }
513 }
514 } else {
515 configs += [ "external_ssl_library" ]
516 }
517 sources += [
518 "nssidentity.cc",
519 "nssidentity.h",
520 "nssstreamadapter.cc",
521 "nssstreamadapter.h",
522 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000523 }
524
525 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000526 sources += [
527 "ifaddrs-android.cc",
528 "ifaddrs-android.h",
529 ]
530
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000531 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200533 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000535 }
536
537 if (is_ios) {
538 all_dependent_configs += [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200539
540 sources += [
541 "macconversion.cc",
542 "macconversion.h",
543 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000544 }
545
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000546 if (use_x11) {
547 sources += [
548 "x11windowpicker.cc",
549 "x11windowpicker.h",
550 ]
551 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000552 "dl",
553 "rt",
554 "Xext",
555 "X11",
556 "Xcomposite",
557 "Xrender",
558 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000559 }
560
561 if (is_linux) {
562 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000563 "dl",
564 "rt",
565 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000566 }
567
568 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000569 sources += [
570 "maccocoathreadhelper.h",
571 "maccocoathreadhelper.mm",
572 "macconversion.cc",
573 "macconversion.h",
574 "macutils.cc",
575 "macutils.h",
576 ]
577
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000578 all_dependent_configs = [ ":mac_config" ]
579
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000580 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 all_dependent_configs += [ ":mac_x86_config" ]
582 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000583 }
584
585 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000586 sources += [
587 "schanneladapter.cc",
588 "schanneladapter.h",
589 "win32.cc",
590 "win32.h",
591 "win32filesystem.cc",
592 "win32filesystem.h",
593 "win32securityerrors.cc",
594 "win32window.cc",
595 "win32window.h",
596 "win32windowpicker.cc",
597 "win32windowpicker.h",
598 "winfirewall.cc",
599 "winfirewall.h",
600 "winping.cc",
601 "winping.h",
602 ]
603
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000604 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000605 "crypt32.lib",
606 "iphlpapi.lib",
607 "secur32.lib",
608 ]
609
610 cflags += [
611 # Suppress warnings about WIN32_LEAN_AND_MEAN.
612 "/wd4005",
613 "/wd4703",
614 ]
615
616 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000617 }
618
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000619 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000620 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000621 # _except_ for ios & mac. We want it there as well, e.g.
622 # because ASSERT and friends trigger off of it.
623 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000624 }
625
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000626 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000627 defines += [ "CARBON_DEPRECATED=YES" ]
628 }
629
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000630 if (is_linux || is_android) {
631 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000632 "linux.cc",
633 "linux.h",
634 ]
635 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700636
637 if (is_nacl) {
638 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
639 defines += [ "timezone=_timezone" ]
640 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000641}