blob: 6d05504401e90001bbca056ff191b99a45494b70 [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") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000032 defines = [
33 "NO_MAIN_THREAD_WRAPPING",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000034 ]
35}
36
37config("openssl_config") {
38 defines = [
39 "SSL_USE_OPENSSL",
40 "HAVE_OPENSSL_SSL_H",
41 ]
42}
43
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +000044config("nss_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000045 defines = [
46 "SSL_USE_NSS",
47 "HAVE_NSS_SSL_H",
48 "SSL_USE_NSS_RNG",
49 ]
50}
51
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000052config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000053 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
57 #"UIKit.framework", # Already included in //build/config:default_libs.
58 ]
59}
60
61config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000062 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000063 "Cocoa.framework",
64 #"Foundation.framework", # Already included in //build/config:default_libs.
65 #"IOKit.framework", # Already included in //build/config:default_libs.
66 #"Security.framework", # Already included in //build/config:default_libs.
67 "SystemConfiguration.framework",
68 ]
69}
70
71config("mac_x86_config") {
72 libs = [
73 #"Carbon.framework", # Already included in //build/config:default_libs.
74 ]
75}
76
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000077if (is_linux && !build_with_chromium) {
78 # Provides the same functionality as the //crypto:platform target, which
79 # WebRTC cannot use as we don't sync src/crypto from Chromium.
80 group("linux_system_ssl") {
81 if (use_openssl) {
82 deps = [ "//third_party/boringssl" ]
83 } else {
84 deps = [ "//net/third_party/nss/ssl:libssl" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000085
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000086 public_configs = [
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000087 "//net/third_party/nss/ssl:ssl_config",
88 "//third_party/nss:system_nss_no_ssl_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000089 ]
90 }
91 }
92}
93
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000094if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000095 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000096 assert(rtc_ssl_root != "",
97 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
98 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000099 }
100}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +0000101
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000102# The subset of rtc_base approved for use outside of libjingle.
103static_library("rtc_base_approved") {
104 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000105 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000106
107 sources = [
Karl Wiberg94784372015-04-20 14:03:07 +0200108 "buffer.cc",
109 "buffer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000110 "checks.cc",
111 "checks.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000112 "event.cc",
113 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000114 "event_tracer.cc",
115 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000116 "exp_filter.cc",
117 "exp_filter.h",
118 "md5.cc",
119 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000120 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000121 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000122 "platform_file.cc",
123 "platform_file.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000124 "safe_conversions.h",
125 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000126 "stringencode.cc",
127 "stringencode.h",
128 "stringutils.cc",
129 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000130 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000131 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000132 "thread_checker.h",
133 "thread_checker_impl.cc",
134 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000135 "timeutils.cc",
136 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000137 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000138 ]
139}
140
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000141static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000142 cflags = []
143 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000144 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 deps = [
146 ":rtc_base_approved",
147 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000148
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000149 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000150 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000151 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000152 ]
153
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000154 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000155 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000156 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000157 ]
158
159 defines = [
160 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000161 ]
162
163 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000164 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000165 "asyncfile.cc",
166 "asyncfile.h",
167 "asynchttprequest.cc",
168 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000169 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000171 "asyncresolverinterface.cc",
172 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000173 "asyncsocket.cc",
174 "asyncsocket.h",
175 "asynctcpsocket.cc",
176 "asynctcpsocket.h",
177 "asyncudpsocket.cc",
178 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 "autodetectproxy.cc",
180 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 "base64.cc",
182 "base64.h",
183 "basicdefs.h",
Noah Richardsbbf7c862015-04-21 16:30:13 -0700184 "bitbuffer.cc",
185 "bitbuffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186 "bytebuffer.cc",
187 "bytebuffer.h",
188 "byteorder.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 "common.cc",
190 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 "cpumonitor.cc",
192 "cpumonitor.h",
193 "crc32.cc",
194 "crc32.h",
Jiayang Liubef8d2d2015-03-26 14:38:46 -0700195 "criticalsection.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "criticalsection.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000197 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "diskcache.cc",
200 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "fileutils.cc",
202 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "firewallsocketserver.cc",
204 "firewallsocketserver.h",
205 "flags.cc",
206 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000207 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "gunit_prod.h",
209 "helpers.cc",
210 "helpers.h",
211 "httpbase.cc",
212 "httpbase.h",
213 "httpclient.cc",
214 "httpclient.h",
215 "httpcommon-inl.h",
216 "httpcommon.cc",
217 "httpcommon.h",
218 "httprequest.cc",
219 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "iosfilesystem.mm",
221 "ipaddress.cc",
222 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "messagedigest.cc",
226 "messagedigest.h",
227 "messagehandler.cc",
228 "messagehandler.h",
229 "messagequeue.cc",
230 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "nethelpers.cc",
232 "nethelpers.h",
233 "network.cc",
234 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "pathutils.cc",
237 "pathutils.h",
238 "physicalsocketserver.cc",
239 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240 "proxydetect.cc",
241 "proxydetect.h",
242 "proxyinfo.cc",
243 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "ratelimiter.cc",
245 "ratelimiter.h",
246 "ratetracker.cc",
247 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "scoped_autorelease_pool.h",
249 "scoped_autorelease_pool.mm",
250 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "sha1.cc",
252 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000253 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "signalthread.cc",
256 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000257 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "sigslot.h",
259 "sigslotrepeater.h",
260 "socket.h",
261 "socketadapters.cc",
262 "socketadapters.h",
263 "socketaddress.cc",
264 "socketaddress.h",
265 "socketaddresspair.cc",
266 "socketaddresspair.h",
267 "socketfactory.h",
268 "socketpool.cc",
269 "socketpool.h",
270 "socketserver.h",
271 "socketstream.cc",
272 "socketstream.h",
273 "ssladapter.cc",
274 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "sslfingerprint.cc",
276 "sslfingerprint.h",
277 "sslidentity.cc",
278 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "sslsocketfactory.cc",
280 "sslsocketfactory.h",
281 "sslstreamadapter.cc",
282 "sslstreamadapter.h",
283 "sslstreamadapterhelper.cc",
284 "sslstreamadapterhelper.h",
285 "stream.cc",
286 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "systeminfo.cc",
288 "systeminfo.h",
289 "task.cc",
290 "task.h",
291 "taskparent.cc",
292 "taskparent.h",
293 "taskrunner.cc",
294 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "thread.cc",
296 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "timing.cc",
298 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "urlencode.cc",
300 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "worker.cc",
302 "worker.h",
303 ]
304
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000305 if (is_posix) {
306 sources += [
307 "unixfilesystem.cc",
308 "unixfilesystem.h",
309 ]
310 }
311
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 if (build_with_chromium) {
313 sources += [
314 "../overrides/webrtc/base/basictypes.h",
315 "../overrides/webrtc/base/constructormagic.h",
316 "../overrides/webrtc/base/logging.cc",
317 "../overrides/webrtc/base/logging.h",
318 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000319
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000320 deps += [ "..:webrtc_common" ]
321
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 if (is_win) {
323 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
324 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000325
326 include_dirs = [
327 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000328 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000329 ]
330
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000331 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000332 } else {
333 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "asyncinvoker.cc",
335 "asyncinvoker.h",
336 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "atomicops.h",
338 "bandwidthsmoother.cc",
339 "bandwidthsmoother.h",
340 "basictypes.h",
341 "bind.h",
342 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "callback.h",
344 "callback.h.pump",
345 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 "filelock.cc",
347 "filelock.h",
348 "fileutils_mock.h",
349 "genericslot.h",
350 "genericslot.h.pump",
351 "httpserver.cc",
352 "httpserver.h",
353 "json.cc",
354 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "logging.cc",
356 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "mathutils.h",
358 "multipart.cc",
359 "multipart.h",
360 "natserver.cc",
361 "natserver.h",
362 "natsocketfactory.cc",
363 "natsocketfactory.h",
364 "nattypes.cc",
365 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "optionsfile.cc",
367 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "profiler.cc",
369 "profiler.h",
370 "proxyserver.cc",
371 "proxyserver.h",
372 "refcount.h",
373 "referencecountedsingletonfactory.h",
374 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "scopedptrcollection.h",
376 "scoped_ref_ptr.h",
377 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000378 "sharedexclusivelock.cc",
379 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "sslconfig.h",
381 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "testclient.cc",
383 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "transformadapter.cc",
385 "transformadapter.h",
386 "versionparsing.cc",
387 "versionparsing.h",
388 "virtualsocketserver.cc",
389 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "window.h",
391 "windowpickerfactory.h",
392 "windowpicker.h",
393 ]
394
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000395 deps += [ "..:webrtc_common" ]
396
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000397 if (is_posix) {
398 sources += [
399 "latebindingsymboltable.cc",
400 "latebindingsymboltable.cc.def",
401 "latebindingsymboltable.h",
402 "latebindingsymboltable.h.def",
403 "posix.cc",
404 "posix.h",
405 ]
406 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000408 if (is_linux) {
409 sources += [
410 "dbus.cc",
411 "dbus.h",
412 "libdbusglibsymboltable.cc",
413 "libdbusglibsymboltable.h",
414 "linuxfdwalk.c",
415 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000416 ]
417 }
418
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000419 if (is_mac) {
420 sources += [
421 "macasyncsocket.cc",
422 "macasyncsocket.h",
423 "maccocoasocketserver.h",
424 "maccocoasocketserver.mm",
425 "macsocketserver.cc",
426 "macsocketserver.h",
427 "macwindowpicker.cc",
428 "macwindowpicker.h",
429 ]
430 }
431
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000432 if (is_win) {
433 sources += [
434 "diskcache_win32.cc",
435 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000436 "win32regkey.cc",
437 "win32regkey.h",
438 "win32socketinit.cc",
439 "win32socketinit.h",
440 "win32socketserver.cc",
441 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000442 ]
443 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000444 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000445 deps += [ "//third_party/jsoncpp" ]
446 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000447 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000448
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000449 # When defined changes the include path for json.h to where it is
450 # expected to be when building json outside of the standalone build.
451 defines += [ "WEBRTC_EXTERNAL_JSON" ]
452 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000453 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000454
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000455 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000456 # compiler settings.
457 configs -= [ "//build/config/compiler:chromium_code" ]
458 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000459 if (!is_win) {
460 cflags += [ "-Wno-uninitialized" ]
461 cflags_cc += [ "-Wno-non-virtual-dtor" ]
462 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000463
464 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000465 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000466 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000467 deps += [ "//third_party/boringssl" ]
468 } else {
469 configs += [ "external_ssl_library" ]
470 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000471 sources += [
472 "openssl.h",
473 "openssladapter.cc",
474 "openssladapter.h",
475 "openssldigest.cc",
476 "openssldigest.h",
477 "opensslidentity.cc",
478 "opensslidentity.h",
479 "opensslstreamadapter.cc",
480 "opensslstreamadapter.h",
481 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000482 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000483 public_configs += [ ":nss_config" ]
484 if (rtc_build_ssl) {
485 if (build_with_chromium) {
486 deps += [ "//crypto:platform" ]
487 } else {
488 deps += [ "//net/third_party/nss/ssl:libssl" ]
489 if (is_linux) {
490 deps += [ ":linux_system_ssl" ]
491 } else {
492 deps += [
493 "//third_party/nss:nspr",
494 "//third_party/nss:nss",
495 ]
496 }
497 }
498 } else {
499 configs += [ "external_ssl_library" ]
500 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000501 sources += [
502 "nssidentity.cc",
503 "nssidentity.h",
504 "nssstreamadapter.cc",
505 "nssstreamadapter.h",
506 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507 }
508
509 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000510 sources += [
511 "ifaddrs-android.cc",
512 "ifaddrs-android.h",
513 ]
514
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000515 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 "log",
517 "GLESv2"
518 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 }
520
521 if (is_ios) {
522 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000523 }
524
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000525 if (use_x11) {
526 sources += [
527 "x11windowpicker.cc",
528 "x11windowpicker.h",
529 ]
530 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000531 "dl",
532 "rt",
533 "Xext",
534 "X11",
535 "Xcomposite",
536 "Xrender",
537 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000538 }
539
540 if (is_linux) {
541 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000542 "dl",
543 "rt",
544 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000545 }
546
547 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000548 sources += [
549 "maccocoathreadhelper.h",
550 "maccocoathreadhelper.mm",
551 "macconversion.cc",
552 "macconversion.h",
553 "macutils.cc",
554 "macutils.h",
555 ]
556
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000557 all_dependent_configs = [ ":mac_config" ]
558
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000559 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 all_dependent_configs += [ ":mac_x86_config" ]
561 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000562 }
563
564 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000565 sources += [
566 "schanneladapter.cc",
567 "schanneladapter.h",
568 "win32.cc",
569 "win32.h",
570 "win32filesystem.cc",
571 "win32filesystem.h",
572 "win32securityerrors.cc",
573 "win32window.cc",
574 "win32window.h",
575 "win32windowpicker.cc",
576 "win32windowpicker.h",
577 "winfirewall.cc",
578 "winfirewall.h",
579 "winping.cc",
580 "winping.h",
581 ]
582
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000583 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000584 "crypt32.lib",
585 "iphlpapi.lib",
586 "secur32.lib",
587 ]
588
589 cflags += [
590 # Suppress warnings about WIN32_LEAN_AND_MEAN.
591 "/wd4005",
592 "/wd4703",
593 ]
594
595 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000596 }
597
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000598 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000599 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000600 # _except_ for ios & mac. We want it there as well, e.g.
601 # because ASSERT and friends trigger off of it.
602 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603 }
604
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000605 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000606 defines += [ "CARBON_DEPRECATED=YES" ]
607 }
608
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000609 if (is_linux || is_android) {
610 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611 "linux.cc",
612 "linux.h",
613 ]
614 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000615}