blob: 916a8017000f9f6d80dbc125ebaee28ba4da02e0 [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 = [
Peter Boströmff019b02015-04-30 14:16:07 +020097 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -070098 "bitbuffer.cc",
99 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200100 "buffer.cc",
101 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200102 "bufferqueue.cc",
103 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700104 "bytebuffer.cc",
105 "bytebuffer.h",
106 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000107 "checks.cc",
108 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200109 "criticalsection.cc",
110 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000111 "event.cc",
112 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000113 "event_tracer.cc",
114 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000115 "exp_filter.cc",
116 "exp_filter.h",
Karl Wiberg6e587202015-10-21 12:43:56 +0200117 "maybe.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000118 "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",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000122 "platform_file.cc",
123 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200124 "platform_thread.cc",
125 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000126 "safe_conversions.h",
127 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200128 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "stringencode.cc",
130 "stringencode.h",
131 "stringutils.cc",
132 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700133 "systeminfo.cc",
134 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000135 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000136 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000137 "thread_checker.h",
138 "thread_checker_impl.cc",
139 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000140 "timeutils.cc",
141 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000142 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000143 ]
Noah Richards915590e2015-04-22 15:43:08 -0700144
henrikg71df77b2015-09-18 01:48:34 -0700145 if (!build_with_chromium) {
Noah Richards915590e2015-04-22 15:43:08 -0700146 sources += [
147 "basictypes.h",
148 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200149 "logging.cc",
150 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700151 ]
152 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000153}
154
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000155static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000156 cflags = []
157 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000158 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 deps = [
160 ":rtc_base_approved",
161 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000162
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000163 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000164 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000165 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000166 ]
167
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000168 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000169 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000170 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000171 ]
172
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200173 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000174
175 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000176 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 "asyncfile.cc",
178 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700179 "asyncinvoker-inl.h",
180 "asyncinvoker.cc",
181 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000182 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000184 "asyncresolverinterface.cc",
185 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186 "asyncsocket.cc",
187 "asyncsocket.h",
188 "asynctcpsocket.cc",
189 "asynctcpsocket.h",
190 "asyncudpsocket.cc",
191 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 "autodetectproxy.cc",
193 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "base64.cc",
195 "base64.h",
196 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 "common.cc",
198 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "crc32.cc",
200 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000201 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "diskcache.cc",
204 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700205 "filerotatingstream.cc",
206 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "fileutils.cc",
208 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 "firewallsocketserver.cc",
210 "firewallsocketserver.h",
211 "flags.cc",
212 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000213 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "gunit_prod.h",
215 "helpers.cc",
216 "helpers.h",
217 "httpbase.cc",
218 "httpbase.h",
219 "httpclient.cc",
220 "httpclient.h",
221 "httpcommon-inl.h",
222 "httpcommon.cc",
223 "httpcommon.h",
224 "httprequest.cc",
225 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "iosfilesystem.mm",
227 "ipaddress.cc",
228 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "messagedigest.cc",
232 "messagedigest.h",
233 "messagehandler.cc",
234 "messagehandler.h",
235 "messagequeue.cc",
236 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "nethelpers.cc",
238 "nethelpers.h",
239 "network.cc",
240 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700241 "networkmonitor.cc",
242 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "pathutils.cc",
245 "pathutils.h",
246 "physicalsocketserver.cc",
247 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "proxydetect.cc",
249 "proxydetect.h",
250 "proxyinfo.cc",
251 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "ratelimiter.cc",
253 "ratelimiter.h",
254 "ratetracker.cc",
255 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200256 "rtccertificate.cc",
257 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "scoped_autorelease_pool.h",
259 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "sha1.cc",
261 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000262 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "signalthread.cc",
265 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000266 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "sigslot.h",
268 "sigslotrepeater.h",
269 "socket.h",
270 "socketadapters.cc",
271 "socketadapters.h",
272 "socketaddress.cc",
273 "socketaddress.h",
274 "socketaddresspair.cc",
275 "socketaddresspair.h",
276 "socketfactory.h",
277 "socketpool.cc",
278 "socketpool.h",
279 "socketserver.h",
280 "socketstream.cc",
281 "socketstream.h",
282 "ssladapter.cc",
283 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "sslfingerprint.cc",
285 "sslfingerprint.h",
286 "sslidentity.cc",
287 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "sslsocketfactory.cc",
289 "sslsocketfactory.h",
290 "sslstreamadapter.cc",
291 "sslstreamadapter.h",
292 "sslstreamadapterhelper.cc",
293 "sslstreamadapterhelper.h",
294 "stream.cc",
295 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "task.cc",
297 "task.h",
298 "taskparent.cc",
299 "taskparent.h",
300 "taskrunner.cc",
301 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "thread.cc",
303 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "timing.cc",
305 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000306 "urlencode.cc",
307 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 "worker.cc",
309 "worker.h",
310 ]
311
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000312 if (is_posix) {
313 sources += [
314 "unixfilesystem.cc",
315 "unixfilesystem.h",
316 ]
317 }
318
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000319 if (build_with_chromium) {
320 sources += [
henrikgee2bf412015-09-30 03:48:52 -0700321 "../../webrtc_overrides/webrtc/base/logging.cc",
322 "../../webrtc_overrides/webrtc/base/logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000324
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000325 deps += [ "..:webrtc_common" ]
326
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700328 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000330
331 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700332 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000333 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000334 ]
335
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000336 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000337 } else {
338 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "bandwidthsmoother.cc",
340 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "bind.h",
342 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "callback.h",
344 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 "fileutils_mock.h",
346 "genericslot.h",
347 "genericslot.h.pump",
348 "httpserver.cc",
349 "httpserver.h",
350 "json.cc",
351 "json.h",
tkchin93411912015-07-22 12:12:17 -0700352 "logsinks.cc",
353 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "mathutils.h",
355 "multipart.cc",
356 "multipart.h",
357 "natserver.cc",
358 "natserver.h",
359 "natsocketfactory.cc",
360 "natsocketfactory.h",
361 "nattypes.cc",
362 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "optionsfile.cc",
364 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "profiler.cc",
366 "profiler.h",
367 "proxyserver.cc",
368 "proxyserver.h",
369 "refcount.h",
370 "referencecountedsingletonfactory.h",
371 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200373 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000375 "sharedexclusivelock.cc",
376 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "sslconfig.h",
378 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "testclient.cc",
380 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "transformadapter.cc",
382 "transformadapter.h",
383 "versionparsing.cc",
384 "versionparsing.h",
385 "virtualsocketserver.cc",
386 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200389 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 ]
391
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000392 deps += [ "..:webrtc_common" ]
393
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000394 if (is_posix) {
395 sources += [
396 "latebindingsymboltable.cc",
397 "latebindingsymboltable.cc.def",
398 "latebindingsymboltable.h",
399 "latebindingsymboltable.h.def",
400 "posix.cc",
401 "posix.h",
402 ]
403 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000405 if (is_linux) {
406 sources += [
407 "dbus.cc",
408 "dbus.h",
409 "libdbusglibsymboltable.cc",
410 "libdbusglibsymboltable.h",
411 "linuxfdwalk.c",
412 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000413 ]
414 }
415
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 if (is_mac) {
417 sources += [
418 "macasyncsocket.cc",
419 "macasyncsocket.h",
420 "maccocoasocketserver.h",
421 "maccocoasocketserver.mm",
422 "macsocketserver.cc",
423 "macsocketserver.h",
424 "macwindowpicker.cc",
425 "macwindowpicker.h",
426 ]
427 }
428
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000429 if (is_win) {
430 sources += [
431 "diskcache_win32.cc",
432 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000433 "win32regkey.cc",
434 "win32regkey.h",
435 "win32socketinit.cc",
436 "win32socketinit.h",
437 "win32socketserver.cc",
438 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000439 ]
440 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000441 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000442 deps += [ "//third_party/jsoncpp" ]
443 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000444 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000445
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000446 # When defined changes the include path for json.h to where it is
447 # expected to be when building json outside of the standalone build.
448 defines += [ "WEBRTC_EXTERNAL_JSON" ]
449 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000450 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000451
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000452 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000453 # compiler settings.
454 configs -= [ "//build/config/compiler:chromium_code" ]
455 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000456 if (!is_win) {
457 cflags += [ "-Wno-uninitialized" ]
458 cflags_cc += [ "-Wno-non-virtual-dtor" ]
459 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460
461 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000462 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000463 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000464 deps += [ "//third_party/boringssl" ]
465 } else {
466 configs += [ "external_ssl_library" ]
467 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000468 sources += [
469 "openssl.h",
470 "openssladapter.cc",
471 "openssladapter.h",
472 "openssldigest.cc",
473 "openssldigest.h",
474 "opensslidentity.cc",
475 "opensslidentity.h",
476 "opensslstreamadapter.cc",
477 "opensslstreamadapter.h",
478 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479 }
480
481 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000482 sources += [
483 "ifaddrs-android.cc",
484 "ifaddrs-android.h",
485 ]
486
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000487 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000488 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200489 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000490 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491 }
492
493 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200494 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200495
496 sources += [
497 "macconversion.cc",
498 "macconversion.h",
499 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 }
501
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000502 if (use_x11) {
503 sources += [
504 "x11windowpicker.cc",
505 "x11windowpicker.h",
506 ]
507 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 "dl",
509 "rt",
510 "Xext",
511 "X11",
512 "Xcomposite",
513 "Xrender",
514 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000515 }
516
517 if (is_linux) {
518 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000519 "dl",
520 "rt",
521 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000522 }
523
524 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000525 sources += [
526 "maccocoathreadhelper.h",
527 "maccocoathreadhelper.mm",
528 "macconversion.cc",
529 "macconversion.h",
530 "macutils.cc",
531 "macutils.h",
532 ]
533
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 all_dependent_configs = [ ":mac_config" ]
535
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000536 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000537 all_dependent_configs += [ ":mac_x86_config" ]
538 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000539 }
540
541 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000542 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000543 "win32.cc",
544 "win32.h",
545 "win32filesystem.cc",
546 "win32filesystem.h",
547 "win32securityerrors.cc",
548 "win32window.cc",
549 "win32window.h",
550 "win32windowpicker.cc",
551 "win32windowpicker.h",
552 "winfirewall.cc",
553 "winfirewall.h",
554 "winping.cc",
555 "winping.h",
556 ]
557
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000558 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000559 "crypt32.lib",
560 "iphlpapi.lib",
561 "secur32.lib",
562 ]
563
564 cflags += [
565 # Suppress warnings about WIN32_LEAN_AND_MEAN.
566 "/wd4005",
567 "/wd4703",
568 ]
569
570 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000571 }
572
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000573 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000574 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000575 # _except_ for ios & mac. We want it there as well, e.g.
576 # because ASSERT and friends trigger off of it.
577 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000578 }
579
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000580 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 defines += [ "CARBON_DEPRECATED=YES" ]
582 }
583
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000584 if (is_linux || is_android) {
585 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000586 "linux.cc",
587 "linux.h",
588 ]
589 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700590
591 if (is_nacl) {
592 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
593 defines += [ "timezone=_timezone" ]
594 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000595}