blob: ca79a3819fb3c860cee8328b4f3d585b3ace08e6 [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
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000042config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000043 libs = [
Zeke Chin2d3b7e22015-07-14 12:55:44 -070044 "CFNetwork.framework",
45
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000046 #"Foundation.framework", # Already included in //build/config:default_libs.
47 "Security.framework",
48 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020049
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000050 #"UIKit.framework", # Already included in //build/config:default_libs.
51 ]
52}
53
54config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000055 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000056 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"Foundation.framework", # Already included in //build/config:default_libs.
59 #"IOKit.framework", # Already included in //build/config:default_libs.
60 #"Security.framework", # Already included in //build/config:default_libs.
61 "SystemConfiguration.framework",
62 ]
63}
64
65config("mac_x86_config") {
66 libs = [
67 #"Carbon.framework", # Already included in //build/config:default_libs.
68 ]
69}
70
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000071if (is_linux && !build_with_chromium) {
72 # Provides the same functionality as the //crypto:platform target, which
73 # WebRTC cannot use as we don't sync src/crypto from Chromium.
74 group("linux_system_ssl") {
75 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020076 deps = [
77 "//third_party/boringssl",
78 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000079 }
80 }
81}
82
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000083if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000084 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000085 assert(rtc_ssl_root != "",
86 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
87 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000088 }
89}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000090
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000091# The subset of rtc_base approved for use outside of libjingle.
92static_library("rtc_base_approved") {
93 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000094 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000095
96 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +010097 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +020098 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -070099 "bitbuffer.cc",
100 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200101 "buffer.cc",
102 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200103 "bufferqueue.cc",
104 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700105 "bytebuffer.cc",
106 "bytebuffer.h",
107 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000108 "checks.cc",
109 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200110 "criticalsection.cc",
111 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000112 "event.cc",
113 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000114 "event_tracer.cc",
115 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000116 "exp_filter.cc",
117 "exp_filter.h",
118 "md5.cc",
119 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000120 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000121 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100122 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000123 "platform_file.cc",
124 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200125 "platform_thread.cc",
126 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000127 "safe_conversions.h",
128 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200129 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000130 "stringencode.cc",
131 "stringencode.h",
132 "stringutils.cc",
133 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700134 "systeminfo.cc",
135 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000136 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000137 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000138 "thread_checker.h",
139 "thread_checker_impl.cc",
140 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000141 "timeutils.cc",
142 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000143 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000144 ]
Noah Richards915590e2015-04-22 15:43:08 -0700145
henrikg71df77b2015-09-18 01:48:34 -0700146 if (!build_with_chromium) {
Noah Richards915590e2015-04-22 15:43:08 -0700147 sources += [
148 "basictypes.h",
149 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200150 "logging.cc",
151 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700152 ]
153 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000154}
155
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000156static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000157 cflags = []
158 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000159 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 deps = [
161 ":rtc_base_approved",
162 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000163
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000164 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000165 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000166 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000167 ]
168
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000169 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000171 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000172 ]
173
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200174 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175
176 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000177 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000178 "asyncfile.cc",
179 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700180 "asyncinvoker-inl.h",
181 "asyncinvoker.cc",
182 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000183 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000185 "asyncresolverinterface.cc",
186 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "asyncsocket.cc",
188 "asyncsocket.h",
189 "asynctcpsocket.cc",
190 "asynctcpsocket.h",
191 "asyncudpsocket.cc",
192 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "autodetectproxy.cc",
194 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "base64.cc",
196 "base64.h",
197 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "common.cc",
199 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "crc32.cc",
201 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000202 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "diskcache.cc",
205 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700206 "filerotatingstream.cc",
207 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "fileutils.cc",
209 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210 "firewallsocketserver.cc",
211 "firewallsocketserver.h",
212 "flags.cc",
213 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000214 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "gunit_prod.h",
216 "helpers.cc",
217 "helpers.h",
218 "httpbase.cc",
219 "httpbase.h",
220 "httpclient.cc",
221 "httpclient.h",
222 "httpcommon-inl.h",
223 "httpcommon.cc",
224 "httpcommon.h",
225 "httprequest.cc",
226 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "iosfilesystem.mm",
228 "ipaddress.cc",
229 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "messagedigest.cc",
233 "messagedigest.h",
234 "messagehandler.cc",
235 "messagehandler.h",
236 "messagequeue.cc",
237 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "nethelpers.cc",
239 "nethelpers.h",
240 "network.cc",
241 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700242 "networkmonitor.cc",
243 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "pathutils.cc",
246 "pathutils.h",
247 "physicalsocketserver.cc",
248 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "proxydetect.cc",
250 "proxydetect.h",
251 "proxyinfo.cc",
252 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "ratelimiter.cc",
254 "ratelimiter.h",
255 "ratetracker.cc",
256 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200257 "rtccertificate.cc",
258 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "scoped_autorelease_pool.h",
260 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "sha1.cc",
262 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000263 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "signalthread.cc",
266 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000267 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "sigslot.h",
269 "sigslotrepeater.h",
270 "socket.h",
271 "socketadapters.cc",
272 "socketadapters.h",
273 "socketaddress.cc",
274 "socketaddress.h",
275 "socketaddresspair.cc",
276 "socketaddresspair.h",
277 "socketfactory.h",
278 "socketpool.cc",
279 "socketpool.h",
280 "socketserver.h",
281 "socketstream.cc",
282 "socketstream.h",
283 "ssladapter.cc",
284 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "sslfingerprint.cc",
286 "sslfingerprint.h",
287 "sslidentity.cc",
288 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "sslsocketfactory.cc",
290 "sslsocketfactory.h",
291 "sslstreamadapter.cc",
292 "sslstreamadapter.h",
293 "sslstreamadapterhelper.cc",
294 "sslstreamadapterhelper.h",
295 "stream.cc",
296 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "task.cc",
298 "task.h",
299 "taskparent.cc",
300 "taskparent.h",
301 "taskrunner.cc",
302 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "thread.cc",
304 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "timing.cc",
306 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 "urlencode.cc",
308 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "worker.cc",
310 "worker.h",
311 ]
312
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000313 if (is_posix) {
314 sources += [
315 "unixfilesystem.cc",
316 "unixfilesystem.h",
317 ]
318 }
319
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 if (build_with_chromium) {
321 sources += [
henrikgee2bf412015-09-30 03:48:52 -0700322 "../../webrtc_overrides/webrtc/base/logging.cc",
323 "../../webrtc_overrides/webrtc/base/logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000325
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000326 deps += [ "..:webrtc_common" ]
327
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700329 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000330 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000331
332 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700333 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000334 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000335 ]
336
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000337 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000338 } else {
339 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "bandwidthsmoother.cc",
341 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "bind.h",
343 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "callback.h",
345 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 "fileutils_mock.h",
347 "genericslot.h",
348 "genericslot.h.pump",
349 "httpserver.cc",
350 "httpserver.h",
351 "json.cc",
352 "json.h",
tkchin93411912015-07-22 12:12:17 -0700353 "logsinks.cc",
354 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "mathutils.h",
356 "multipart.cc",
357 "multipart.h",
358 "natserver.cc",
359 "natserver.h",
360 "natsocketfactory.cc",
361 "natsocketfactory.h",
362 "nattypes.cc",
363 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "optionsfile.cc",
365 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "profiler.cc",
367 "profiler.h",
368 "proxyserver.cc",
369 "proxyserver.h",
370 "refcount.h",
371 "referencecountedsingletonfactory.h",
372 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200374 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000376 "sharedexclusivelock.cc",
377 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "sslconfig.h",
379 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "testclient.cc",
381 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "transformadapter.cc",
383 "transformadapter.h",
384 "versionparsing.cc",
385 "versionparsing.h",
386 "virtualsocketserver.cc",
387 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200390 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 ]
392
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000393 deps += [ "..:webrtc_common" ]
394
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000395 if (is_posix) {
396 sources += [
397 "latebindingsymboltable.cc",
398 "latebindingsymboltable.cc.def",
399 "latebindingsymboltable.h",
400 "latebindingsymboltable.h.def",
401 "posix.cc",
402 "posix.h",
403 ]
404 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000406 if (is_linux) {
407 sources += [
408 "dbus.cc",
409 "dbus.h",
410 "libdbusglibsymboltable.cc",
411 "libdbusglibsymboltable.h",
412 "linuxfdwalk.c",
413 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000414 ]
415 }
416
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000417 if (is_mac) {
418 sources += [
419 "macasyncsocket.cc",
420 "macasyncsocket.h",
421 "maccocoasocketserver.h",
422 "maccocoasocketserver.mm",
423 "macsocketserver.cc",
424 "macsocketserver.h",
425 "macwindowpicker.cc",
426 "macwindowpicker.h",
427 ]
428 }
429
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000430 if (is_win) {
431 sources += [
432 "diskcache_win32.cc",
433 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000434 "win32regkey.cc",
435 "win32regkey.h",
436 "win32socketinit.cc",
437 "win32socketinit.h",
438 "win32socketserver.cc",
439 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 ]
441 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000442 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000443 deps += [ "//third_party/jsoncpp" ]
444 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000445 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000446
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000447 # When defined changes the include path for json.h to where it is
448 # expected to be when building json outside of the standalone build.
449 defines += [ "WEBRTC_EXTERNAL_JSON" ]
450 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000451 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000452
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000453 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000454 # compiler settings.
455 configs -= [ "//build/config/compiler:chromium_code" ]
456 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000457 if (!is_win) {
458 cflags += [ "-Wno-uninitialized" ]
459 cflags_cc += [ "-Wno-non-virtual-dtor" ]
460 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461
462 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000463 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000464 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000465 deps += [ "//third_party/boringssl" ]
466 } else {
467 configs += [ "external_ssl_library" ]
468 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000469 sources += [
470 "openssl.h",
471 "openssladapter.cc",
472 "openssladapter.h",
473 "openssldigest.cc",
474 "openssldigest.h",
475 "opensslidentity.cc",
476 "opensslidentity.h",
477 "opensslstreamadapter.cc",
478 "opensslstreamadapter.h",
479 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000480 }
481
482 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000483 sources += [
484 "ifaddrs-android.cc",
485 "ifaddrs-android.h",
486 ]
487
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000488 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200490 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000492 }
493
494 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200495 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200496
497 sources += [
498 "macconversion.cc",
499 "macconversion.h",
500 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000501 }
502
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000503 if (use_x11) {
504 sources += [
505 "x11windowpicker.cc",
506 "x11windowpicker.h",
507 ]
508 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000509 "dl",
510 "rt",
511 "Xext",
512 "X11",
513 "Xcomposite",
514 "Xrender",
515 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000516 }
517
518 if (is_linux) {
519 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000520 "dl",
521 "rt",
522 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000523 }
524
525 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000526 sources += [
527 "maccocoathreadhelper.h",
528 "maccocoathreadhelper.mm",
529 "macconversion.cc",
530 "macconversion.h",
531 "macutils.cc",
532 "macutils.h",
533 ]
534
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000535 all_dependent_configs = [ ":mac_config" ]
536
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000537 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 all_dependent_configs += [ ":mac_x86_config" ]
539 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000540 }
541
542 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000543 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000544 "win32.cc",
545 "win32.h",
546 "win32filesystem.cc",
547 "win32filesystem.h",
548 "win32securityerrors.cc",
549 "win32window.cc",
550 "win32window.h",
551 "win32windowpicker.cc",
552 "win32windowpicker.h",
553 "winfirewall.cc",
554 "winfirewall.h",
555 "winping.cc",
556 "winping.h",
557 ]
558
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000559 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 "crypt32.lib",
561 "iphlpapi.lib",
562 "secur32.lib",
563 ]
564
565 cflags += [
566 # Suppress warnings about WIN32_LEAN_AND_MEAN.
567 "/wd4005",
568 "/wd4703",
569 ]
570
571 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000572 }
573
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000574 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000575 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000576 # _except_ for ios & mac. We want it there as well, e.g.
577 # because ASSERT and friends trigger off of it.
578 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000579 }
580
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000581 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000582 defines += [ "CARBON_DEPRECATED=YES" ]
583 }
584
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000585 if (is_linux || is_android) {
586 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 "linux.cc",
588 "linux.h",
589 ]
590 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700591
592 if (is_nacl) {
593 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
594 defines += [ "timezone=_timezone" ]
595 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000596}