blob: 2e51d3f0111e342d38cf4171ba31e7926da9b5e2 [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
kjellander70bed7d2015-11-23 17:23:44 -080013# Enable OpenSSL (BoringSSL) for iOS. This is covered in webrtc/supplement.gypi
14# for the GYP build.
15import("//build_overrides/webrtc.gni")
16if (is_ios && !build_with_chromium) {
17 use_openssl = true
18}
19
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000020config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000021 include_dirs = [
22 "//third_party/jsoncpp/overrides/include",
23 "//third_party/jsoncpp/source/include",
24 ]
25
26 defines = [
27 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000028 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000029 ]
30
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020031 if (is_posix) {
32 # TODO(henrike): issue 3307, make rtc_base build without disabling
33 # these flags.
34 cflags_cc = [ "-Wno-non-virtual-dtor" ]
35 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000036}
37
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000038config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020039 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000040}
41
42config("openssl_config") {
43 defines = [
44 "SSL_USE_OPENSSL",
45 "HAVE_OPENSSL_SSL_H",
46 ]
47}
48
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000049config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000050 libs = [
Zeke Chin2d3b7e22015-07-14 12:55:44 -070051 "CFNetwork.framework",
52
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000053 #"Foundation.framework", # Already included in //build/config:default_libs.
54 "Security.framework",
55 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020056
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000057 #"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",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020064
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000065 #"Foundation.framework", # Already included in //build/config:default_libs.
66 #"IOKit.framework", # Already included in //build/config:default_libs.
67 #"Security.framework", # Already included in //build/config:default_libs.
68 "SystemConfiguration.framework",
69 ]
70}
71
72config("mac_x86_config") {
73 libs = [
74 #"Carbon.framework", # Already included in //build/config:default_libs.
75 ]
76}
77
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000078if (is_linux && !build_with_chromium) {
79 # Provides the same functionality as the //crypto:platform target, which
80 # WebRTC cannot use as we don't sync src/crypto from Chromium.
81 group("linux_system_ssl") {
82 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020083 deps = [
84 "//third_party/boringssl",
85 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000086 }
87 }
88}
89
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000090if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000091 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000092 assert(rtc_ssl_root != "",
93 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
94 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000095 }
96}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000097
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000098# The subset of rtc_base approved for use outside of libjingle.
99static_library("rtc_base_approved") {
100 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000101 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000102
103 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100104 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200105 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700106 "bitbuffer.cc",
107 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200108 "buffer.cc",
109 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200110 "bufferqueue.cc",
111 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700112 "bytebuffer.cc",
113 "bytebuffer.h",
114 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000115 "checks.cc",
116 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200117 "criticalsection.cc",
118 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000119 "event.cc",
120 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000121 "event_tracer.cc",
122 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000123 "exp_filter.cc",
124 "exp_filter.h",
125 "md5.cc",
126 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000127 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000128 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100129 "optional.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",
pbos12411ef2015-11-23 14:47:56 -0800134 "platform_thread_types.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000135 "safe_conversions.h",
136 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200137 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000138 "stringencode.cc",
139 "stringencode.h",
140 "stringutils.cc",
141 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700142 "systeminfo.cc",
143 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000144 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000145 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000146 "thread_checker.h",
147 "thread_checker_impl.cc",
148 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000149 "timeutils.cc",
150 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000151 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000152 ]
Noah Richards915590e2015-04-22 15:43:08 -0700153
henrikg71df77b2015-09-18 01:48:34 -0700154 if (!build_with_chromium) {
Noah Richards915590e2015-04-22 15:43:08 -0700155 sources += [
Noah Richards915590e2015-04-22 15:43:08 -0700156 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200157 "logging.cc",
158 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700159 ]
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
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200181 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182
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",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700187 "asyncinvoker-inl.h",
188 "asyncinvoker.cc",
189 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000190 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000192 "asyncresolverinterface.cc",
193 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "asyncsocket.cc",
195 "asyncsocket.h",
196 "asynctcpsocket.cc",
197 "asynctcpsocket.h",
198 "asyncudpsocket.cc",
199 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "autodetectproxy.cc",
201 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "base64.cc",
203 "base64.h",
204 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205 "common.cc",
206 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "crc32.cc",
208 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000209 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "diskcache.cc",
212 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700213 "filerotatingstream.cc",
214 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "fileutils.cc",
216 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "firewallsocketserver.cc",
218 "firewallsocketserver.h",
219 "flags.cc",
220 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000221 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "gunit_prod.h",
223 "helpers.cc",
224 "helpers.h",
225 "httpbase.cc",
226 "httpbase.h",
227 "httpclient.cc",
228 "httpclient.h",
229 "httpcommon-inl.h",
230 "httpcommon.cc",
231 "httpcommon.h",
232 "httprequest.cc",
233 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "iosfilesystem.mm",
235 "ipaddress.cc",
236 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "messagedigest.cc",
240 "messagedigest.h",
241 "messagehandler.cc",
242 "messagehandler.h",
243 "messagequeue.cc",
244 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "nethelpers.cc",
246 "nethelpers.h",
247 "network.cc",
248 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700249 "networkmonitor.cc",
250 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "pathutils.cc",
253 "pathutils.h",
254 "physicalsocketserver.cc",
255 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "proxydetect.cc",
257 "proxydetect.h",
258 "proxyinfo.cc",
259 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "ratelimiter.cc",
261 "ratelimiter.h",
262 "ratetracker.cc",
263 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200264 "rtccertificate.cc",
265 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "scoped_autorelease_pool.h",
267 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "sha1.cc",
269 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000270 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "signalthread.cc",
273 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000274 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "sigslot.h",
276 "sigslotrepeater.h",
277 "socket.h",
278 "socketadapters.cc",
279 "socketadapters.h",
280 "socketaddress.cc",
281 "socketaddress.h",
282 "socketaddresspair.cc",
283 "socketaddresspair.h",
284 "socketfactory.h",
285 "socketpool.cc",
286 "socketpool.h",
287 "socketserver.h",
288 "socketstream.cc",
289 "socketstream.h",
290 "ssladapter.cc",
291 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "sslfingerprint.cc",
293 "sslfingerprint.h",
294 "sslidentity.cc",
295 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "sslsocketfactory.cc",
297 "sslsocketfactory.h",
298 "sslstreamadapter.cc",
299 "sslstreamadapter.h",
300 "sslstreamadapterhelper.cc",
301 "sslstreamadapterhelper.h",
302 "stream.cc",
303 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "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 += [
henrikgee2bf412015-09-30 03:48:52 -0700329 "../../webrtc_overrides/webrtc/base/logging.cc",
330 "../../webrtc_overrides/webrtc/base/logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 ]
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) {
henrikgee2bf412015-09-30 03:48:52 -0700336 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000338
339 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700340 "../../webrtc_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 "bandwidthsmoother.cc",
348 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000349 "bind.h",
350 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 "callback.h",
352 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "fileutils_mock.h",
354 "genericslot.h",
355 "genericslot.h.pump",
356 "httpserver.cc",
357 "httpserver.h",
358 "json.cc",
359 "json.h",
tkchin93411912015-07-22 12:12:17 -0700360 "logsinks.cc",
361 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "mathutils.h",
363 "multipart.cc",
364 "multipart.h",
365 "natserver.cc",
366 "natserver.h",
367 "natsocketfactory.cc",
368 "natsocketfactory.h",
369 "nattypes.cc",
370 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "optionsfile.cc",
372 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "profiler.cc",
374 "profiler.h",
375 "proxyserver.cc",
376 "proxyserver.h",
377 "refcount.h",
378 "referencecountedsingletonfactory.h",
379 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200381 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000383 "sharedexclusivelock.cc",
384 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "sslconfig.h",
386 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "testclient.cc",
388 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "transformadapter.cc",
390 "transformadapter.h",
391 "versionparsing.cc",
392 "versionparsing.h",
393 "virtualsocketserver.cc",
394 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200397 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 ]
399
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000400 deps += [ "..:webrtc_common" ]
401
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000402 if (is_posix) {
403 sources += [
404 "latebindingsymboltable.cc",
405 "latebindingsymboltable.cc.def",
406 "latebindingsymboltable.h",
407 "latebindingsymboltable.h.def",
408 "posix.cc",
409 "posix.h",
410 ]
411 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000413 if (is_linux) {
414 sources += [
415 "dbus.cc",
416 "dbus.h",
417 "libdbusglibsymboltable.cc",
418 "libdbusglibsymboltable.h",
419 "linuxfdwalk.c",
420 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000421 ]
422 }
423
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000424 if (is_mac) {
425 sources += [
426 "macasyncsocket.cc",
427 "macasyncsocket.h",
428 "maccocoasocketserver.h",
429 "maccocoasocketserver.mm",
430 "macsocketserver.cc",
431 "macsocketserver.h",
432 "macwindowpicker.cc",
433 "macwindowpicker.h",
434 ]
435 }
436
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000437 if (is_win) {
438 sources += [
439 "diskcache_win32.cc",
440 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000441 "win32regkey.cc",
442 "win32regkey.h",
443 "win32socketinit.cc",
444 "win32socketinit.h",
445 "win32socketserver.cc",
446 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000447 ]
448 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000449 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000450 deps += [ "//third_party/jsoncpp" ]
451 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000452 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000454 # When defined changes the include path for json.h to where it is
455 # expected to be when building json outside of the standalone build.
456 defines += [ "WEBRTC_EXTERNAL_JSON" ]
457 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000458 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000460 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000461 # compiler settings.
462 configs -= [ "//build/config/compiler:chromium_code" ]
463 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000464 if (!is_win) {
465 cflags += [ "-Wno-uninitialized" ]
466 cflags_cc += [ "-Wno-non-virtual-dtor" ]
467 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468
469 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000470 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000471 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000472 deps += [ "//third_party/boringssl" ]
473 } else {
474 configs += [ "external_ssl_library" ]
475 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000476 sources += [
477 "openssl.h",
478 "openssladapter.cc",
479 "openssladapter.h",
480 "openssldigest.cc",
481 "openssldigest.h",
482 "opensslidentity.cc",
483 "opensslidentity.h",
484 "opensslstreamadapter.cc",
485 "opensslstreamadapter.h",
486 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487 }
488
489 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000490 sources += [
491 "ifaddrs-android.cc",
492 "ifaddrs-android.h",
493 ]
494
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000495 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000496 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200497 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000498 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000499 }
500
501 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200502 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200503
504 sources += [
505 "macconversion.cc",
506 "macconversion.h",
507 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 }
509
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000510 if (use_x11) {
511 sources += [
512 "x11windowpicker.cc",
513 "x11windowpicker.h",
514 ]
515 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 "dl",
517 "rt",
518 "Xext",
519 "X11",
520 "Xcomposite",
521 "Xrender",
522 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 }
524
525 if (is_linux) {
526 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000527 "dl",
528 "rt",
529 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000530 }
531
532 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000533 sources += [
534 "maccocoathreadhelper.h",
535 "maccocoathreadhelper.mm",
536 "macconversion.cc",
537 "macconversion.h",
538 "macutils.cc",
539 "macutils.h",
540 ]
541
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000542 all_dependent_configs = [ ":mac_config" ]
543
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000544 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000545 all_dependent_configs += [ ":mac_x86_config" ]
546 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000547 }
548
549 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000550 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000551 "win32.cc",
552 "win32.h",
553 "win32filesystem.cc",
554 "win32filesystem.h",
555 "win32securityerrors.cc",
556 "win32window.cc",
557 "win32window.h",
558 "win32windowpicker.cc",
559 "win32windowpicker.h",
560 "winfirewall.cc",
561 "winfirewall.h",
562 "winping.cc",
563 "winping.h",
564 ]
565
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000566 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000567 "crypt32.lib",
568 "iphlpapi.lib",
569 "secur32.lib",
570 ]
571
572 cflags += [
573 # Suppress warnings about WIN32_LEAN_AND_MEAN.
574 "/wd4005",
575 "/wd4703",
576 ]
577
578 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000579 }
580
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000581 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000582 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000583 # _except_ for ios & mac. We want it there as well, e.g.
584 # because ASSERT and friends trigger off of it.
585 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000586 }
587
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000588 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000589 defines += [ "CARBON_DEPRECATED=YES" ]
590 }
591
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000592 if (is_linux || is_android) {
593 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594 "linux.cc",
595 "linux.h",
596 ]
597 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700598
599 if (is_nacl) {
600 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
601 defines += [ "timezone=_timezone" ]
602 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603}