blob: 967952ed77fe8f9000d2b3d69f6a714736923875 [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" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000531 }
532
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000533 if (use_x11) {
534 sources += [
535 "x11windowpicker.cc",
536 "x11windowpicker.h",
537 ]
538 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000539 "dl",
540 "rt",
541 "Xext",
542 "X11",
543 "Xcomposite",
544 "Xrender",
545 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000546 }
547
548 if (is_linux) {
549 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000550 "dl",
551 "rt",
552 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000553 }
554
555 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000556 sources += [
557 "maccocoathreadhelper.h",
558 "maccocoathreadhelper.mm",
559 "macconversion.cc",
560 "macconversion.h",
561 "macutils.cc",
562 "macutils.h",
563 ]
564
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000565 all_dependent_configs = [ ":mac_config" ]
566
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000567 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000568 all_dependent_configs += [ ":mac_x86_config" ]
569 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 }
571
572 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000573 sources += [
574 "schanneladapter.cc",
575 "schanneladapter.h",
576 "win32.cc",
577 "win32.h",
578 "win32filesystem.cc",
579 "win32filesystem.h",
580 "win32securityerrors.cc",
581 "win32window.cc",
582 "win32window.h",
583 "win32windowpicker.cc",
584 "win32windowpicker.h",
585 "winfirewall.cc",
586 "winfirewall.h",
587 "winping.cc",
588 "winping.h",
589 ]
590
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000591 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 "crypt32.lib",
593 "iphlpapi.lib",
594 "secur32.lib",
595 ]
596
597 cflags += [
598 # Suppress warnings about WIN32_LEAN_AND_MEAN.
599 "/wd4005",
600 "/wd4703",
601 ]
602
603 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 }
605
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000606 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000607 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000608 # _except_ for ios & mac. We want it there as well, e.g.
609 # because ASSERT and friends trigger off of it.
610 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611 }
612
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000613 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000614 defines += [ "CARBON_DEPRECATED=YES" ]
615 }
616
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000617 if (is_linux || is_android) {
618 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000619 "linux.cc",
620 "linux.h",
621 ]
622 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000623}