blob: 46bacd84f3f2efeb4a2760e535b729996faf406c [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 = [
Karl Wiberg94784372015-04-20 14:03:07 +0200106 "buffer.cc",
107 "buffer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000108 "checks.cc",
109 "checks.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000110 "event.cc",
111 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000112 "event_tracer.cc",
113 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000114 "exp_filter.cc",
115 "exp_filter.h",
116 "md5.cc",
117 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000118 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000119 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000120 "platform_file.cc",
121 "platform_file.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000122 "safe_conversions.h",
123 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "stringencode.cc",
125 "stringencode.h",
126 "stringutils.cc",
127 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000128 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000129 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000130 "thread_checker.h",
131 "thread_checker_impl.cc",
132 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000133 "timeutils.cc",
134 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000135 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000136 ]
137}
138
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000139static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000140 cflags = []
141 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000142 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000143 deps = [
144 ":rtc_base_approved",
145 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000146
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000147 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000148 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000149 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000150 ]
151
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000152 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000153 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000154 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000155 ]
156
157 defines = [
158 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000159 ]
160
161 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000162 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000163 "asyncfile.cc",
164 "asyncfile.h",
165 "asynchttprequest.cc",
166 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000167 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000168 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000169 "asyncresolverinterface.cc",
170 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000171 "asyncsocket.cc",
172 "asyncsocket.h",
173 "asynctcpsocket.cc",
174 "asynctcpsocket.h",
175 "asyncudpsocket.cc",
176 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 "autodetectproxy.cc",
178 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 "base64.cc",
180 "base64.h",
181 "basicdefs.h",
Noah Richardsbbf7c862015-04-21 16:30:13 -0700182 "bitbuffer.cc",
183 "bitbuffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 "bytebuffer.cc",
185 "bytebuffer.h",
186 "byteorder.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "common.cc",
188 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 "cpumonitor.cc",
190 "cpumonitor.h",
191 "crc32.cc",
192 "crc32.h",
Jiayang Liubef8d2d2015-03-26 14:38:46 -0700193 "criticalsection.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "criticalsection.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000195 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 "diskcache.cc",
198 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "fileutils.cc",
200 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "firewallsocketserver.cc",
202 "firewallsocketserver.h",
203 "flags.cc",
204 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000205 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "gunit_prod.h",
207 "helpers.cc",
208 "helpers.h",
209 "httpbase.cc",
210 "httpbase.h",
211 "httpclient.cc",
212 "httpclient.h",
213 "httpcommon-inl.h",
214 "httpcommon.cc",
215 "httpcommon.h",
216 "httprequest.cc",
217 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "iosfilesystem.mm",
219 "ipaddress.cc",
220 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "messagedigest.cc",
224 "messagedigest.h",
225 "messagehandler.cc",
226 "messagehandler.h",
227 "messagequeue.cc",
228 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "nethelpers.cc",
230 "nethelpers.h",
231 "network.cc",
232 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "pathutils.cc",
235 "pathutils.h",
236 "physicalsocketserver.cc",
237 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "proxydetect.cc",
239 "proxydetect.h",
240 "proxyinfo.cc",
241 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "ratelimiter.cc",
243 "ratelimiter.h",
244 "ratetracker.cc",
245 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "scoped_autorelease_pool.h",
247 "scoped_autorelease_pool.mm",
248 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "sha1.cc",
250 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000251 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "signalthread.cc",
254 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000255 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "sigslot.h",
257 "sigslotrepeater.h",
258 "socket.h",
259 "socketadapters.cc",
260 "socketadapters.h",
261 "socketaddress.cc",
262 "socketaddress.h",
263 "socketaddresspair.cc",
264 "socketaddresspair.h",
265 "socketfactory.h",
266 "socketpool.cc",
267 "socketpool.h",
268 "socketserver.h",
269 "socketstream.cc",
270 "socketstream.h",
271 "ssladapter.cc",
272 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "sslfingerprint.cc",
274 "sslfingerprint.h",
275 "sslidentity.cc",
276 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "sslsocketfactory.cc",
278 "sslsocketfactory.h",
279 "sslstreamadapter.cc",
280 "sslstreamadapter.h",
281 "sslstreamadapterhelper.cc",
282 "sslstreamadapterhelper.h",
283 "stream.cc",
284 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "systeminfo.cc",
286 "systeminfo.h",
287 "task.cc",
288 "task.h",
289 "taskparent.cc",
290 "taskparent.h",
291 "taskrunner.cc",
292 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "thread.cc",
294 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "timing.cc",
296 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "urlencode.cc",
298 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "worker.cc",
300 "worker.h",
301 ]
302
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000303 if (is_posix) {
304 sources += [
305 "unixfilesystem.cc",
306 "unixfilesystem.h",
307 ]
308 }
309
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 if (build_with_chromium) {
311 sources += [
312 "../overrides/webrtc/base/basictypes.h",
313 "../overrides/webrtc/base/constructormagic.h",
314 "../overrides/webrtc/base/logging.cc",
315 "../overrides/webrtc/base/logging.h",
316 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000317
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000318 deps += [ "..:webrtc_common" ]
319
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 if (is_win) {
321 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
322 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000323
324 include_dirs = [
325 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000326 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000327 ]
328
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000329 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000330 } else {
331 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "asyncinvoker.cc",
333 "asyncinvoker.h",
334 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "atomicops.h",
336 "bandwidthsmoother.cc",
337 "bandwidthsmoother.h",
338 "basictypes.h",
339 "bind.h",
340 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "callback.h",
342 "callback.h.pump",
343 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "filelock.cc",
345 "filelock.h",
346 "fileutils_mock.h",
347 "genericslot.h",
348 "genericslot.h.pump",
349 "httpserver.cc",
350 "httpserver.h",
351 "json.cc",
352 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "logging.cc",
354 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "mathutils.h",
356 "multipart.cc",
357 "multipart.h",
358 "natserver.cc",
359 "natserver.h",
360 "natsocketfactory.cc",
361 "natsocketfactory.h",
362 "nattypes.cc",
363 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "optionsfile.cc",
365 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "profiler.cc",
367 "profiler.h",
368 "proxyserver.cc",
369 "proxyserver.h",
370 "refcount.h",
371 "referencecountedsingletonfactory.h",
372 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "scopedptrcollection.h",
374 "scoped_ref_ptr.h",
375 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000376 "sharedexclusivelock.cc",
377 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "sslconfig.h",
379 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "testclient.cc",
381 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "transformadapter.cc",
383 "transformadapter.h",
384 "versionparsing.cc",
385 "versionparsing.h",
386 "virtualsocketserver.cc",
387 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "window.h",
389 "windowpickerfactory.h",
390 "windowpicker.h",
391 ]
392
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000393 deps += [ "..:webrtc_common" ]
394
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000395 if (is_posix) {
396 sources += [
397 "latebindingsymboltable.cc",
398 "latebindingsymboltable.cc.def",
399 "latebindingsymboltable.h",
400 "latebindingsymboltable.h.def",
401 "posix.cc",
402 "posix.h",
403 ]
404 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000406 if (is_linux) {
407 sources += [
408 "dbus.cc",
409 "dbus.h",
410 "libdbusglibsymboltable.cc",
411 "libdbusglibsymboltable.h",
412 "linuxfdwalk.c",
413 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000414 ]
415 }
416
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000417 if (is_mac) {
418 sources += [
419 "macasyncsocket.cc",
420 "macasyncsocket.h",
421 "maccocoasocketserver.h",
422 "maccocoasocketserver.mm",
423 "macsocketserver.cc",
424 "macsocketserver.h",
425 "macwindowpicker.cc",
426 "macwindowpicker.h",
427 ]
428 }
429
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000430 if (is_win) {
431 sources += [
432 "diskcache_win32.cc",
433 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000434 "win32regkey.cc",
435 "win32regkey.h",
436 "win32socketinit.cc",
437 "win32socketinit.h",
438 "win32socketserver.cc",
439 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 ]
441 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000442 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000443 deps += [ "//third_party/jsoncpp" ]
444 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000445 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000446
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000447 # When defined changes the include path for json.h to where it is
448 # expected to be when building json outside of the standalone build.
449 defines += [ "WEBRTC_EXTERNAL_JSON" ]
450 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000451 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000452
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000453 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000454 # compiler settings.
455 configs -= [ "//build/config/compiler:chromium_code" ]
456 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000457 if (!is_win) {
458 cflags += [ "-Wno-uninitialized" ]
459 cflags_cc += [ "-Wno-non-virtual-dtor" ]
460 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461
462 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000463 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000464 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000465 deps += [ "//third_party/boringssl" ]
466 } else {
467 configs += [ "external_ssl_library" ]
468 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000469 sources += [
470 "openssl.h",
471 "openssladapter.cc",
472 "openssladapter.h",
473 "openssldigest.cc",
474 "openssldigest.h",
475 "opensslidentity.cc",
476 "opensslidentity.h",
477 "opensslstreamadapter.cc",
478 "opensslstreamadapter.h",
479 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000480 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000481 public_configs += [ ":nss_config" ]
482 if (rtc_build_ssl) {
483 if (build_with_chromium) {
484 deps += [ "//crypto:platform" ]
485 } else {
486 deps += [ "//net/third_party/nss/ssl:libssl" ]
487 if (is_linux) {
488 deps += [ ":linux_system_ssl" ]
489 } else {
490 deps += [
491 "//third_party/nss:nspr",
492 "//third_party/nss:nss",
493 ]
494 }
495 }
496 } else {
497 configs += [ "external_ssl_library" ]
498 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000499 sources += [
500 "nssidentity.cc",
501 "nssidentity.h",
502 "nssstreamadapter.cc",
503 "nssstreamadapter.h",
504 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 }
506
507 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000508 sources += [
509 "ifaddrs-android.cc",
510 "ifaddrs-android.h",
511 ]
512
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000513 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000514 "log",
515 "GLESv2"
516 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 }
518
519 if (is_ios) {
520 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 }
522
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 if (use_x11) {
524 sources += [
525 "x11windowpicker.cc",
526 "x11windowpicker.h",
527 ]
528 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000529 "dl",
530 "rt",
531 "Xext",
532 "X11",
533 "Xcomposite",
534 "Xrender",
535 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000536 }
537
538 if (is_linux) {
539 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000540 "dl",
541 "rt",
542 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 }
544
545 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000546 sources += [
547 "maccocoathreadhelper.h",
548 "maccocoathreadhelper.mm",
549 "macconversion.cc",
550 "macconversion.h",
551 "macutils.cc",
552 "macutils.h",
553 ]
554
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000555 all_dependent_configs = [ ":mac_config" ]
556
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000557 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 all_dependent_configs += [ ":mac_x86_config" ]
559 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 }
561
562 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000563 sources += [
564 "schanneladapter.cc",
565 "schanneladapter.h",
566 "win32.cc",
567 "win32.h",
568 "win32filesystem.cc",
569 "win32filesystem.h",
570 "win32securityerrors.cc",
571 "win32window.cc",
572 "win32window.h",
573 "win32windowpicker.cc",
574 "win32windowpicker.h",
575 "winfirewall.cc",
576 "winfirewall.h",
577 "winping.cc",
578 "winping.h",
579 ]
580
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000581 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000582 "crypt32.lib",
583 "iphlpapi.lib",
584 "secur32.lib",
585 ]
586
587 cflags += [
588 # Suppress warnings about WIN32_LEAN_AND_MEAN.
589 "/wd4005",
590 "/wd4703",
591 ]
592
593 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594 }
595
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000596 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000597 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000598 # _except_ for ios & mac. We want it there as well, e.g.
599 # because ASSERT and friends trigger off of it.
600 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000601 }
602
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000603 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 defines += [ "CARBON_DEPRECATED=YES" ]
605 }
606
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000607 if (is_linux || is_android) {
608 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000609 "linux.cc",
610 "linux.h",
611 ]
612 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000613}