blob: dfd65eba95154da23362b46529be778b89fcc796 [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 = [
hjonaa32c3e2015-12-13 19:58:11 -080051 "AVFoundation.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070052 "CFNetwork.framework",
53
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"UIKit.framework", # Already included in //build/config:default_libs.
59 ]
60}
61
62config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000063 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000064 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020065
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000066 #"Foundation.framework", # Already included in //build/config:default_libs.
67 #"IOKit.framework", # Already included in //build/config:default_libs.
68 #"Security.framework", # Already included in //build/config:default_libs.
69 "SystemConfiguration.framework",
70 ]
71}
72
73config("mac_x86_config") {
74 libs = [
75 #"Carbon.framework", # Already included in //build/config:default_libs.
76 ]
77}
78
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000079if (is_linux && !build_with_chromium) {
80 # Provides the same functionality as the //crypto:platform target, which
81 # WebRTC cannot use as we don't sync src/crypto from Chromium.
82 group("linux_system_ssl") {
83 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020084 deps = [
85 "//third_party/boringssl",
86 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000087 }
88 }
89}
90
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000091if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000092 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000093 assert(rtc_ssl_root != "",
94 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
95 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000096 }
97}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000098
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099# The subset of rtc_base approved for use outside of libjingle.
100static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +0100101 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000102 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000103 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000104
105 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100106 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200107 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700108 "bitbuffer.cc",
109 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200110 "buffer.cc",
111 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200112 "bufferqueue.cc",
113 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700114 "bytebuffer.cc",
115 "bytebuffer.h",
116 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000117 "checks.cc",
118 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100119 "constructormagic.h",
Tommi494f2092015-04-27 17:39:23 +0200120 "criticalsection.cc",
121 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800122 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000123 "event.cc",
124 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000125 "event_tracer.cc",
126 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000127 "exp_filter.cc",
128 "exp_filter.h",
129 "md5.cc",
130 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000131 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100133 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000134 "platform_file.cc",
135 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200136 "platform_thread.cc",
137 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800138 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800139 "random.cc",
140 "random.h",
tommi04af8392016-02-14 08:11:10 -0800141 "refcount.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000142 "safe_conversions.h",
143 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200144 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800145 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000146 "stringencode.cc",
147 "stringencode.h",
148 "stringutils.cc",
149 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700150 "systeminfo.cc",
151 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000152 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000153 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000154 "thread_checker.h",
155 "thread_checker_impl.cc",
156 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000157 "timeutils.cc",
158 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000159 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 ]
Noah Richards915590e2015-04-22 15:43:08 -0700161
Peter Boström11e02292015-11-25 21:36:14 +0100162 if (build_with_chromium) {
163 # Dependency on chromium's logging (in //base).
164 deps += [ "//base:base" ]
165 sources += [
166 "../../webrtc_overrides/webrtc/base/logging.cc",
167 "../../webrtc_overrides/webrtc/base/logging.h",
168 ]
169 include_dirs = [ "../../webrtc_overrides" ]
170 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700171 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200172 "logging.cc",
173 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700174 ]
175 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000176}
177
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000178static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 cflags = []
180 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000181 libs = []
jbroman5584bf42016-01-12 09:46:55 -0800182 deps = []
183 public_deps = [
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000184 ":rtc_base_approved",
185 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000189 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 ]
191
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000192 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000194 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 ]
196
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200197 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198
199 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000200 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "asyncfile.cc",
202 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700203 "asyncinvoker-inl.h",
204 "asyncinvoker.cc",
205 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000206 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000208 "asyncresolverinterface.cc",
209 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210 "asyncsocket.cc",
211 "asyncsocket.h",
212 "asynctcpsocket.cc",
213 "asynctcpsocket.h",
214 "asyncudpsocket.cc",
215 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "autodetectproxy.cc",
217 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "base64.cc",
219 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "common.cc",
221 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "crc32.cc",
223 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000224 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "diskcache.cc",
227 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700228 "filerotatingstream.cc",
229 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "fileutils.cc",
231 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "firewallsocketserver.cc",
233 "firewallsocketserver.h",
234 "flags.cc",
235 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000236 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "gunit_prod.h",
238 "helpers.cc",
239 "helpers.h",
240 "httpbase.cc",
241 "httpbase.h",
242 "httpclient.cc",
243 "httpclient.h",
244 "httpcommon-inl.h",
245 "httpcommon.cc",
246 "httpcommon.h",
247 "httprequest.cc",
248 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "iosfilesystem.mm",
250 "ipaddress.cc",
251 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "messagedigest.cc",
255 "messagedigest.h",
256 "messagehandler.cc",
257 "messagehandler.h",
258 "messagequeue.cc",
259 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "nethelpers.cc",
261 "nethelpers.h",
262 "network.cc",
263 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700264 "networkmonitor.cc",
265 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "pathutils.cc",
268 "pathutils.h",
269 "physicalsocketserver.cc",
270 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "proxydetect.cc",
272 "proxydetect.h",
273 "proxyinfo.cc",
274 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "ratelimiter.cc",
276 "ratelimiter.h",
277 "ratetracker.cc",
278 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200279 "rtccertificate.cc",
280 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "scoped_autorelease_pool.h",
282 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "sha1.cc",
284 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000285 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800287 "sharedexclusivelock.cc",
288 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "signalthread.cc",
290 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000291 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "sigslot.h",
293 "sigslotrepeater.h",
294 "socket.h",
295 "socketadapters.cc",
296 "socketadapters.h",
297 "socketaddress.cc",
298 "socketaddress.h",
299 "socketaddresspair.cc",
300 "socketaddresspair.h",
301 "socketfactory.h",
302 "socketpool.cc",
303 "socketpool.h",
304 "socketserver.h",
305 "socketstream.cc",
306 "socketstream.h",
307 "ssladapter.cc",
308 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "sslfingerprint.cc",
310 "sslfingerprint.h",
311 "sslidentity.cc",
312 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000313 "sslsocketfactory.cc",
314 "sslsocketfactory.h",
315 "sslstreamadapter.cc",
316 "sslstreamadapter.h",
317 "sslstreamadapterhelper.cc",
318 "sslstreamadapterhelper.h",
319 "stream.cc",
320 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "task.cc",
322 "task.h",
323 "taskparent.cc",
324 "taskparent.h",
325 "taskrunner.cc",
326 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "thread.cc",
328 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "timing.cc",
330 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "urlencode.cc",
332 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "worker.cc",
334 "worker.h",
335 ]
336
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000337 if (is_posix) {
338 sources += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800339 "ifaddrs-android.h",
340 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000341 "unixfilesystem.cc",
342 "unixfilesystem.h",
343 ]
344 }
345
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000347 deps += [ "..:webrtc_common" ]
348
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800349 if (is_mac) {
350 sources += [ "macifaddrs_converter.cc" ]
351 }
352
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700354 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356
357 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700358 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000359 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000360 ]
361
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000362 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000363 } else {
364 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "bandwidthsmoother.cc",
366 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "bind.h",
368 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "callback.h",
370 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "fileutils_mock.h",
372 "genericslot.h",
373 "genericslot.h.pump",
374 "httpserver.cc",
375 "httpserver.h",
376 "json.cc",
377 "json.h",
tkchin93411912015-07-22 12:12:17 -0700378 "logsinks.cc",
379 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "mathutils.h",
381 "multipart.cc",
382 "multipart.h",
383 "natserver.cc",
384 "natserver.h",
385 "natsocketfactory.cc",
386 "natsocketfactory.h",
387 "nattypes.cc",
388 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "optionsfile.cc",
390 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "profiler.cc",
392 "profiler.h",
393 "proxyserver.cc",
394 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "referencecountedsingletonfactory.h",
396 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200397 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "sslconfig.h",
400 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "testclient.cc",
402 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "transformadapter.cc",
404 "transformadapter.h",
405 "versionparsing.cc",
406 "versionparsing.h",
407 "virtualsocketserver.cc",
408 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000410 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200411 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412 ]
413
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000414 deps += [ "..:webrtc_common" ]
415
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 if (is_posix) {
417 sources += [
418 "latebindingsymboltable.cc",
419 "latebindingsymboltable.cc.def",
420 "latebindingsymboltable.h",
421 "latebindingsymboltable.h.def",
422 "posix.cc",
423 "posix.h",
424 ]
425 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000426
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000427 if (is_linux) {
428 sources += [
429 "dbus.cc",
430 "dbus.h",
431 "libdbusglibsymboltable.cc",
432 "libdbusglibsymboltable.h",
433 "linuxfdwalk.c",
434 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000435 ]
436 }
437
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000438 if (is_mac) {
439 sources += [
440 "macasyncsocket.cc",
441 "macasyncsocket.h",
442 "maccocoasocketserver.h",
443 "maccocoasocketserver.mm",
444 "macsocketserver.cc",
445 "macsocketserver.h",
446 "macwindowpicker.cc",
447 "macwindowpicker.h",
448 ]
449 }
450
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000451 if (is_win) {
452 sources += [
453 "diskcache_win32.cc",
454 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000455 "win32regkey.cc",
456 "win32regkey.h",
457 "win32socketinit.cc",
458 "win32socketinit.h",
459 "win32socketserver.cc",
460 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461 ]
462 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000463 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000464 deps += [ "//third_party/jsoncpp" ]
465 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000466 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000467
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000468 # When defined changes the include path for json.h to where it is
469 # expected to be when building json outside of the standalone build.
470 defines += [ "WEBRTC_EXTERNAL_JSON" ]
471 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000472 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000473
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000474 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000475 # compiler settings.
476 configs -= [ "//build/config/compiler:chromium_code" ]
477 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000478 if (!is_win) {
479 cflags += [ "-Wno-uninitialized" ]
480 cflags_cc += [ "-Wno-non-virtual-dtor" ]
481 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000482
483 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000484 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000485 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000486 deps += [ "//third_party/boringssl" ]
487 } else {
488 configs += [ "external_ssl_library" ]
489 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000490 sources += [
491 "openssl.h",
492 "openssladapter.cc",
493 "openssladapter.h",
494 "openssldigest.cc",
495 "openssldigest.h",
496 "opensslidentity.cc",
497 "opensslidentity.h",
498 "opensslstreamadapter.cc",
499 "opensslstreamadapter.h",
500 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000501 }
502
503 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000504 sources += [
505 "ifaddrs-android.cc",
506 "ifaddrs-android.h",
507 ]
508
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000509 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000510 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200511 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000513 }
514
515 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200516 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200517
518 sources += [
519 "macconversion.cc",
520 "macconversion.h",
521 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000522 }
523
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000524 if (use_x11) {
525 sources += [
526 "x11windowpicker.cc",
527 "x11windowpicker.h",
528 ]
529 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000530 "dl",
531 "rt",
532 "Xext",
533 "X11",
534 "Xcomposite",
535 "Xrender",
536 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000537 }
538
539 if (is_linux) {
540 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000541 "dl",
542 "rt",
543 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000544 }
545
546 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000547 sources += [
548 "maccocoathreadhelper.h",
549 "maccocoathreadhelper.mm",
550 "macconversion.cc",
551 "macconversion.h",
552 "macutils.cc",
553 "macutils.h",
554 ]
555
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000556 all_dependent_configs = [ ":mac_config" ]
557
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000558 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000559 all_dependent_configs += [ ":mac_x86_config" ]
560 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000561 }
562
563 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000564 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000565 "win32.cc",
566 "win32.h",
567 "win32filesystem.cc",
568 "win32filesystem.h",
569 "win32securityerrors.cc",
570 "win32window.cc",
571 "win32window.h",
572 "win32windowpicker.cc",
573 "win32windowpicker.h",
574 "winfirewall.cc",
575 "winfirewall.h",
576 "winping.cc",
577 "winping.h",
578 ]
579
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000580 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 "crypt32.lib",
582 "iphlpapi.lib",
583 "secur32.lib",
584 ]
585
586 cflags += [
587 # Suppress warnings about WIN32_LEAN_AND_MEAN.
588 "/wd4005",
589 "/wd4703",
590 ]
591
592 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000593 }
594
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000595 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000596 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000597 # _except_ for ios & mac. We want it there as well, e.g.
598 # because ASSERT and friends trigger off of it.
599 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000600 }
601
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000602 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603 defines += [ "CARBON_DEPRECATED=YES" ]
604 }
605
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000606 if (is_linux || is_android) {
607 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608 "linux.cc",
609 "linux.h",
610 ]
611 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700612
613 if (is_nacl) {
614 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
615 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800616 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700617 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000618}
tkchin42f580e2015-11-26 23:18:23 -0800619
620if (is_ios) {
621 source_set("rtc_base_objc") {
622 deps = [
623 ":rtc_base",
624 ]
625 cflags = [ "-fobjc-arc" ]
626 configs += [ "..:common_config" ]
627 public_configs = [ "..:common_inherited_config" ]
628
629 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800630 "objc/NSString+StdString.h",
631 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800632 "objc/RTCCameraPreviewView.h",
633 "objc/RTCCameraPreviewView.m",
634 "objc/RTCDispatcher.h",
635 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800636 "objc/RTCLogging.h",
637 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800638 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800639 "objc/RTCSSLAdapter.h",
640 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800641 "objc/RTCTracing.h",
642 "objc/RTCTracing.mm",
tkchin42f580e2015-11-26 23:18:23 -0800643 ]
644 }
645}
kjellander988d31e2016-02-05 00:23:50 -0800646
647source_set("gtest_prod") {
648 sources = [
649 "gtest_prod_util.h",
650 ]
651}