blob: 79e204ed989fdc16aaa61fd82d310738b3327853 [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",
117 "md5.cc",
118 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000119 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000120 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000121 "platform_file.cc",
122 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200123 "platform_thread.cc",
124 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000125 "safe_conversions.h",
126 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200127 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000128 "stringencode.cc",
129 "stringencode.h",
130 "stringutils.cc",
131 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700132 "systeminfo.cc",
133 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000134 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000135 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000136 "thread_checker.h",
137 "thread_checker_impl.cc",
138 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000139 "timeutils.cc",
140 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000141 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000142 ]
Noah Richards915590e2015-04-22 15:43:08 -0700143
henrikg71df77b2015-09-18 01:48:34 -0700144 if (!build_with_chromium) {
Noah Richards915590e2015-04-22 15:43:08 -0700145 sources += [
146 "basictypes.h",
147 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200148 "logging.cc",
149 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700150 ]
151 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000152}
153
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000154static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000155 cflags = []
156 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000157 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000158 deps = [
159 ":rtc_base_approved",
160 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000161
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000162 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000163 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000164 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000165 ]
166
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000167 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000168 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000169 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000170 ]
171
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200172 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000173
174 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000175 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000176 "asyncfile.cc",
177 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700178 "asyncinvoker-inl.h",
179 "asyncinvoker.cc",
180 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000181 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000183 "asyncresolverinterface.cc",
184 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "asyncsocket.cc",
186 "asyncsocket.h",
187 "asynctcpsocket.cc",
188 "asynctcpsocket.h",
189 "asyncudpsocket.cc",
190 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 "autodetectproxy.cc",
192 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "base64.cc",
194 "base64.h",
195 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "common.cc",
197 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "crc32.cc",
199 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000200 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "diskcache.cc",
203 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700204 "filerotatingstream.cc",
205 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "fileutils.cc",
207 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "firewallsocketserver.cc",
209 "firewallsocketserver.h",
210 "flags.cc",
211 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000212 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "gunit_prod.h",
214 "helpers.cc",
215 "helpers.h",
216 "httpbase.cc",
217 "httpbase.h",
218 "httpclient.cc",
219 "httpclient.h",
220 "httpcommon-inl.h",
221 "httpcommon.cc",
222 "httpcommon.h",
223 "httprequest.cc",
224 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "iosfilesystem.mm",
226 "ipaddress.cc",
227 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "messagedigest.cc",
231 "messagedigest.h",
232 "messagehandler.cc",
233 "messagehandler.h",
234 "messagequeue.cc",
235 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "nethelpers.cc",
237 "nethelpers.h",
238 "network.cc",
239 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700240 "networkmonitor.cc",
241 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "pathutils.cc",
244 "pathutils.h",
245 "physicalsocketserver.cc",
246 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "proxydetect.cc",
248 "proxydetect.h",
249 "proxyinfo.cc",
250 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "ratelimiter.cc",
252 "ratelimiter.h",
253 "ratetracker.cc",
254 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200255 "rtccertificate.cc",
256 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "scoped_autorelease_pool.h",
258 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "sha1.cc",
260 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000261 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "signalthread.cc",
264 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000265 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "sigslot.h",
267 "sigslotrepeater.h",
268 "socket.h",
269 "socketadapters.cc",
270 "socketadapters.h",
271 "socketaddress.cc",
272 "socketaddress.h",
273 "socketaddresspair.cc",
274 "socketaddresspair.h",
275 "socketfactory.h",
276 "socketpool.cc",
277 "socketpool.h",
278 "socketserver.h",
279 "socketstream.cc",
280 "socketstream.h",
281 "ssladapter.cc",
282 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "sslfingerprint.cc",
284 "sslfingerprint.h",
285 "sslidentity.cc",
286 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "sslsocketfactory.cc",
288 "sslsocketfactory.h",
289 "sslstreamadapter.cc",
290 "sslstreamadapter.h",
291 "sslstreamadapterhelper.cc",
292 "sslstreamadapterhelper.h",
293 "stream.cc",
294 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "task.cc",
296 "task.h",
297 "taskparent.cc",
298 "taskparent.h",
299 "taskrunner.cc",
300 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "thread.cc",
302 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "timing.cc",
304 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "urlencode.cc",
306 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 "worker.cc",
308 "worker.h",
309 ]
310
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000311 if (is_posix) {
312 sources += [
313 "unixfilesystem.cc",
314 "unixfilesystem.h",
315 ]
316 }
317
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 if (build_with_chromium) {
319 sources += [
henrikgee2bf412015-09-30 03:48:52 -0700320 "../../webrtc_overrides/webrtc/base/logging.cc",
321 "../../webrtc_overrides/webrtc/base/logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000323
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000324 deps += [ "..:webrtc_common" ]
325
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700327 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000329
330 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700331 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000332 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000333 ]
334
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000335 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000336 } else {
337 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "bandwidthsmoother.cc",
339 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "bind.h",
341 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "callback.h",
343 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "fileutils_mock.h",
345 "genericslot.h",
346 "genericslot.h.pump",
347 "httpserver.cc",
348 "httpserver.h",
349 "json.cc",
350 "json.h",
tkchin93411912015-07-22 12:12:17 -0700351 "logsinks.cc",
352 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "mathutils.h",
354 "multipart.cc",
355 "multipart.h",
356 "natserver.cc",
357 "natserver.h",
358 "natsocketfactory.cc",
359 "natsocketfactory.h",
360 "nattypes.cc",
361 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "optionsfile.cc",
363 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "profiler.cc",
365 "profiler.h",
366 "proxyserver.cc",
367 "proxyserver.h",
368 "refcount.h",
369 "referencecountedsingletonfactory.h",
370 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200372 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000374 "sharedexclusivelock.cc",
375 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "sslconfig.h",
377 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "testclient.cc",
379 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "transformadapter.cc",
381 "transformadapter.h",
382 "versionparsing.cc",
383 "versionparsing.h",
384 "virtualsocketserver.cc",
385 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200388 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 ]
390
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000391 deps += [ "..:webrtc_common" ]
392
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000393 if (is_posix) {
394 sources += [
395 "latebindingsymboltable.cc",
396 "latebindingsymboltable.cc.def",
397 "latebindingsymboltable.h",
398 "latebindingsymboltable.h.def",
399 "posix.cc",
400 "posix.h",
401 ]
402 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000404 if (is_linux) {
405 sources += [
406 "dbus.cc",
407 "dbus.h",
408 "libdbusglibsymboltable.cc",
409 "libdbusglibsymboltable.h",
410 "linuxfdwalk.c",
411 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000412 ]
413 }
414
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 if (is_mac) {
416 sources += [
417 "macasyncsocket.cc",
418 "macasyncsocket.h",
419 "maccocoasocketserver.h",
420 "maccocoasocketserver.mm",
421 "macsocketserver.cc",
422 "macsocketserver.h",
423 "macwindowpicker.cc",
424 "macwindowpicker.h",
425 ]
426 }
427
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000428 if (is_win) {
429 sources += [
430 "diskcache_win32.cc",
431 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000432 "win32regkey.cc",
433 "win32regkey.h",
434 "win32socketinit.cc",
435 "win32socketinit.h",
436 "win32socketserver.cc",
437 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000438 ]
439 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000440 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000441 deps += [ "//third_party/jsoncpp" ]
442 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000443 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000444
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000445 # When defined changes the include path for json.h to where it is
446 # expected to be when building json outside of the standalone build.
447 defines += [ "WEBRTC_EXTERNAL_JSON" ]
448 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000449 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000451 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000452 # compiler settings.
453 configs -= [ "//build/config/compiler:chromium_code" ]
454 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000455 if (!is_win) {
456 cflags += [ "-Wno-uninitialized" ]
457 cflags_cc += [ "-Wno-non-virtual-dtor" ]
458 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
460 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000461 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000462 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000463 deps += [ "//third_party/boringssl" ]
464 } else {
465 configs += [ "external_ssl_library" ]
466 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000467 sources += [
468 "openssl.h",
469 "openssladapter.cc",
470 "openssladapter.h",
471 "openssldigest.cc",
472 "openssldigest.h",
473 "opensslidentity.cc",
474 "opensslidentity.h",
475 "opensslstreamadapter.cc",
476 "opensslstreamadapter.h",
477 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000478 }
479
480 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000481 sources += [
482 "ifaddrs-android.cc",
483 "ifaddrs-android.h",
484 ]
485
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000486 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200488 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000490 }
491
492 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200493 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200494
495 sources += [
496 "macconversion.cc",
497 "macconversion.h",
498 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000499 }
500
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000501 if (use_x11) {
502 sources += [
503 "x11windowpicker.cc",
504 "x11windowpicker.h",
505 ]
506 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507 "dl",
508 "rt",
509 "Xext",
510 "X11",
511 "Xcomposite",
512 "Xrender",
513 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000514 }
515
516 if (is_linux) {
517 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 "dl",
519 "rt",
520 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 }
522
523 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000524 sources += [
525 "maccocoathreadhelper.h",
526 "maccocoathreadhelper.mm",
527 "macconversion.cc",
528 "macconversion.h",
529 "macutils.cc",
530 "macutils.h",
531 ]
532
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 all_dependent_configs = [ ":mac_config" ]
534
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000535 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 all_dependent_configs += [ ":mac_x86_config" ]
537 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 }
539
540 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000541 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000542 "win32.cc",
543 "win32.h",
544 "win32filesystem.cc",
545 "win32filesystem.h",
546 "win32securityerrors.cc",
547 "win32window.cc",
548 "win32window.h",
549 "win32windowpicker.cc",
550 "win32windowpicker.h",
551 "winfirewall.cc",
552 "winfirewall.h",
553 "winping.cc",
554 "winping.h",
555 ]
556
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000557 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 "crypt32.lib",
559 "iphlpapi.lib",
560 "secur32.lib",
561 ]
562
563 cflags += [
564 # Suppress warnings about WIN32_LEAN_AND_MEAN.
565 "/wd4005",
566 "/wd4703",
567 ]
568
569 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 }
571
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000572 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000573 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000574 # _except_ for ios & mac. We want it there as well, e.g.
575 # because ASSERT and friends trigger off of it.
576 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000577 }
578
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000579 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 defines += [ "CARBON_DEPRECATED=YES" ]
581 }
582
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000583 if (is_linux || is_android) {
584 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000585 "linux.cc",
586 "linux.h",
587 ]
588 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700589
590 if (is_nacl) {
591 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
592 defines += [ "timezone=_timezone" ]
593 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594}