blob: 47b05be5e83a37495287b11b0e1b36e3839cfd08 [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",
Jiayang Liubef8d2d2015-03-26 14:38:46 -0700191 "criticalsection.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 "criticalsection.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000193 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "diskcache.cc",
196 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 "fileutils.cc",
198 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "firewallsocketserver.cc",
200 "firewallsocketserver.h",
201 "flags.cc",
202 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000203 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "gunit_prod.h",
205 "helpers.cc",
206 "helpers.h",
207 "httpbase.cc",
208 "httpbase.h",
209 "httpclient.cc",
210 "httpclient.h",
211 "httpcommon-inl.h",
212 "httpcommon.cc",
213 "httpcommon.h",
214 "httprequest.cc",
215 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "iosfilesystem.mm",
217 "ipaddress.cc",
218 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "messagedigest.cc",
222 "messagedigest.h",
223 "messagehandler.cc",
224 "messagehandler.h",
225 "messagequeue.cc",
226 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "nethelpers.cc",
228 "nethelpers.h",
229 "network.cc",
230 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "pathutils.cc",
233 "pathutils.h",
234 "physicalsocketserver.cc",
235 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "proxydetect.cc",
237 "proxydetect.h",
238 "proxyinfo.cc",
239 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240 "ratelimiter.cc",
241 "ratelimiter.h",
242 "ratetracker.cc",
243 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "scoped_autorelease_pool.h",
245 "scoped_autorelease_pool.mm",
246 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "sha1.cc",
248 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000249 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "signalthread.cc",
252 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000253 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "sigslot.h",
255 "sigslotrepeater.h",
256 "socket.h",
257 "socketadapters.cc",
258 "socketadapters.h",
259 "socketaddress.cc",
260 "socketaddress.h",
261 "socketaddresspair.cc",
262 "socketaddresspair.h",
263 "socketfactory.h",
264 "socketpool.cc",
265 "socketpool.h",
266 "socketserver.h",
267 "socketstream.cc",
268 "socketstream.h",
269 "ssladapter.cc",
270 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "sslfingerprint.cc",
272 "sslfingerprint.h",
273 "sslidentity.cc",
274 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "sslsocketfactory.cc",
276 "sslsocketfactory.h",
277 "sslstreamadapter.cc",
278 "sslstreamadapter.h",
279 "sslstreamadapterhelper.cc",
280 "sslstreamadapterhelper.h",
281 "stream.cc",
282 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "systeminfo.cc",
284 "systeminfo.h",
285 "task.cc",
286 "task.h",
287 "taskparent.cc",
288 "taskparent.h",
289 "taskrunner.cc",
290 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000291 "thread.cc",
292 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "timing.cc",
294 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "urlencode.cc",
296 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "worker.cc",
298 "worker.h",
299 ]
300
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000301 if (is_posix) {
302 sources += [
303 "unixfilesystem.cc",
304 "unixfilesystem.h",
305 ]
306 }
307
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 if (build_with_chromium) {
309 sources += [
310 "../overrides/webrtc/base/basictypes.h",
311 "../overrides/webrtc/base/constructormagic.h",
312 "../overrides/webrtc/base/logging.cc",
313 "../overrides/webrtc/base/logging.h",
314 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000315
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000316 deps += [ "..:webrtc_common" ]
317
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 if (is_win) {
319 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
320 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000321
322 include_dirs = [
323 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000324 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000325 ]
326
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000327 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000328 } else {
329 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000330 "asyncinvoker.cc",
331 "asyncinvoker.h",
332 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "atomicops.h",
334 "bandwidthsmoother.cc",
335 "bandwidthsmoother.h",
336 "basictypes.h",
337 "bind.h",
338 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "callback.h",
340 "callback.h.pump",
341 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "filelock.cc",
343 "filelock.h",
344 "fileutils_mock.h",
345 "genericslot.h",
346 "genericslot.h.pump",
347 "httpserver.cc",
348 "httpserver.h",
349 "json.cc",
350 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 "logging.cc",
352 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "mathutils.h",
354 "multipart.cc",
355 "multipart.h",
356 "natserver.cc",
357 "natserver.h",
358 "natsocketfactory.cc",
359 "natsocketfactory.h",
360 "nattypes.cc",
361 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "optionsfile.cc",
363 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "profiler.cc",
365 "profiler.h",
366 "proxyserver.cc",
367 "proxyserver.h",
368 "refcount.h",
369 "referencecountedsingletonfactory.h",
370 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "scopedptrcollection.h",
372 "scoped_ref_ptr.h",
373 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000374 "sharedexclusivelock.cc",
375 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "sslconfig.h",
377 "sslroots.h",
378 "stringdigest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "testclient.cc",
380 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "transformadapter.cc",
382 "transformadapter.h",
383 "versionparsing.cc",
384 "versionparsing.h",
385 "virtualsocketserver.cc",
386 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "window.h",
388 "windowpickerfactory.h",
389 "windowpicker.h",
390 ]
391
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000392 deps += [ "..:webrtc_common" ]
393
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000394 if (is_posix) {
395 sources += [
396 "latebindingsymboltable.cc",
397 "latebindingsymboltable.cc.def",
398 "latebindingsymboltable.h",
399 "latebindingsymboltable.h.def",
400 "posix.cc",
401 "posix.h",
402 ]
403 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000405 if (is_linux) {
406 sources += [
407 "dbus.cc",
408 "dbus.h",
409 "libdbusglibsymboltable.cc",
410 "libdbusglibsymboltable.h",
411 "linuxfdwalk.c",
412 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000413 ]
414 }
415
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 if (is_mac) {
417 sources += [
418 "macasyncsocket.cc",
419 "macasyncsocket.h",
420 "maccocoasocketserver.h",
421 "maccocoasocketserver.mm",
422 "macsocketserver.cc",
423 "macsocketserver.h",
424 "macwindowpicker.cc",
425 "macwindowpicker.h",
426 ]
427 }
428
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000429 if (is_win) {
430 sources += [
431 "diskcache_win32.cc",
432 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000433 "win32regkey.cc",
434 "win32regkey.h",
435 "win32socketinit.cc",
436 "win32socketinit.h",
437 "win32socketserver.cc",
438 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000439 ]
440 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000441 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000442 deps += [ "//third_party/jsoncpp" ]
443 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000444 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000445
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000446 # When defined changes the include path for json.h to where it is
447 # expected to be when building json outside of the standalone build.
448 defines += [ "WEBRTC_EXTERNAL_JSON" ]
449 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000450 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000451
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000452 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000453 # compiler settings.
454 configs -= [ "//build/config/compiler:chromium_code" ]
455 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000456 if (!is_win) {
457 cflags += [ "-Wno-uninitialized" ]
458 cflags_cc += [ "-Wno-non-virtual-dtor" ]
459 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460
461 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000462 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000463 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000464 deps += [ "//third_party/boringssl" ]
465 } else {
466 configs += [ "external_ssl_library" ]
467 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000468 sources += [
469 "openssl.h",
470 "openssladapter.cc",
471 "openssladapter.h",
472 "openssldigest.cc",
473 "openssldigest.h",
474 "opensslidentity.cc",
475 "opensslidentity.h",
476 "opensslstreamadapter.cc",
477 "opensslstreamadapter.h",
478 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000480 public_configs += [ ":nss_config" ]
481 if (rtc_build_ssl) {
482 if (build_with_chromium) {
483 deps += [ "//crypto:platform" ]
484 } else {
485 deps += [ "//net/third_party/nss/ssl:libssl" ]
486 if (is_linux) {
487 deps += [ ":linux_system_ssl" ]
488 } else {
489 deps += [
490 "//third_party/nss:nspr",
491 "//third_party/nss:nss",
492 ]
493 }
494 }
495 } else {
496 configs += [ "external_ssl_library" ]
497 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000498 sources += [
499 "nssidentity.cc",
500 "nssidentity.h",
501 "nssstreamadapter.cc",
502 "nssstreamadapter.h",
503 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 }
505
506 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000507 sources += [
508 "ifaddrs-android.cc",
509 "ifaddrs-android.h",
510 ]
511
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000512 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000513 "log",
514 "GLESv2"
515 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 }
517
518 if (is_ios) {
519 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000520 }
521
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000522 if (use_x11) {
523 sources += [
524 "x11windowpicker.cc",
525 "x11windowpicker.h",
526 ]
527 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000528 "dl",
529 "rt",
530 "Xext",
531 "X11",
532 "Xcomposite",
533 "Xrender",
534 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000535 }
536
537 if (is_linux) {
538 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000539 "dl",
540 "rt",
541 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000542 }
543
544 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000545 sources += [
546 "maccocoathreadhelper.h",
547 "maccocoathreadhelper.mm",
548 "macconversion.cc",
549 "macconversion.h",
550 "macutils.cc",
551 "macutils.h",
552 ]
553
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000554 all_dependent_configs = [ ":mac_config" ]
555
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000556 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000557 all_dependent_configs += [ ":mac_x86_config" ]
558 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000559 }
560
561 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000562 sources += [
563 "schanneladapter.cc",
564 "schanneladapter.h",
565 "win32.cc",
566 "win32.h",
567 "win32filesystem.cc",
568 "win32filesystem.h",
569 "win32securityerrors.cc",
570 "win32window.cc",
571 "win32window.h",
572 "win32windowpicker.cc",
573 "win32windowpicker.h",
574 "winfirewall.cc",
575 "winfirewall.h",
576 "winping.cc",
577 "winping.h",
578 ]
579
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000580 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 "crypt32.lib",
582 "iphlpapi.lib",
583 "secur32.lib",
584 ]
585
586 cflags += [
587 # Suppress warnings about WIN32_LEAN_AND_MEAN.
588 "/wd4005",
589 "/wd4703",
590 ]
591
592 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000593 }
594
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000595 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000596 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000597 # _except_ for ios & mac. We want it there as well, e.g.
598 # because ASSERT and friends trigger off of it.
599 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000600 }
601
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000602 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603 defines += [ "CARBON_DEPRECATED=YES" ]
604 }
605
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000606 if (is_linux || is_android) {
607 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608 "linux.cc",
609 "linux.h",
610 ]
611 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000612}