blob: d755bb736eedecabbec47249a6d9bbbbe751392f [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",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200113 "bufferqueue.cc",
114 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700115 "bytebuffer.cc",
116 "bytebuffer.h",
117 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000118 "checks.cc",
119 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200120 "criticalsection.cc",
121 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000122 "event.cc",
123 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000124 "event_tracer.cc",
125 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000126 "exp_filter.cc",
127 "exp_filter.h",
128 "md5.cc",
129 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000130 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000131 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000132 "platform_file.cc",
133 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200134 "platform_thread.cc",
135 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000136 "safe_conversions.h",
137 "safe_conversions_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000138 "stringencode.cc",
139 "stringencode.h",
140 "stringutils.cc",
141 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000142 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000143 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000144 "thread_checker.h",
145 "thread_checker_impl.cc",
146 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000147 "timeutils.cc",
148 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000149 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000150 ]
Noah Richards915590e2015-04-22 15:43:08 -0700151
152 if (build_with_chromium) {
153 sources += [
154 "../overrides/webrtc/base/basictypes.h",
155 "../overrides/webrtc/base/constructormagic.h",
156 ]
157 } else {
158 sources += [
159 "basictypes.h",
160 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200161 "logging.cc",
162 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700163 ]
164 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000165}
166
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000167static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000168 cflags = []
169 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000170 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000171 deps = [
172 ":rtc_base_approved",
173 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000174
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000176 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000177 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000178 ]
179
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000180 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000182 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 ]
184
185 defines = [
186 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 ]
188
189 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000190 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 "asyncfile.cc",
192 "asyncfile.h",
193 "asynchttprequest.cc",
194 "asynchttprequest.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000195 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000197 "asyncresolverinterface.cc",
198 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "asyncsocket.cc",
200 "asyncsocket.h",
201 "asynctcpsocket.cc",
202 "asynctcpsocket.h",
203 "asyncudpsocket.cc",
204 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205 "autodetectproxy.cc",
206 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "base64.cc",
208 "base64.h",
209 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210 "common.cc",
211 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "cpumonitor.cc",
213 "cpumonitor.h",
214 "crc32.cc",
215 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000216 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "diskcache.cc",
219 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "fileutils.cc",
221 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "firewallsocketserver.cc",
223 "firewallsocketserver.h",
224 "flags.cc",
225 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000226 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "gunit_prod.h",
228 "helpers.cc",
229 "helpers.h",
230 "httpbase.cc",
231 "httpbase.h",
232 "httpclient.cc",
233 "httpclient.h",
234 "httpcommon-inl.h",
235 "httpcommon.cc",
236 "httpcommon.h",
237 "httprequest.cc",
238 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "iosfilesystem.mm",
240 "ipaddress.cc",
241 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "messagedigest.cc",
245 "messagedigest.h",
246 "messagehandler.cc",
247 "messagehandler.h",
248 "messagequeue.cc",
249 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "nethelpers.cc",
251 "nethelpers.h",
252 "network.cc",
253 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "pathutils.cc",
256 "pathutils.h",
257 "physicalsocketserver.cc",
258 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "proxydetect.cc",
260 "proxydetect.h",
261 "proxyinfo.cc",
262 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "ratelimiter.cc",
264 "ratelimiter.h",
265 "ratetracker.cc",
266 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "scoped_autorelease_pool.h",
268 "scoped_autorelease_pool.mm",
269 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "sha1.cc",
271 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000272 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "signalthread.cc",
275 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000276 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "sigslot.h",
278 "sigslotrepeater.h",
279 "socket.h",
280 "socketadapters.cc",
281 "socketadapters.h",
282 "socketaddress.cc",
283 "socketaddress.h",
284 "socketaddresspair.cc",
285 "socketaddresspair.h",
286 "socketfactory.h",
287 "socketpool.cc",
288 "socketpool.h",
289 "socketserver.h",
290 "socketstream.cc",
291 "socketstream.h",
292 "ssladapter.cc",
293 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "sslfingerprint.cc",
295 "sslfingerprint.h",
296 "sslidentity.cc",
297 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000298 "sslsocketfactory.cc",
299 "sslsocketfactory.h",
300 "sslstreamadapter.cc",
301 "sslstreamadapter.h",
302 "sslstreamadapterhelper.cc",
303 "sslstreamadapterhelper.h",
304 "stream.cc",
305 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000306 "systeminfo.cc",
307 "systeminfo.h",
308 "task.cc",
309 "task.h",
310 "taskparent.cc",
311 "taskparent.h",
312 "taskrunner.cc",
313 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000314 "thread.cc",
315 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "timing.cc",
317 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 "urlencode.cc",
319 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "worker.cc",
321 "worker.h",
322 ]
323
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000324 if (is_posix) {
325 sources += [
326 "unixfilesystem.cc",
327 "unixfilesystem.h",
328 ]
329 }
330
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 if (build_with_chromium) {
332 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "../overrides/webrtc/base/logging.cc",
334 "../overrides/webrtc/base/logging.h",
335 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000336
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000337 deps += [ "..:webrtc_common" ]
338
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 if (is_win) {
340 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
341 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000342
343 include_dirs = [
344 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000345 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000346 ]
347
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000348 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349 } else {
350 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 "asyncinvoker.cc",
352 "asyncinvoker.h",
353 "asyncinvoker-inl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "bandwidthsmoother.cc",
355 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 "bind.h",
357 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "callback.h",
359 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "fileutils_mock.h",
361 "genericslot.h",
362 "genericslot.h.pump",
363 "httpserver.cc",
364 "httpserver.h",
365 "json.cc",
366 "json.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" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200533
534 sources += [
535 "macconversion.cc",
536 "macconversion.h",
537 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 }
539
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000540 if (use_x11) {
541 sources += [
542 "x11windowpicker.cc",
543 "x11windowpicker.h",
544 ]
545 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 "dl",
547 "rt",
548 "Xext",
549 "X11",
550 "Xcomposite",
551 "Xrender",
552 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000553 }
554
555 if (is_linux) {
556 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000557 "dl",
558 "rt",
559 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 }
561
562 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000563 sources += [
564 "maccocoathreadhelper.h",
565 "maccocoathreadhelper.mm",
566 "macconversion.cc",
567 "macconversion.h",
568 "macutils.cc",
569 "macutils.h",
570 ]
571
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000572 all_dependent_configs = [ ":mac_config" ]
573
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000574 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000575 all_dependent_configs += [ ":mac_x86_config" ]
576 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000577 }
578
579 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000580 sources += [
581 "schanneladapter.cc",
582 "schanneladapter.h",
583 "win32.cc",
584 "win32.h",
585 "win32filesystem.cc",
586 "win32filesystem.h",
587 "win32securityerrors.cc",
588 "win32window.cc",
589 "win32window.h",
590 "win32windowpicker.cc",
591 "win32windowpicker.h",
592 "winfirewall.cc",
593 "winfirewall.h",
594 "winping.cc",
595 "winping.h",
596 ]
597
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000598 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 "crypt32.lib",
600 "iphlpapi.lib",
601 "secur32.lib",
602 ]
603
604 cflags += [
605 # Suppress warnings about WIN32_LEAN_AND_MEAN.
606 "/wd4005",
607 "/wd4703",
608 ]
609
610 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611 }
612
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000613 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000614 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000615 # _except_ for ios & mac. We want it there as well, e.g.
616 # because ASSERT and friends trigger off of it.
617 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000618 }
619
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000620 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000621 defines += [ "CARBON_DEPRECATED=YES" ]
622 }
623
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000624 if (is_linux || is_android) {
625 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000626 "linux.cc",
627 "linux.h",
628 ]
629 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000630}