blob: fbe5dd50195b4d114b9ac96df531b41f35e2384e [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") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020032 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000033}
34
35config("openssl_config") {
36 defines = [
37 "SSL_USE_OPENSSL",
38 "HAVE_OPENSSL_SSL_H",
39 ]
40}
41
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +000042config("nss_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000043 defines = [
44 "SSL_USE_NSS",
45 "HAVE_NSS_SSL_H",
46 "SSL_USE_NSS_RNG",
47 ]
48}
49
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000050config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000051 libs = [
Zeke Chin2d3b7e22015-07-14 12:55:44 -070052 "CFNetwork.framework",
53
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"UIKit.framework", # Already included in //build/config:default_libs.
59 ]
60}
61
62config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000063 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000064 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020065
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000066 #"Foundation.framework", # Already included in //build/config:default_libs.
67 #"IOKit.framework", # Already included in //build/config:default_libs.
68 #"Security.framework", # Already included in //build/config:default_libs.
69 "SystemConfiguration.framework",
70 ]
71}
72
73config("mac_x86_config") {
74 libs = [
75 #"Carbon.framework", # Already included in //build/config:default_libs.
76 ]
77}
78
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000079if (is_linux && !build_with_chromium) {
80 # Provides the same functionality as the //crypto:platform target, which
81 # WebRTC cannot use as we don't sync src/crypto from Chromium.
82 group("linux_system_ssl") {
83 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020084 deps = [
85 "//third_party/boringssl",
86 ]
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000087 } else {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020088 deps = [
89 "//net/third_party/nss/ssl:libssl",
90 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000091
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000092 public_configs = [
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000093 "//net/third_party/nss/ssl:ssl_config",
94 "//third_party/nss:system_nss_no_ssl_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000095 ]
96 }
97 }
98}
99
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000100if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000101 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000102 assert(rtc_ssl_root != "",
103 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
104 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000105 }
106}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +0000107
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000108# The subset of rtc_base approved for use outside of libjingle.
109static_library("rtc_base_approved") {
110 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000111 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000112
113 sources = [
Peter Boströmff019b02015-04-30 14:16:07 +0200114 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700115 "bitbuffer.cc",
116 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200117 "buffer.cc",
118 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200119 "bufferqueue.cc",
120 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700121 "bytebuffer.cc",
122 "bytebuffer.h",
123 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "checks.cc",
125 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200126 "criticalsection.cc",
127 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000128 "event.cc",
129 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000130 "event_tracer.cc",
131 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "exp_filter.cc",
133 "exp_filter.h",
134 "md5.cc",
135 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000136 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000137 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000138 "platform_file.cc",
139 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200140 "platform_thread.cc",
141 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000142 "safe_conversions.h",
143 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200144 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 "stringencode.cc",
146 "stringencode.h",
147 "stringutils.cc",
148 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700149 "systeminfo.cc",
150 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000151 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000152 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000153 "thread_checker.h",
154 "thread_checker_impl.cc",
155 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000156 "timeutils.cc",
157 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000158 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 ]
Noah Richards915590e2015-04-22 15:43:08 -0700160
161 if (build_with_chromium) {
162 sources += [
163 "../overrides/webrtc/base/basictypes.h",
164 "../overrides/webrtc/base/constructormagic.h",
165 ]
166 } else {
167 sources += [
168 "basictypes.h",
169 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200170 "logging.cc",
171 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700172 ]
173 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000174}
175
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000176static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 cflags = []
178 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000179 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180 deps = [
181 ":rtc_base_approved",
182 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000186 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 ]
188
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000189 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000191 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 ]
193
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200194 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195
196 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000197 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "asyncfile.cc",
199 "asyncfile.h",
200 "asynchttprequest.cc",
201 "asynchttprequest.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700202 "asyncinvoker-inl.h",
203 "asyncinvoker.cc",
204 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000205 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000207 "asyncresolverinterface.cc",
208 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 "asyncsocket.cc",
210 "asyncsocket.h",
211 "asynctcpsocket.cc",
212 "asynctcpsocket.h",
213 "asyncudpsocket.cc",
214 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "autodetectproxy.cc",
216 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "base64.cc",
218 "base64.h",
219 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "common.cc",
221 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "crc32.cc",
223 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000224 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "diskcache.cc",
227 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700228 "filerotatingstream.cc",
229 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "fileutils.cc",
231 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "firewallsocketserver.cc",
233 "firewallsocketserver.h",
234 "flags.cc",
235 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000236 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "gunit_prod.h",
238 "helpers.cc",
239 "helpers.h",
240 "httpbase.cc",
241 "httpbase.h",
242 "httpclient.cc",
243 "httpclient.h",
244 "httpcommon-inl.h",
245 "httpcommon.cc",
246 "httpcommon.h",
247 "httprequest.cc",
248 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "iosfilesystem.mm",
250 "ipaddress.cc",
251 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "messagedigest.cc",
255 "messagedigest.h",
256 "messagehandler.cc",
257 "messagehandler.h",
258 "messagequeue.cc",
259 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "nethelpers.cc",
261 "nethelpers.h",
262 "network.cc",
263 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "pathutils.cc",
266 "pathutils.h",
267 "physicalsocketserver.cc",
268 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "proxydetect.cc",
270 "proxydetect.h",
271 "proxyinfo.cc",
272 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "ratelimiter.cc",
274 "ratelimiter.h",
275 "ratetracker.cc",
276 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200277 "rtccertificate.cc",
278 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "scoped_autorelease_pool.h",
280 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "sha1.cc",
282 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000283 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "signalthread.cc",
286 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000287 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "sigslot.h",
289 "sigslotrepeater.h",
290 "socket.h",
291 "socketadapters.cc",
292 "socketadapters.h",
293 "socketaddress.cc",
294 "socketaddress.h",
295 "socketaddresspair.cc",
296 "socketaddresspair.h",
297 "socketfactory.h",
298 "socketpool.cc",
299 "socketpool.h",
300 "socketserver.h",
301 "socketstream.cc",
302 "socketstream.h",
303 "ssladapter.cc",
304 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "sslfingerprint.cc",
306 "sslfingerprint.h",
307 "sslidentity.cc",
308 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "sslsocketfactory.cc",
310 "sslsocketfactory.h",
311 "sslstreamadapter.cc",
312 "sslstreamadapter.h",
313 "sslstreamadapterhelper.cc",
314 "sslstreamadapterhelper.h",
315 "stream.cc",
316 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000317 "task.cc",
318 "task.h",
319 "taskparent.cc",
320 "taskparent.h",
321 "taskrunner.cc",
322 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "thread.cc",
324 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "timing.cc",
326 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "urlencode.cc",
328 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "worker.cc",
330 "worker.h",
331 ]
332
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000333 if (is_posix) {
334 sources += [
335 "unixfilesystem.cc",
336 "unixfilesystem.h",
337 ]
338 }
339
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 if (build_with_chromium) {
341 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "../overrides/webrtc/base/logging.cc",
343 "../overrides/webrtc/base/logging.h",
344 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000345
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000346 deps += [ "..:webrtc_common" ]
347
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 if (is_win) {
349 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
350 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000351
352 include_dirs = [
353 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000354 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000355 ]
356
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000357 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000358 } else {
359 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "bandwidthsmoother.cc",
361 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "bind.h",
363 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "callback.h",
365 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "fileutils_mock.h",
367 "genericslot.h",
368 "genericslot.h.pump",
369 "httpserver.cc",
370 "httpserver.h",
371 "json.cc",
372 "json.h",
tkchin93411912015-07-22 12:12:17 -0700373 "logsinks.cc",
374 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "mathutils.h",
376 "multipart.cc",
377 "multipart.h",
378 "natserver.cc",
379 "natserver.h",
380 "natsocketfactory.cc",
381 "natsocketfactory.h",
382 "nattypes.cc",
383 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "optionsfile.cc",
385 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "profiler.cc",
387 "profiler.h",
388 "proxyserver.cc",
389 "proxyserver.h",
390 "refcount.h",
391 "referencecountedsingletonfactory.h",
392 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200394 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000396 "sharedexclusivelock.cc",
397 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "sslconfig.h",
399 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "testclient.cc",
401 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "transformadapter.cc",
403 "transformadapter.h",
404 "versionparsing.cc",
405 "versionparsing.h",
406 "virtualsocketserver.cc",
407 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200410 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000411 ]
412
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000413 deps += [ "..:webrtc_common" ]
414
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 if (is_posix) {
416 sources += [
417 "latebindingsymboltable.cc",
418 "latebindingsymboltable.cc.def",
419 "latebindingsymboltable.h",
420 "latebindingsymboltable.h.def",
421 "posix.cc",
422 "posix.h",
423 ]
424 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000426 if (is_linux) {
427 sources += [
428 "dbus.cc",
429 "dbus.h",
430 "libdbusglibsymboltable.cc",
431 "libdbusglibsymboltable.h",
432 "linuxfdwalk.c",
433 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000434 ]
435 }
436
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000437 if (is_mac) {
438 sources += [
439 "macasyncsocket.cc",
440 "macasyncsocket.h",
441 "maccocoasocketserver.h",
442 "maccocoasocketserver.mm",
443 "macsocketserver.cc",
444 "macsocketserver.h",
445 "macwindowpicker.cc",
446 "macwindowpicker.h",
447 ]
448 }
449
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450 if (is_win) {
451 sources += [
452 "diskcache_win32.cc",
453 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000454 "win32regkey.cc",
455 "win32regkey.h",
456 "win32socketinit.cc",
457 "win32socketinit.h",
458 "win32socketserver.cc",
459 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460 ]
461 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000462 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000463 deps += [ "//third_party/jsoncpp" ]
464 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000465 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000466
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000467 # When defined changes the include path for json.h to where it is
468 # expected to be when building json outside of the standalone build.
469 defines += [ "WEBRTC_EXTERNAL_JSON" ]
470 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000471 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000472
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000473 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000474 # compiler settings.
475 configs -= [ "//build/config/compiler:chromium_code" ]
476 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000477 if (!is_win) {
478 cflags += [ "-Wno-uninitialized" ]
479 cflags_cc += [ "-Wno-non-virtual-dtor" ]
480 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000481
482 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000483 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000484 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000485 deps += [ "//third_party/boringssl" ]
486 } else {
487 configs += [ "external_ssl_library" ]
488 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000489 sources += [
490 "openssl.h",
491 "openssladapter.cc",
492 "openssladapter.h",
493 "openssldigest.cc",
494 "openssldigest.h",
495 "opensslidentity.cc",
496 "opensslidentity.h",
497 "opensslstreamadapter.cc",
498 "opensslstreamadapter.h",
499 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000501 public_configs += [ ":nss_config" ]
502 if (rtc_build_ssl) {
503 if (build_with_chromium) {
504 deps += [ "//crypto:platform" ]
505 } else {
506 deps += [ "//net/third_party/nss/ssl:libssl" ]
507 if (is_linux) {
508 deps += [ ":linux_system_ssl" ]
509 } else {
510 deps += [
511 "//third_party/nss:nspr",
512 "//third_party/nss:nss",
513 ]
514 }
515 }
516 } else {
517 configs += [ "external_ssl_library" ]
518 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000519 sources += [
520 "nssidentity.cc",
521 "nssidentity.h",
522 "nssstreamadapter.cc",
523 "nssstreamadapter.h",
524 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000525 }
526
527 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000528 sources += [
529 "ifaddrs-android.cc",
530 "ifaddrs-android.h",
531 ]
532
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000533 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200535 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000537 }
538
539 if (is_ios) {
540 all_dependent_configs += [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200541
542 sources += [
543 "macconversion.cc",
544 "macconversion.h",
545 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 }
547
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000548 if (use_x11) {
549 sources += [
550 "x11windowpicker.cc",
551 "x11windowpicker.h",
552 ]
553 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000554 "dl",
555 "rt",
556 "Xext",
557 "X11",
558 "Xcomposite",
559 "Xrender",
560 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000561 }
562
563 if (is_linux) {
564 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000565 "dl",
566 "rt",
567 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000568 }
569
570 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000571 sources += [
572 "maccocoathreadhelper.h",
573 "maccocoathreadhelper.mm",
574 "macconversion.cc",
575 "macconversion.h",
576 "macutils.cc",
577 "macutils.h",
578 ]
579
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 all_dependent_configs = [ ":mac_config" ]
581
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000582 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000583 all_dependent_configs += [ ":mac_x86_config" ]
584 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000585 }
586
587 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000588 sources += [
589 "schanneladapter.cc",
590 "schanneladapter.h",
591 "win32.cc",
592 "win32.h",
593 "win32filesystem.cc",
594 "win32filesystem.h",
595 "win32securityerrors.cc",
596 "win32window.cc",
597 "win32window.h",
598 "win32windowpicker.cc",
599 "win32windowpicker.h",
600 "winfirewall.cc",
601 "winfirewall.h",
602 "winping.cc",
603 "winping.h",
604 ]
605
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000606 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607 "crypt32.lib",
608 "iphlpapi.lib",
609 "secur32.lib",
610 ]
611
612 cflags += [
613 # Suppress warnings about WIN32_LEAN_AND_MEAN.
614 "/wd4005",
615 "/wd4703",
616 ]
617
618 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000619 }
620
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000621 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000622 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000623 # _except_ for ios & mac. We want it there as well, e.g.
624 # because ASSERT and friends trigger off of it.
625 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000626 }
627
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000628 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000629 defines += [ "CARBON_DEPRECATED=YES" ]
630 }
631
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000632 if (is_linux || is_android) {
633 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000634 "linux.cc",
635 "linux.h",
636 ]
637 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000638}