blob: fba03aa9cdca3a92d462746a63277659d26e65a0 [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",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000110 "event_tracer.cc",
111 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000112 "exp_filter.cc",
113 "exp_filter.h",
114 "md5.cc",
115 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000116 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000117 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000118 "platform_file.cc",
119 "platform_file.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000120 "safe_conversions.h",
121 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000122 "stringencode.cc",
123 "stringencode.h",
124 "stringutils.cc",
125 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000126 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000127 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000128 "thread_checker.h",
129 "thread_checker_impl.cc",
130 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000131 "timeutils.cc",
132 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000133 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000134 ]
135}
136
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000137static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000138 cflags = []
139 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000140 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000141 deps = [
142 ":rtc_base_approved",
143 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000144
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000145 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000146 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000147 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000148 ]
149
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000150 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000151 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000152 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000153 ]
154
155 defines = [
156 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000157 ]
158
159 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000160 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000161 "asyncfile.cc",
162 "asyncfile.h",
163 "asynchttprequest.cc",
164 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000165 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000166 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000167 "asyncresolverinterface.cc",
168 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000169 "asyncsocket.cc",
170 "asyncsocket.h",
171 "asynctcpsocket.cc",
172 "asynctcpsocket.h",
173 "asyncudpsocket.cc",
174 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 "autodetectproxy.cc",
176 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 "base64.cc",
178 "base64.h",
179 "basicdefs.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000180 "buffer.cc",
181 "buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 "bytebuffer.cc",
183 "bytebuffer.h",
184 "byteorder.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "common.cc",
186 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "cpumonitor.cc",
188 "cpumonitor.h",
189 "crc32.cc",
190 "crc32.h",
191 "criticalsection.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000192 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "diskcache.cc",
195 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "fileutils.cc",
197 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "firewallsocketserver.cc",
199 "firewallsocketserver.h",
200 "flags.cc",
201 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000202 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "gunit_prod.h",
204 "helpers.cc",
205 "helpers.h",
206 "httpbase.cc",
207 "httpbase.h",
208 "httpclient.cc",
209 "httpclient.h",
210 "httpcommon-inl.h",
211 "httpcommon.cc",
212 "httpcommon.h",
213 "httprequest.cc",
214 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "iosfilesystem.mm",
216 "ipaddress.cc",
217 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "messagedigest.cc",
221 "messagedigest.h",
222 "messagehandler.cc",
223 "messagehandler.h",
224 "messagequeue.cc",
225 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "nethelpers.cc",
227 "nethelpers.h",
228 "network.cc",
229 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "pathutils.cc",
232 "pathutils.h",
233 "physicalsocketserver.cc",
234 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "proxydetect.cc",
236 "proxydetect.h",
237 "proxyinfo.cc",
238 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "ratelimiter.cc",
240 "ratelimiter.h",
241 "ratetracker.cc",
242 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "scoped_autorelease_pool.h",
244 "scoped_autorelease_pool.mm",
245 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "sha1.cc",
247 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000248 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "signalthread.cc",
251 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000252 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "sigslot.h",
254 "sigslotrepeater.h",
255 "socket.h",
256 "socketadapters.cc",
257 "socketadapters.h",
258 "socketaddress.cc",
259 "socketaddress.h",
260 "socketaddresspair.cc",
261 "socketaddresspair.h",
262 "socketfactory.h",
263 "socketpool.cc",
264 "socketpool.h",
265 "socketserver.h",
266 "socketstream.cc",
267 "socketstream.h",
268 "ssladapter.cc",
269 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "sslfingerprint.cc",
271 "sslfingerprint.h",
272 "sslidentity.cc",
273 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "sslsocketfactory.cc",
275 "sslsocketfactory.h",
276 "sslstreamadapter.cc",
277 "sslstreamadapter.h",
278 "sslstreamadapterhelper.cc",
279 "sslstreamadapterhelper.h",
280 "stream.cc",
281 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "systeminfo.cc",
283 "systeminfo.h",
284 "task.cc",
285 "task.h",
286 "taskparent.cc",
287 "taskparent.h",
288 "taskrunner.cc",
289 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "thread.cc",
291 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "timing.cc",
293 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "urlencode.cc",
295 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "worker.cc",
297 "worker.h",
298 ]
299
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000300 if (is_posix) {
301 sources += [
302 "unixfilesystem.cc",
303 "unixfilesystem.h",
304 ]
305 }
306
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 if (build_with_chromium) {
308 sources += [
309 "../overrides/webrtc/base/basictypes.h",
310 "../overrides/webrtc/base/constructormagic.h",
311 "../overrides/webrtc/base/logging.cc",
312 "../overrides/webrtc/base/logging.h",
313 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000314
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000315 deps += [ "..:webrtc_common" ]
316
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000317 if (is_win) {
318 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
319 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000320
321 include_dirs = [
322 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000323 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000324 ]
325
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000326 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000327 } else {
328 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "asyncinvoker.cc",
330 "asyncinvoker.h",
331 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "atomicops.h",
333 "bandwidthsmoother.cc",
334 "bandwidthsmoother.h",
335 "basictypes.h",
336 "bind.h",
337 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "callback.h",
339 "callback.h.pump",
340 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "filelock.cc",
342 "filelock.h",
343 "fileutils_mock.h",
344 "genericslot.h",
345 "genericslot.h.pump",
346 "httpserver.cc",
347 "httpserver.h",
348 "json.cc",
349 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 "logging.cc",
351 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 "mathutils.h",
353 "multipart.cc",
354 "multipart.h",
355 "natserver.cc",
356 "natserver.h",
357 "natsocketfactory.cc",
358 "natsocketfactory.h",
359 "nattypes.cc",
360 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 "optionsfile.cc",
362 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "profiler.cc",
364 "profiler.h",
365 "proxyserver.cc",
366 "proxyserver.h",
367 "refcount.h",
368 "referencecountedsingletonfactory.h",
369 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "scopedptrcollection.h",
371 "scoped_ref_ptr.h",
372 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000373 "sharedexclusivelock.cc",
374 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "sslconfig.h",
376 "sslroots.h",
377 "stringdigest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "testclient.cc",
379 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "transformadapter.cc",
381 "transformadapter.h",
382 "versionparsing.cc",
383 "versionparsing.h",
384 "virtualsocketserver.cc",
385 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "window.h",
387 "windowpickerfactory.h",
388 "windowpicker.h",
389 ]
390
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000391 deps += [ "..:webrtc_common" ]
392
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000393 if (is_posix) {
394 sources += [
395 "latebindingsymboltable.cc",
396 "latebindingsymboltable.cc.def",
397 "latebindingsymboltable.h",
398 "latebindingsymboltable.h.def",
399 "posix.cc",
400 "posix.h",
401 ]
402 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000404 if (is_linux) {
405 sources += [
406 "dbus.cc",
407 "dbus.h",
408 "libdbusglibsymboltable.cc",
409 "libdbusglibsymboltable.h",
410 "linuxfdwalk.c",
411 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000412 ]
413 }
414
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 if (is_mac) {
416 sources += [
417 "macasyncsocket.cc",
418 "macasyncsocket.h",
419 "maccocoasocketserver.h",
420 "maccocoasocketserver.mm",
421 "macsocketserver.cc",
422 "macsocketserver.h",
423 "macwindowpicker.cc",
424 "macwindowpicker.h",
425 ]
426 }
427
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000428 if (is_win) {
429 sources += [
430 "diskcache_win32.cc",
431 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000432 "win32regkey.cc",
433 "win32regkey.h",
434 "win32socketinit.cc",
435 "win32socketinit.h",
436 "win32socketserver.cc",
437 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000438 ]
439 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000440 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000441 deps += [ "//third_party/jsoncpp" ]
442 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000443 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000444
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000445 # When defined changes the include path for json.h to where it is
446 # expected to be when building json outside of the standalone build.
447 defines += [ "WEBRTC_EXTERNAL_JSON" ]
448 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000449 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000451 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000452 # compiler settings.
453 configs -= [ "//build/config/compiler:chromium_code" ]
454 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000455 if (!is_win) {
456 cflags += [ "-Wno-uninitialized" ]
457 cflags_cc += [ "-Wno-non-virtual-dtor" ]
458 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
460 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000461 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000462 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000463 deps += [ "//third_party/boringssl" ]
464 } else {
465 configs += [ "external_ssl_library" ]
466 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000467 sources += [
468 "openssl.h",
469 "openssladapter.cc",
470 "openssladapter.h",
471 "openssldigest.cc",
472 "openssldigest.h",
473 "opensslidentity.cc",
474 "opensslidentity.h",
475 "opensslstreamadapter.cc",
476 "opensslstreamadapter.h",
477 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000478 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000479 public_configs += [ ":nss_config" ]
480 if (rtc_build_ssl) {
481 if (build_with_chromium) {
482 deps += [ "//crypto:platform" ]
483 } else {
484 deps += [ "//net/third_party/nss/ssl:libssl" ]
485 if (is_linux) {
486 deps += [ ":linux_system_ssl" ]
487 } else {
488 deps += [
489 "//third_party/nss:nspr",
490 "//third_party/nss:nss",
491 ]
492 }
493 }
494 } else {
495 configs += [ "external_ssl_library" ]
496 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000497 sources += [
498 "nssidentity.cc",
499 "nssidentity.h",
500 "nssstreamadapter.cc",
501 "nssstreamadapter.h",
502 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 }
504
505 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000506 sources += [
507 "ifaddrs-android.cc",
508 "ifaddrs-android.h",
509 ]
510
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000511 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 "log",
513 "GLESv2"
514 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 }
516
517 if (is_ios) {
518 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 }
520
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000521 if (use_x11) {
522 sources += [
523 "x11windowpicker.cc",
524 "x11windowpicker.h",
525 ]
526 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000527 "dl",
528 "rt",
529 "Xext",
530 "X11",
531 "Xcomposite",
532 "Xrender",
533 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000534 }
535
536 if (is_linux) {
537 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000538 "dl",
539 "rt",
540 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000541 }
542
543 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000544 sources += [
545 "maccocoathreadhelper.h",
546 "maccocoathreadhelper.mm",
547 "macconversion.cc",
548 "macconversion.h",
549 "macutils.cc",
550 "macutils.h",
551 ]
552
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000553 all_dependent_configs = [ ":mac_config" ]
554
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000555 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000556 all_dependent_configs += [ ":mac_x86_config" ]
557 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 }
559
560 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000561 sources += [
562 "schanneladapter.cc",
563 "schanneladapter.h",
564 "win32.cc",
565 "win32.h",
566 "win32filesystem.cc",
567 "win32filesystem.h",
568 "win32securityerrors.cc",
569 "win32window.cc",
570 "win32window.h",
571 "win32windowpicker.cc",
572 "win32windowpicker.h",
573 "winfirewall.cc",
574 "winfirewall.h",
575 "winping.cc",
576 "winping.h",
577 ]
578
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000579 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 "crypt32.lib",
581 "iphlpapi.lib",
582 "secur32.lib",
583 ]
584
585 cflags += [
586 # Suppress warnings about WIN32_LEAN_AND_MEAN.
587 "/wd4005",
588 "/wd4703",
589 ]
590
591 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 }
593
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000594 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000595 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000596 # _except_ for ios & mac. We want it there as well, e.g.
597 # because ASSERT and friends trigger off of it.
598 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 }
600
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000601 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 defines += [ "CARBON_DEPRECATED=YES" ]
603 }
604
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000605 if (is_linux || is_android) {
606 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607 "linux.cc",
608 "linux.h",
609 ]
610 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611}