blob: 116e4e9a27d2cf8ae7d3eda0145345862b37bdfe [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 "fileutils_mock.h",
357 "genericslot.h",
358 "genericslot.h.pump",
359 "httpserver.cc",
360 "httpserver.h",
361 "json.cc",
362 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "logging.cc",
364 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "mathutils.h",
366 "multipart.cc",
367 "multipart.h",
368 "natserver.cc",
369 "natserver.h",
370 "natsocketfactory.cc",
371 "natsocketfactory.h",
372 "nattypes.cc",
373 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "optionsfile.cc",
375 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "profiler.cc",
377 "profiler.h",
378 "proxyserver.cc",
379 "proxyserver.h",
380 "refcount.h",
381 "referencecountedsingletonfactory.h",
382 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000383 "scopedptrcollection.h",
384 "scoped_ref_ptr.h",
385 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000386 "sharedexclusivelock.cc",
387 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "sslconfig.h",
389 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "testclient.cc",
391 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000392 "transformadapter.cc",
393 "transformadapter.h",
394 "versionparsing.cc",
395 "versionparsing.h",
396 "virtualsocketserver.cc",
397 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "window.h",
399 "windowpickerfactory.h",
400 "windowpicker.h",
401 ]
402
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000403 deps += [ "..:webrtc_common" ]
404
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000405 if (is_posix) {
406 sources += [
407 "latebindingsymboltable.cc",
408 "latebindingsymboltable.cc.def",
409 "latebindingsymboltable.h",
410 "latebindingsymboltable.h.def",
411 "posix.cc",
412 "posix.h",
413 ]
414 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000415
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 if (is_linux) {
417 sources += [
418 "dbus.cc",
419 "dbus.h",
420 "libdbusglibsymboltable.cc",
421 "libdbusglibsymboltable.h",
422 "linuxfdwalk.c",
423 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000424 ]
425 }
426
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000427 if (is_mac) {
428 sources += [
429 "macasyncsocket.cc",
430 "macasyncsocket.h",
431 "maccocoasocketserver.h",
432 "maccocoasocketserver.mm",
433 "macsocketserver.cc",
434 "macsocketserver.h",
435 "macwindowpicker.cc",
436 "macwindowpicker.h",
437 ]
438 }
439
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 if (is_win) {
441 sources += [
442 "diskcache_win32.cc",
443 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000444 "win32regkey.cc",
445 "win32regkey.h",
446 "win32socketinit.cc",
447 "win32socketinit.h",
448 "win32socketserver.cc",
449 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450 ]
451 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000452 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000453 deps += [ "//third_party/jsoncpp" ]
454 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000455 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000457 # When defined changes the include path for json.h to where it is
458 # expected to be when building json outside of the standalone build.
459 defines += [ "WEBRTC_EXTERNAL_JSON" ]
460 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000461 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000462
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000463 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000464 # compiler settings.
465 configs -= [ "//build/config/compiler:chromium_code" ]
466 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000467 if (!is_win) {
468 cflags += [ "-Wno-uninitialized" ]
469 cflags_cc += [ "-Wno-non-virtual-dtor" ]
470 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000471
472 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000473 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000474 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000475 deps += [ "//third_party/boringssl" ]
476 } else {
477 configs += [ "external_ssl_library" ]
478 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000479 sources += [
480 "openssl.h",
481 "openssladapter.cc",
482 "openssladapter.h",
483 "openssldigest.cc",
484 "openssldigest.h",
485 "opensslidentity.cc",
486 "opensslidentity.h",
487 "opensslstreamadapter.cc",
488 "opensslstreamadapter.h",
489 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000490 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000491 public_configs += [ ":nss_config" ]
492 if (rtc_build_ssl) {
493 if (build_with_chromium) {
494 deps += [ "//crypto:platform" ]
495 } else {
496 deps += [ "//net/third_party/nss/ssl:libssl" ]
497 if (is_linux) {
498 deps += [ ":linux_system_ssl" ]
499 } else {
500 deps += [
501 "//third_party/nss:nspr",
502 "//third_party/nss:nss",
503 ]
504 }
505 }
506 } else {
507 configs += [ "external_ssl_library" ]
508 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000509 sources += [
510 "nssidentity.cc",
511 "nssidentity.h",
512 "nssstreamadapter.cc",
513 "nssstreamadapter.h",
514 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 }
516
517 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000518 sources += [
519 "ifaddrs-android.cc",
520 "ifaddrs-android.h",
521 ]
522
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 "log",
525 "GLESv2"
526 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000527 }
528
529 if (is_ios) {
530 all_dependent_configs += [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200531
532 sources += [
533 "macconversion.cc",
534 "macconversion.h",
535 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 }
537
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000538 if (use_x11) {
539 sources += [
540 "x11windowpicker.cc",
541 "x11windowpicker.h",
542 ]
543 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000544 "dl",
545 "rt",
546 "Xext",
547 "X11",
548 "Xcomposite",
549 "Xrender",
550 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000551 }
552
553 if (is_linux) {
554 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000555 "dl",
556 "rt",
557 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 }
559
560 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000561 sources += [
562 "maccocoathreadhelper.h",
563 "maccocoathreadhelper.mm",
564 "macconversion.cc",
565 "macconversion.h",
566 "macutils.cc",
567 "macutils.h",
568 ]
569
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 all_dependent_configs = [ ":mac_config" ]
571
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000572 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000573 all_dependent_configs += [ ":mac_x86_config" ]
574 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000575 }
576
577 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000578 sources += [
579 "schanneladapter.cc",
580 "schanneladapter.h",
581 "win32.cc",
582 "win32.h",
583 "win32filesystem.cc",
584 "win32filesystem.h",
585 "win32securityerrors.cc",
586 "win32window.cc",
587 "win32window.h",
588 "win32windowpicker.cc",
589 "win32windowpicker.h",
590 "winfirewall.cc",
591 "winfirewall.h",
592 "winping.cc",
593 "winping.h",
594 ]
595
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000596 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000597 "crypt32.lib",
598 "iphlpapi.lib",
599 "secur32.lib",
600 ]
601
602 cflags += [
603 # Suppress warnings about WIN32_LEAN_AND_MEAN.
604 "/wd4005",
605 "/wd4703",
606 ]
607
608 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000609 }
610
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000611 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000612 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000613 # _except_ for ios & mac. We want it there as well, e.g.
614 # because ASSERT and friends trigger off of it.
615 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000616 }
617
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000618 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000619 defines += [ "CARBON_DEPRECATED=YES" ]
620 }
621
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000622 if (is_linux || is_android) {
623 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000624 "linux.cc",
625 "linux.h",
626 ]
627 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000628}