blob: 8680257ee760b7009a2325676d04603396503447 [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 = [
Peter Boströmff019b02015-04-30 14:16:07 +0200108 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700109 "bitbuffer.cc",
110 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200111 "buffer.cc",
112 "buffer.h",
Noah Richards915590e2015-04-22 15:43:08 -0700113 "bytebuffer.cc",
114 "bytebuffer.h",
115 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000116 "checks.cc",
117 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200118 "criticalsection.cc",
119 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000120 "event.cc",
121 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000122 "event_tracer.cc",
123 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "exp_filter.cc",
125 "exp_filter.h",
126 "md5.cc",
127 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000128 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000130 "platform_file.cc",
131 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200132 "platform_thread.cc",
133 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000134 "safe_conversions.h",
135 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000136 "stringencode.cc",
137 "stringencode.h",
138 "stringutils.cc",
139 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000140 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000141 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000142 "thread_checker.h",
143 "thread_checker_impl.cc",
144 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 "timeutils.cc",
146 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000147 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000148 ]
Noah Richards915590e2015-04-22 15:43:08 -0700149
150 if (build_with_chromium) {
151 sources += [
152 "../overrides/webrtc/base/basictypes.h",
153 "../overrides/webrtc/base/constructormagic.h",
154 ]
155 } else {
156 sources += [
157 "basictypes.h",
158 "constructormagic.h",
159 ]
160 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000161}
162
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000163static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000164 cflags = []
165 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000166 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000167 deps = [
168 ":rtc_base_approved",
169 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000171 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000172 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000173 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000174 ]
175
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000176 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000178 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 ]
180
181 defines = [
182 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 ]
184
185 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000186 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "asyncfile.cc",
188 "asyncfile.h",
189 "asynchttprequest.cc",
190 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000191 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000193 "asyncresolverinterface.cc",
194 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "asyncsocket.cc",
196 "asyncsocket.h",
197 "asynctcpsocket.cc",
198 "asynctcpsocket.h",
199 "asyncudpsocket.cc",
200 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "autodetectproxy.cc",
202 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "base64.cc",
204 "base64.h",
205 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "common.cc",
207 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "cpumonitor.cc",
209 "cpumonitor.h",
210 "crc32.cc",
211 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000212 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "diskcache.cc",
215 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "fileutils.cc",
217 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "firewallsocketserver.cc",
219 "firewallsocketserver.h",
220 "flags.cc",
221 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000222 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "gunit_prod.h",
224 "helpers.cc",
225 "helpers.h",
226 "httpbase.cc",
227 "httpbase.h",
228 "httpclient.cc",
229 "httpclient.h",
230 "httpcommon-inl.h",
231 "httpcommon.cc",
232 "httpcommon.h",
233 "httprequest.cc",
234 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "iosfilesystem.mm",
236 "ipaddress.cc",
237 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240 "messagedigest.cc",
241 "messagedigest.h",
242 "messagehandler.cc",
243 "messagehandler.h",
244 "messagequeue.cc",
245 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "nethelpers.cc",
247 "nethelpers.h",
248 "network.cc",
249 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "pathutils.cc",
252 "pathutils.h",
253 "physicalsocketserver.cc",
254 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "proxydetect.cc",
256 "proxydetect.h",
257 "proxyinfo.cc",
258 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "ratelimiter.cc",
260 "ratelimiter.h",
261 "ratetracker.cc",
262 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "scoped_autorelease_pool.h",
264 "scoped_autorelease_pool.mm",
265 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "sha1.cc",
267 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000268 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "signalthread.cc",
271 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000272 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "sigslot.h",
274 "sigslotrepeater.h",
275 "socket.h",
276 "socketadapters.cc",
277 "socketadapters.h",
278 "socketaddress.cc",
279 "socketaddress.h",
280 "socketaddresspair.cc",
281 "socketaddresspair.h",
282 "socketfactory.h",
283 "socketpool.cc",
284 "socketpool.h",
285 "socketserver.h",
286 "socketstream.cc",
287 "socketstream.h",
288 "ssladapter.cc",
289 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "sslfingerprint.cc",
291 "sslfingerprint.h",
292 "sslidentity.cc",
293 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "sslsocketfactory.cc",
295 "sslsocketfactory.h",
296 "sslstreamadapter.cc",
297 "sslstreamadapter.h",
298 "sslstreamadapterhelper.cc",
299 "sslstreamadapterhelper.h",
300 "stream.cc",
301 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "systeminfo.cc",
303 "systeminfo.h",
304 "task.cc",
305 "task.h",
306 "taskparent.cc",
307 "taskparent.h",
308 "taskrunner.cc",
309 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 "thread.cc",
311 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 "timing.cc",
313 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000314 "urlencode.cc",
315 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "worker.cc",
317 "worker.h",
318 ]
319
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000320 if (is_posix) {
321 sources += [
322 "unixfilesystem.cc",
323 "unixfilesystem.h",
324 ]
325 }
326
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 if (build_with_chromium) {
328 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "../overrides/webrtc/base/logging.cc",
330 "../overrides/webrtc/base/logging.h",
331 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000332
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000333 deps += [ "..:webrtc_common" ]
334
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 if (is_win) {
336 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
337 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000338
339 include_dirs = [
340 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000341 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000342 ]
343
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000344 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000345 } else {
346 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000347 "asyncinvoker.cc",
348 "asyncinvoker.h",
349 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 "bandwidthsmoother.cc",
351 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 "bind.h",
353 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "callback.h",
355 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 "filelock.cc",
357 "filelock.h",
358 "fileutils_mock.h",
359 "genericslot.h",
360 "genericslot.h.pump",
361 "httpserver.cc",
362 "httpserver.h",
363 "json.cc",
364 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "logging.cc",
366 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "mathutils.h",
368 "multipart.cc",
369 "multipart.h",
370 "natserver.cc",
371 "natserver.h",
372 "natsocketfactory.cc",
373 "natsocketfactory.h",
374 "nattypes.cc",
375 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "optionsfile.cc",
377 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "profiler.cc",
379 "profiler.h",
380 "proxyserver.cc",
381 "proxyserver.h",
382 "refcount.h",
383 "referencecountedsingletonfactory.h",
384 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "scopedptrcollection.h",
386 "scoped_ref_ptr.h",
387 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000388 "sharedexclusivelock.cc",
389 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "sslconfig.h",
391 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000392 "testclient.cc",
393 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "transformadapter.cc",
395 "transformadapter.h",
396 "versionparsing.cc",
397 "versionparsing.h",
398 "virtualsocketserver.cc",
399 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "window.h",
401 "windowpickerfactory.h",
402 "windowpicker.h",
403 ]
404
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000405 deps += [ "..:webrtc_common" ]
406
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000407 if (is_posix) {
408 sources += [
409 "latebindingsymboltable.cc",
410 "latebindingsymboltable.cc.def",
411 "latebindingsymboltable.h",
412 "latebindingsymboltable.h.def",
413 "posix.cc",
414 "posix.h",
415 ]
416 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000417
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000418 if (is_linux) {
419 sources += [
420 "dbus.cc",
421 "dbus.h",
422 "libdbusglibsymboltable.cc",
423 "libdbusglibsymboltable.h",
424 "linuxfdwalk.c",
425 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000426 ]
427 }
428
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000429 if (is_mac) {
430 sources += [
431 "macasyncsocket.cc",
432 "macasyncsocket.h",
433 "maccocoasocketserver.h",
434 "maccocoasocketserver.mm",
435 "macsocketserver.cc",
436 "macsocketserver.h",
437 "macwindowpicker.cc",
438 "macwindowpicker.h",
439 ]
440 }
441
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000442 if (is_win) {
443 sources += [
444 "diskcache_win32.cc",
445 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000446 "win32regkey.cc",
447 "win32regkey.h",
448 "win32socketinit.cc",
449 "win32socketinit.h",
450 "win32socketserver.cc",
451 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000452 ]
453 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000454 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000455 deps += [ "//third_party/jsoncpp" ]
456 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000457 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000458
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000459 # When defined changes the include path for json.h to where it is
460 # expected to be when building json outside of the standalone build.
461 defines += [ "WEBRTC_EXTERNAL_JSON" ]
462 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000463 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000464
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000465 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000466 # compiler settings.
467 configs -= [ "//build/config/compiler:chromium_code" ]
468 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000469 if (!is_win) {
470 cflags += [ "-Wno-uninitialized" ]
471 cflags_cc += [ "-Wno-non-virtual-dtor" ]
472 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000473
474 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000475 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000476 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000477 deps += [ "//third_party/boringssl" ]
478 } else {
479 configs += [ "external_ssl_library" ]
480 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000481 sources += [
482 "openssl.h",
483 "openssladapter.cc",
484 "openssladapter.h",
485 "openssldigest.cc",
486 "openssldigest.h",
487 "opensslidentity.cc",
488 "opensslidentity.h",
489 "opensslstreamadapter.cc",
490 "opensslstreamadapter.h",
491 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000492 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000493 public_configs += [ ":nss_config" ]
494 if (rtc_build_ssl) {
495 if (build_with_chromium) {
496 deps += [ "//crypto:platform" ]
497 } else {
498 deps += [ "//net/third_party/nss/ssl:libssl" ]
499 if (is_linux) {
500 deps += [ ":linux_system_ssl" ]
501 } else {
502 deps += [
503 "//third_party/nss:nspr",
504 "//third_party/nss:nss",
505 ]
506 }
507 }
508 } else {
509 configs += [ "external_ssl_library" ]
510 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000511 sources += [
512 "nssidentity.cc",
513 "nssidentity.h",
514 "nssstreamadapter.cc",
515 "nssstreamadapter.h",
516 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 }
518
519 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000520 sources += [
521 "ifaddrs-android.cc",
522 "ifaddrs-android.h",
523 ]
524
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000525 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 "log",
527 "GLESv2"
528 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000529 }
530
531 if (is_ios) {
532 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 }
534
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000535 if (use_x11) {
536 sources += [
537 "x11windowpicker.cc",
538 "x11windowpicker.h",
539 ]
540 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000541 "dl",
542 "rt",
543 "Xext",
544 "X11",
545 "Xcomposite",
546 "Xrender",
547 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000548 }
549
550 if (is_linux) {
551 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000552 "dl",
553 "rt",
554 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000555 }
556
557 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000558 sources += [
559 "maccocoathreadhelper.h",
560 "maccocoathreadhelper.mm",
561 "macconversion.cc",
562 "macconversion.h",
563 "macutils.cc",
564 "macutils.h",
565 ]
566
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000567 all_dependent_configs = [ ":mac_config" ]
568
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000569 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 all_dependent_configs += [ ":mac_x86_config" ]
571 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000572 }
573
574 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000575 sources += [
576 "schanneladapter.cc",
577 "schanneladapter.h",
578 "win32.cc",
579 "win32.h",
580 "win32filesystem.cc",
581 "win32filesystem.h",
582 "win32securityerrors.cc",
583 "win32window.cc",
584 "win32window.h",
585 "win32windowpicker.cc",
586 "win32windowpicker.h",
587 "winfirewall.cc",
588 "winfirewall.h",
589 "winping.cc",
590 "winping.h",
591 ]
592
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000593 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594 "crypt32.lib",
595 "iphlpapi.lib",
596 "secur32.lib",
597 ]
598
599 cflags += [
600 # Suppress warnings about WIN32_LEAN_AND_MEAN.
601 "/wd4005",
602 "/wd4703",
603 ]
604
605 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000606 }
607
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000608 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000609 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000610 # _except_ for ios & mac. We want it there as well, e.g.
611 # because ASSERT and friends trigger off of it.
612 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000613 }
614
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000615 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000616 defines += [ "CARBON_DEPRECATED=YES" ]
617 }
618
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000619 if (is_linux || is_android) {
620 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000621 "linux.cc",
622 "linux.h",
623 ]
624 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000625}