blob: 8e5b4f73284f2cb4783091ddda2d47402dcde6fd [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",
tkchinf75d0082016-02-23 22:49:42 -0800141 "rate_statistics.cc",
142 "rate_statistics.h",
tommi04af8392016-02-14 08:11:10 -0800143 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800144 "safe_conversions.h",
145 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200146 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800147 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000148 "stringencode.cc",
149 "stringencode.h",
150 "stringutils.cc",
151 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700152 "systeminfo.cc",
153 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000154 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000155 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000156 "thread_checker.h",
157 "thread_checker_impl.cc",
158 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 "timeutils.cc",
160 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000161 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000162 ]
Noah Richards915590e2015-04-22 15:43:08 -0700163
Peter Boström11e02292015-11-25 21:36:14 +0100164 if (build_with_chromium) {
165 # Dependency on chromium's logging (in //base).
166 deps += [ "//base:base" ]
167 sources += [
168 "../../webrtc_overrides/webrtc/base/logging.cc",
169 "../../webrtc_overrides/webrtc/base/logging.h",
170 ]
171 include_dirs = [ "../../webrtc_overrides" ]
172 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700173 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200174 "logging.cc",
175 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700176 ]
177 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000178}
179
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000180static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 cflags = []
182 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000183 libs = []
Tommid44c0772016-03-11 17:12:32 -0800184 deps = []
185 public_deps = [
186 ":rtc_base_approved",
187 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000191 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 ]
193
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000194 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000196 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 ]
198
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200199 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200
201 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000202 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "asyncfile.cc",
204 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700205 "asyncinvoker-inl.h",
206 "asyncinvoker.cc",
207 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000208 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000210 "asyncresolverinterface.cc",
211 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "asyncsocket.cc",
213 "asyncsocket.h",
214 "asynctcpsocket.cc",
215 "asynctcpsocket.h",
216 "asyncudpsocket.cc",
217 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "autodetectproxy.cc",
219 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "base64.cc",
221 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "common.cc",
223 "common.h",
jbauch13041cf2016-02-25 06:16:52 -0800224 "copyonwritebuffer.cc",
225 "copyonwritebuffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "crc32.cc",
227 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000228 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "diskcache.cc",
231 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700232 "filerotatingstream.cc",
233 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "fileutils.cc",
235 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "firewallsocketserver.cc",
237 "firewallsocketserver.h",
238 "flags.cc",
239 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000240 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000241 "gunit_prod.h",
242 "helpers.cc",
243 "helpers.h",
244 "httpbase.cc",
245 "httpbase.h",
246 "httpclient.cc",
247 "httpclient.h",
248 "httpcommon-inl.h",
249 "httpcommon.cc",
250 "httpcommon.h",
251 "httprequest.cc",
252 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "iosfilesystem.mm",
254 "ipaddress.cc",
255 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "messagedigest.cc",
259 "messagedigest.h",
260 "messagehandler.cc",
261 "messagehandler.h",
262 "messagequeue.cc",
263 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "nethelpers.cc",
265 "nethelpers.h",
266 "network.cc",
267 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700268 "networkmonitor.cc",
269 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "pathutils.cc",
272 "pathutils.h",
273 "physicalsocketserver.cc",
274 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "proxydetect.cc",
276 "proxydetect.h",
277 "proxyinfo.cc",
278 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "ratelimiter.cc",
280 "ratelimiter.h",
281 "ratetracker.cc",
282 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200283 "rtccertificate.cc",
284 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "scoped_autorelease_pool.h",
286 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "sha1.cc",
288 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000289 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800291 "sharedexclusivelock.cc",
292 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "signalthread.cc",
294 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000295 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "sigslot.h",
297 "sigslotrepeater.h",
298 "socket.h",
299 "socketadapters.cc",
300 "socketadapters.h",
301 "socketaddress.cc",
302 "socketaddress.h",
303 "socketaddresspair.cc",
304 "socketaddresspair.h",
305 "socketfactory.h",
306 "socketpool.cc",
307 "socketpool.h",
308 "socketserver.h",
309 "socketstream.cc",
310 "socketstream.h",
311 "ssladapter.cc",
312 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000313 "sslfingerprint.cc",
314 "sslfingerprint.h",
315 "sslidentity.cc",
316 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000317 "sslsocketfactory.cc",
318 "sslsocketfactory.h",
319 "sslstreamadapter.cc",
320 "sslstreamadapter.h",
321 "sslstreamadapterhelper.cc",
322 "sslstreamadapterhelper.h",
323 "stream.cc",
324 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "task.cc",
326 "task.h",
327 "taskparent.cc",
328 "taskparent.h",
329 "taskrunner.cc",
330 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "thread.cc",
332 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "timing.cc",
334 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "urlencode.cc",
336 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "worker.cc",
338 "worker.h",
339 ]
340
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000341 if (is_posix) {
342 sources += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800343 "ifaddrs-android.h",
344 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000345 "unixfilesystem.cc",
346 "unixfilesystem.h",
347 ]
348 }
349
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000351 deps += [ "..:webrtc_common" ]
352
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800353 if (is_mac) {
354 sources += [ "macifaddrs_converter.cc" ]
355 }
356
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700358 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000360
361 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700362 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000363 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000364 ]
365
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000366 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000367 } else {
368 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "bandwidthsmoother.cc",
370 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "bind.h",
372 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "callback.h",
374 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "fileutils_mock.h",
376 "genericslot.h",
377 "genericslot.h.pump",
378 "httpserver.cc",
379 "httpserver.h",
380 "json.cc",
381 "json.h",
tkchin93411912015-07-22 12:12:17 -0700382 "logsinks.cc",
383 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "mathutils.h",
385 "multipart.cc",
386 "multipart.h",
387 "natserver.cc",
388 "natserver.h",
389 "natsocketfactory.cc",
390 "natsocketfactory.h",
391 "nattypes.cc",
392 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "optionsfile.cc",
394 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "profiler.cc",
396 "profiler.h",
397 "proxyserver.cc",
398 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "referencecountedsingletonfactory.h",
400 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200401 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "sslconfig.h",
404 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "testclient.cc",
406 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 "transformadapter.cc",
408 "transformadapter.h",
409 "versionparsing.cc",
410 "versionparsing.h",
411 "virtualsocketserver.cc",
412 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000413 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000414 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200415 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 ]
417
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000418 deps += [ "..:webrtc_common" ]
419
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000420 if (is_posix) {
421 sources += [
422 "latebindingsymboltable.cc",
423 "latebindingsymboltable.cc.def",
424 "latebindingsymboltable.h",
425 "latebindingsymboltable.h.def",
426 "posix.cc",
427 "posix.h",
428 ]
429 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000430
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000431 if (is_linux) {
432 sources += [
433 "dbus.cc",
434 "dbus.h",
435 "libdbusglibsymboltable.cc",
436 "libdbusglibsymboltable.h",
437 "linuxfdwalk.c",
438 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000439 ]
440 }
441
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000442 if (is_mac) {
443 sources += [
444 "macasyncsocket.cc",
445 "macasyncsocket.h",
446 "maccocoasocketserver.h",
447 "maccocoasocketserver.mm",
448 "macsocketserver.cc",
449 "macsocketserver.h",
450 "macwindowpicker.cc",
451 "macwindowpicker.h",
452 ]
453 }
454
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000455 if (is_win) {
456 sources += [
457 "diskcache_win32.cc",
458 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000459 "win32regkey.cc",
460 "win32regkey.h",
461 "win32socketinit.cc",
462 "win32socketinit.h",
463 "win32socketserver.cc",
464 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465 ]
466 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000467 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000468 deps += [ "//third_party/jsoncpp" ]
469 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000470 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000471
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000472 # When defined changes the include path for json.h to where it is
473 # expected to be when building json outside of the standalone build.
474 defines += [ "WEBRTC_EXTERNAL_JSON" ]
475 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000476 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000477
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000478 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000479 # compiler settings.
480 configs -= [ "//build/config/compiler:chromium_code" ]
481 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000482 if (!is_win) {
483 cflags += [ "-Wno-uninitialized" ]
484 cflags_cc += [ "-Wno-non-virtual-dtor" ]
485 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000486
487 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000488 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000489 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000490 deps += [ "//third_party/boringssl" ]
491 } else {
492 configs += [ "external_ssl_library" ]
493 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000494 sources += [
495 "openssl.h",
496 "openssladapter.cc",
497 "openssladapter.h",
498 "openssldigest.cc",
499 "openssldigest.h",
500 "opensslidentity.cc",
501 "opensslidentity.h",
502 "opensslstreamadapter.cc",
503 "opensslstreamadapter.h",
504 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 }
506
507 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000508 sources += [
509 "ifaddrs-android.cc",
510 "ifaddrs-android.h",
511 ]
512
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000513 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000514 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200515 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 }
518
519 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200520 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200521
522 sources += [
523 "macconversion.cc",
524 "macconversion.h",
525 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 }
527
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000528 if (use_x11) {
529 sources += [
530 "x11windowpicker.cc",
531 "x11windowpicker.h",
532 ]
533 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 "dl",
535 "rt",
536 "Xext",
537 "X11",
538 "Xcomposite",
539 "Xrender",
540 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000541 }
542
543 if (is_linux) {
544 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000545 "dl",
546 "rt",
547 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000548 }
549
550 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000551 sources += [
552 "maccocoathreadhelper.h",
553 "maccocoathreadhelper.mm",
554 "macconversion.cc",
555 "macconversion.h",
556 "macutils.cc",
557 "macutils.h",
558 ]
559
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 all_dependent_configs = [ ":mac_config" ]
561
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000562 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000563 all_dependent_configs += [ ":mac_x86_config" ]
564 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000565 }
566
567 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000568 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000569 "win32.cc",
570 "win32.h",
571 "win32filesystem.cc",
572 "win32filesystem.h",
573 "win32securityerrors.cc",
574 "win32window.cc",
575 "win32window.h",
576 "win32windowpicker.cc",
577 "win32windowpicker.h",
578 "winfirewall.cc",
579 "winfirewall.h",
580 "winping.cc",
581 "winping.h",
582 ]
583
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000584 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000585 "crypt32.lib",
586 "iphlpapi.lib",
587 "secur32.lib",
588 ]
589
590 cflags += [
591 # Suppress warnings about WIN32_LEAN_AND_MEAN.
592 "/wd4005",
593 "/wd4703",
594 ]
595
596 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000597 }
598
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000599 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000600 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000601 # _except_ for ios & mac. We want it there as well, e.g.
602 # because ASSERT and friends trigger off of it.
603 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 }
605
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000606 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607 defines += [ "CARBON_DEPRECATED=YES" ]
608 }
609
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000610 if (is_linux || is_android) {
611 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000612 "linux.cc",
613 "linux.h",
614 ]
615 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700616
617 if (is_nacl) {
618 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
619 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800620 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700621 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000622}
tkchin42f580e2015-11-26 23:18:23 -0800623
624if (is_ios) {
625 source_set("rtc_base_objc") {
626 deps = [
627 ":rtc_base",
628 ]
629 cflags = [ "-fobjc-arc" ]
630 configs += [ "..:common_config" ]
631 public_configs = [ "..:common_inherited_config" ]
632
633 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800634 "objc/NSString+StdString.h",
635 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800636 "objc/RTCCameraPreviewView.h",
637 "objc/RTCCameraPreviewView.m",
638 "objc/RTCDispatcher.h",
639 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800640 "objc/RTCFieldTrials.h",
641 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800642 "objc/RTCFileLogger.h",
643 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800644 "objc/RTCLogging.h",
645 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800646 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800647 "objc/RTCSSLAdapter.h",
648 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800649 "objc/RTCTracing.h",
650 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800651 "objc/RTCUIApplication.h",
652 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800653 ]
654 }
655}
kjellander988d31e2016-02-05 00:23:50 -0800656
657source_set("gtest_prod") {
658 sources = [
659 "gtest_prod_util.h",
660 ]
661}