blob: ded5cdd43c86d566bd896bc957395acada610dd6 [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
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000024 # TODO(henrike): issue 3307, make rtc_base build without disabling
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000025 # these flags.
26 cflags_cc = [ "-Wno-non-virtual-dtor" ]
27}
28
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000029config("rtc_base_chromium_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000030 defines = [
31 "NO_MAIN_THREAD_WRAPPING",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000032 ]
33}
34
35config("openssl_config") {
36 defines = [
37 "SSL_USE_OPENSSL",
38 "HAVE_OPENSSL_SSL_H",
39 ]
40}
41
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +000042config("nss_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000043 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 = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000052 #"Foundation.framework", # Already included in //build/config:default_libs.
53 "Security.framework",
54 "SystemConfiguration.framework",
55 #"UIKit.framework", # Already included in //build/config:default_libs.
56 ]
57}
58
59config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000060 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000061 "Cocoa.framework",
62 #"Foundation.framework", # Already included in //build/config:default_libs.
63 #"IOKit.framework", # Already included in //build/config:default_libs.
64 #"Security.framework", # Already included in //build/config:default_libs.
65 "SystemConfiguration.framework",
66 ]
67}
68
69config("mac_x86_config") {
70 libs = [
71 #"Carbon.framework", # Already included in //build/config:default_libs.
72 ]
73}
74
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000075if (is_linux && !build_with_chromium) {
76 # Provides the same functionality as the //crypto:platform target, which
77 # WebRTC cannot use as we don't sync src/crypto from Chromium.
78 group("linux_system_ssl") {
79 if (use_openssl) {
80 deps = [ "//third_party/boringssl" ]
81 } else {
82 deps = [ "//net/third_party/nss/ssl:libssl" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000083
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000084 public_configs = [
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000085 "//net/third_party/nss/ssl:ssl_config",
86 "//third_party/nss:system_nss_no_ssl_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000087 ]
88 }
89 }
90}
91
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000092if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000093 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000094 assert(rtc_ssl_root != "",
95 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
96 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000097 }
98}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000099
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000100# The subset of rtc_base approved for use outside of libjingle.
101static_library("rtc_base_approved") {
102 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 = [
106 "checks.cc",
107 "checks.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000108 "event.cc",
109 "event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000110 "exp_filter.cc",
111 "exp_filter.h",
112 "md5.cc",
113 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000114 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000115 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000116 "platform_file.cc",
117 "platform_file.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000118 "safe_conversions.h",
119 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000120 "stringencode.cc",
121 "stringencode.h",
122 "stringutils.cc",
123 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000124 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000125 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000126 "thread_checker.h",
127 "thread_checker_impl.cc",
128 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "timeutils.cc",
130 "timeutils.h",
131 ]
132}
133
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000134static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000135 cflags = []
136 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000137 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000138 deps = [
139 ":rtc_base_approved",
140 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000141
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000142 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000143 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000144 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000145 ]
146
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000147 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000148 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000149 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000150 ]
151
152 defines = [
153 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000154 ]
155
156 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000157 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000158 "asyncfile.cc",
159 "asyncfile.h",
160 "asynchttprequest.cc",
161 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000162 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000163 "asyncpacketsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000164 "asyncsocket.cc",
165 "asyncsocket.h",
166 "asynctcpsocket.cc",
167 "asynctcpsocket.h",
168 "asyncudpsocket.cc",
169 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170 "autodetectproxy.cc",
171 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000172 "base64.cc",
173 "base64.h",
174 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 "bytebuffer.cc",
176 "bytebuffer.h",
177 "byteorder.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000178 "common.cc",
179 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000180 "cpumonitor.cc",
181 "cpumonitor.h",
182 "crc32.cc",
183 "crc32.h",
184 "criticalsection.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000185 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "diskcache.cc",
188 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 "fileutils.cc",
190 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 "firewallsocketserver.cc",
192 "firewallsocketserver.h",
193 "flags.cc",
194 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000195 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "gunit_prod.h",
197 "helpers.cc",
198 "helpers.h",
199 "httpbase.cc",
200 "httpbase.h",
201 "httpclient.cc",
202 "httpclient.h",
203 "httpcommon-inl.h",
204 "httpcommon.cc",
205 "httpcommon.h",
206 "httprequest.cc",
207 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "iosfilesystem.mm",
209 "ipaddress.cc",
210 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "messagedigest.cc",
214 "messagedigest.h",
215 "messagehandler.cc",
216 "messagehandler.h",
217 "messagequeue.cc",
218 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "nethelpers.cc",
220 "nethelpers.h",
221 "network.cc",
222 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "pathutils.cc",
225 "pathutils.h",
226 "physicalsocketserver.cc",
227 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "proxydetect.cc",
229 "proxydetect.h",
230 "proxyinfo.cc",
231 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "ratelimiter.cc",
233 "ratelimiter.h",
234 "ratetracker.cc",
235 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "scoped_autorelease_pool.h",
237 "scoped_autorelease_pool.mm",
238 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "sha1.cc",
240 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000241 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "signalthread.cc",
244 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000245 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "sigslot.h",
247 "sigslotrepeater.h",
248 "socket.h",
249 "socketadapters.cc",
250 "socketadapters.h",
251 "socketaddress.cc",
252 "socketaddress.h",
253 "socketaddresspair.cc",
254 "socketaddresspair.h",
255 "socketfactory.h",
256 "socketpool.cc",
257 "socketpool.h",
258 "socketserver.h",
259 "socketstream.cc",
260 "socketstream.h",
261 "ssladapter.cc",
262 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "sslfingerprint.cc",
264 "sslfingerprint.h",
265 "sslidentity.cc",
266 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "sslsocketfactory.cc",
268 "sslsocketfactory.h",
269 "sslstreamadapter.cc",
270 "sslstreamadapter.h",
271 "sslstreamadapterhelper.cc",
272 "sslstreamadapterhelper.h",
273 "stream.cc",
274 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "systeminfo.cc",
276 "systeminfo.h",
277 "task.cc",
278 "task.h",
279 "taskparent.cc",
280 "taskparent.h",
281 "taskrunner.cc",
282 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "thread.cc",
284 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "timing.cc",
286 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "urlencode.cc",
288 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "worker.cc",
290 "worker.h",
291 ]
292
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000293 if (is_posix) {
294 sources += [
295 "unixfilesystem.cc",
296 "unixfilesystem.h",
297 ]
298 }
299
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000300 if (build_with_chromium) {
301 sources += [
302 "../overrides/webrtc/base/basictypes.h",
303 "../overrides/webrtc/base/constructormagic.h",
304 "../overrides/webrtc/base/logging.cc",
305 "../overrides/webrtc/base/logging.h",
306 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000307
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000308 deps += [ "..:webrtc_common" ]
309
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 if (is_win) {
311 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
312 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000313
314 include_dirs = [
315 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000316 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000317 ]
318
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000319 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000320 } else {
321 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "asyncinvoker.cc",
323 "asyncinvoker.h",
324 "asyncinvoker-inl.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000325 "asyncresolverinterface.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "asyncresolverinterface.h",
327 "atomicops.h",
328 "bandwidthsmoother.cc",
329 "bandwidthsmoother.h",
330 "basictypes.h",
331 "bind.h",
332 "bind.h.pump",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000333 "buffer.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "buffer.h",
335 "callback.h",
336 "callback.h.pump",
337 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "filelock.cc",
339 "filelock.h",
340 "fileutils_mock.h",
341 "genericslot.h",
342 "genericslot.h.pump",
343 "httpserver.cc",
344 "httpserver.h",
345 "json.cc",
346 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000347 "logging.cc",
348 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000349 "mathutils.h",
350 "multipart.cc",
351 "multipart.h",
352 "natserver.cc",
353 "natserver.h",
354 "natsocketfactory.cc",
355 "natsocketfactory.h",
356 "nattypes.cc",
357 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "optionsfile.cc",
359 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "profiler.cc",
361 "profiler.h",
362 "proxyserver.cc",
363 "proxyserver.h",
364 "refcount.h",
365 "referencecountedsingletonfactory.h",
366 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "scopedptrcollection.h",
368 "scoped_ref_ptr.h",
369 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000370 "sharedexclusivelock.cc",
371 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "sslconfig.h",
373 "sslroots.h",
374 "stringdigest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "testclient.cc",
376 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "transformadapter.cc",
378 "transformadapter.h",
379 "versionparsing.cc",
380 "versionparsing.h",
381 "virtualsocketserver.cc",
382 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000383 "window.h",
384 "windowpickerfactory.h",
385 "windowpicker.h",
386 ]
387
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000388 deps += [ "..:webrtc_common" ]
389
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000390 if (is_posix) {
391 sources += [
392 "latebindingsymboltable.cc",
393 "latebindingsymboltable.cc.def",
394 "latebindingsymboltable.h",
395 "latebindingsymboltable.h.def",
396 "posix.cc",
397 "posix.h",
398 ]
399 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000401 if (is_linux) {
402 sources += [
403 "dbus.cc",
404 "dbus.h",
405 "libdbusglibsymboltable.cc",
406 "libdbusglibsymboltable.h",
407 "linuxfdwalk.c",
408 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000409 ]
410 }
411
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000412 if (is_mac) {
413 sources += [
414 "macasyncsocket.cc",
415 "macasyncsocket.h",
416 "maccocoasocketserver.h",
417 "maccocoasocketserver.mm",
418 "macsocketserver.cc",
419 "macsocketserver.h",
420 "macwindowpicker.cc",
421 "macwindowpicker.h",
422 ]
423 }
424
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425 if (is_win) {
426 sources += [
427 "diskcache_win32.cc",
428 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000429 "win32regkey.cc",
430 "win32regkey.h",
431 "win32socketinit.cc",
432 "win32socketinit.h",
433 "win32socketserver.cc",
434 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000435 ]
436 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000437 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000438 deps += [ "//third_party/jsoncpp" ]
439 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000440 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000441
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000442 # When defined changes the include path for json.h to where it is
443 # expected to be when building json outside of the standalone build.
444 defines += [ "WEBRTC_EXTERNAL_JSON" ]
445 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000446 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000447
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000448 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000449 # compiler settings.
450 configs -= [ "//build/config/compiler:chromium_code" ]
451 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000452 if (!is_win) {
453 cflags += [ "-Wno-uninitialized" ]
454 cflags_cc += [ "-Wno-non-virtual-dtor" ]
455 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456
457 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000458 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000459 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000460 deps += [ "//third_party/boringssl" ]
461 } else {
462 configs += [ "external_ssl_library" ]
463 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000464 sources += [
465 "openssl.h",
466 "openssladapter.cc",
467 "openssladapter.h",
468 "openssldigest.cc",
469 "openssldigest.h",
470 "opensslidentity.cc",
471 "opensslidentity.h",
472 "opensslstreamadapter.cc",
473 "opensslstreamadapter.h",
474 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000475 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000476 public_configs += [ ":nss_config" ]
477 if (rtc_build_ssl) {
478 if (build_with_chromium) {
479 deps += [ "//crypto:platform" ]
480 } else {
481 deps += [ "//net/third_party/nss/ssl:libssl" ]
482 if (is_linux) {
483 deps += [ ":linux_system_ssl" ]
484 } else {
485 deps += [
486 "//third_party/nss:nspr",
487 "//third_party/nss:nss",
488 ]
489 }
490 }
491 } else {
492 configs += [ "external_ssl_library" ]
493 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000494 sources += [
495 "nssidentity.cc",
496 "nssidentity.h",
497 "nssstreamadapter.cc",
498 "nssstreamadapter.h",
499 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 }
501
502 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000503 sources += [
504 "ifaddrs-android.cc",
505 "ifaddrs-android.h",
506 ]
507
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000508 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000509 "log",
510 "GLESv2"
511 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 }
513
514 if (is_ios) {
515 all_dependent_configs += [ ":ios_config" ]
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 += [
559 "schanneladapter.cc",
560 "schanneladapter.h",
561 "win32.cc",
562 "win32.h",
563 "win32filesystem.cc",
564 "win32filesystem.h",
565 "win32securityerrors.cc",
566 "win32window.cc",
567 "win32window.h",
568 "win32windowpicker.cc",
569 "win32windowpicker.h",
570 "winfirewall.cc",
571 "winfirewall.h",
572 "winping.cc",
573 "winping.h",
574 ]
575
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000576 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000577 "crypt32.lib",
578 "iphlpapi.lib",
579 "secur32.lib",
580 ]
581
582 cflags += [
583 # Suppress warnings about WIN32_LEAN_AND_MEAN.
584 "/wd4005",
585 "/wd4703",
586 ]
587
588 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000589 }
590
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000591 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000592 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000593 # _except_ for ios & mac. We want it there as well, e.g.
594 # because ASSERT and friends trigger off of it.
595 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000596 }
597
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000598 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 defines += [ "CARBON_DEPRECATED=YES" ]
600 }
601
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000602 if (is_linux || is_android) {
603 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 "linux.cc",
605 "linux.h",
606 ]
607 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608}