blob: a9868e9311278bc27889f165917752123537a3fd [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",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000132 "safe_conversions.h",
133 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000134 "stringencode.cc",
135 "stringencode.h",
136 "stringutils.cc",
137 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000138 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000139 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000140 "thread_checker.h",
141 "thread_checker_impl.cc",
142 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000143 "timeutils.cc",
144 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000145 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000146 ]
Noah Richards915590e2015-04-22 15:43:08 -0700147
148 if (build_with_chromium) {
149 sources += [
150 "../overrides/webrtc/base/basictypes.h",
151 "../overrides/webrtc/base/constructormagic.h",
152 ]
153 } else {
154 sources += [
155 "basictypes.h",
156 "constructormagic.h",
157 ]
158 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159}
160
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000161static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000162 cflags = []
163 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000164 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000165 deps = [
166 ":rtc_base_approved",
167 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000168
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000169 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000171 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000172 ]
173
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000174 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000176 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 ]
178
179 defines = [
180 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 ]
182
183 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000184 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "asyncfile.cc",
186 "asyncfile.h",
187 "asynchttprequest.cc",
188 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000189 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000191 "asyncresolverinterface.cc",
192 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "asyncsocket.cc",
194 "asyncsocket.h",
195 "asynctcpsocket.cc",
196 "asynctcpsocket.h",
197 "asyncudpsocket.cc",
198 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "autodetectproxy.cc",
200 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "base64.cc",
202 "base64.h",
203 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "common.cc",
205 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "cpumonitor.cc",
207 "cpumonitor.h",
208 "crc32.cc",
209 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000210 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "diskcache.cc",
213 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "fileutils.cc",
215 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "firewallsocketserver.cc",
217 "firewallsocketserver.h",
218 "flags.cc",
219 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000220 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "gunit_prod.h",
222 "helpers.cc",
223 "helpers.h",
224 "httpbase.cc",
225 "httpbase.h",
226 "httpclient.cc",
227 "httpclient.h",
228 "httpcommon-inl.h",
229 "httpcommon.cc",
230 "httpcommon.h",
231 "httprequest.cc",
232 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "iosfilesystem.mm",
234 "ipaddress.cc",
235 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "messagedigest.cc",
239 "messagedigest.h",
240 "messagehandler.cc",
241 "messagehandler.h",
242 "messagequeue.cc",
243 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "nethelpers.cc",
245 "nethelpers.h",
246 "network.cc",
247 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "pathutils.cc",
250 "pathutils.h",
251 "physicalsocketserver.cc",
252 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "proxydetect.cc",
254 "proxydetect.h",
255 "proxyinfo.cc",
256 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "ratelimiter.cc",
258 "ratelimiter.h",
259 "ratetracker.cc",
260 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "scoped_autorelease_pool.h",
262 "scoped_autorelease_pool.mm",
263 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "sha1.cc",
265 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000266 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "signalthread.cc",
269 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000270 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "sigslot.h",
272 "sigslotrepeater.h",
273 "socket.h",
274 "socketadapters.cc",
275 "socketadapters.h",
276 "socketaddress.cc",
277 "socketaddress.h",
278 "socketaddresspair.cc",
279 "socketaddresspair.h",
280 "socketfactory.h",
281 "socketpool.cc",
282 "socketpool.h",
283 "socketserver.h",
284 "socketstream.cc",
285 "socketstream.h",
286 "ssladapter.cc",
287 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "sslfingerprint.cc",
289 "sslfingerprint.h",
290 "sslidentity.cc",
291 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "sslsocketfactory.cc",
293 "sslsocketfactory.h",
294 "sslstreamadapter.cc",
295 "sslstreamadapter.h",
296 "sslstreamadapterhelper.cc",
297 "sslstreamadapterhelper.h",
298 "stream.cc",
299 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000300 "systeminfo.cc",
301 "systeminfo.h",
302 "task.cc",
303 "task.h",
304 "taskparent.cc",
305 "taskparent.h",
306 "taskrunner.cc",
307 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 "thread.cc",
309 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 "timing.cc",
311 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 "urlencode.cc",
313 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000314 "worker.cc",
315 "worker.h",
316 ]
317
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000318 if (is_posix) {
319 sources += [
320 "unixfilesystem.cc",
321 "unixfilesystem.h",
322 ]
323 }
324
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 if (build_with_chromium) {
326 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "../overrides/webrtc/base/logging.cc",
328 "../overrides/webrtc/base/logging.h",
329 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000330
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000331 deps += [ "..:webrtc_common" ]
332
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 if (is_win) {
334 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
335 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000336
337 include_dirs = [
338 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000339 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000340 ]
341
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000342 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000343 } else {
344 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 "asyncinvoker.cc",
346 "asyncinvoker.h",
347 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 "bandwidthsmoother.cc",
349 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 "bind.h",
351 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 "callback.h",
353 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "filelock.cc",
355 "filelock.h",
356 "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}