blob: 5cb428727e6258d152e94bc04c7e00e2a667f3ca [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",
tommiebfbab52016-03-19 11:36:18 -0700120 "copyonwritebuffer.cc",
121 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200122 "criticalsection.cc",
123 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800124 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000125 "event.cc",
126 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000127 "event_tracer.cc",
128 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "exp_filter.cc",
130 "exp_filter.h",
131 "md5.cc",
132 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000133 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000134 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100135 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000136 "platform_file.cc",
137 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200138 "platform_thread.cc",
139 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800140 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800141 "random.cc",
142 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800143 "rate_statistics.cc",
144 "rate_statistics.h",
tommi04af8392016-02-14 08:11:10 -0800145 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800146 "safe_conversions.h",
147 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200148 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800149 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000150 "stringencode.cc",
151 "stringencode.h",
152 "stringutils.cc",
153 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700154 "systeminfo.cc",
155 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000156 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000157 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000158 "thread_checker.h",
159 "thread_checker_impl.cc",
160 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000161 "timeutils.cc",
162 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000163 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000164 ]
Noah Richards915590e2015-04-22 15:43:08 -0700165
Peter Boström11e02292015-11-25 21:36:14 +0100166 if (build_with_chromium) {
167 # Dependency on chromium's logging (in //base).
168 deps += [ "//base:base" ]
169 sources += [
170 "../../webrtc_overrides/webrtc/base/logging.cc",
171 "../../webrtc_overrides/webrtc/base/logging.h",
172 ]
173 include_dirs = [ "../../webrtc_overrides" ]
174 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700175 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200176 "logging.cc",
177 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700178 ]
179 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180}
181
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000182static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 cflags = []
184 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000185 libs = []
Tommid44c0772016-03-11 17:12:32 -0800186 deps = []
187 public_deps = [
188 ":rtc_base_approved",
189 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700193 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000194 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 ]
196
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000197 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700199 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000200 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 ]
202
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200203 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204
205 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000206 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "asyncfile.cc",
208 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700209 "asyncinvoker-inl.h",
210 "asyncinvoker.cc",
211 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000212 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000214 "asyncresolverinterface.cc",
215 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "asyncsocket.cc",
217 "asyncsocket.h",
218 "asynctcpsocket.cc",
219 "asynctcpsocket.h",
220 "asyncudpsocket.cc",
221 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "autodetectproxy.cc",
223 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "base64.cc",
225 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "common.cc",
227 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "crc32.cc",
229 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000230 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "diskcache.cc",
233 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700234 "filerotatingstream.cc",
235 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "fileutils.cc",
237 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "firewallsocketserver.cc",
239 "firewallsocketserver.h",
240 "flags.cc",
241 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000242 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "gunit_prod.h",
244 "helpers.cc",
245 "helpers.h",
246 "httpbase.cc",
247 "httpbase.h",
248 "httpclient.cc",
249 "httpclient.h",
250 "httpcommon-inl.h",
251 "httpcommon.cc",
252 "httpcommon.h",
253 "httprequest.cc",
254 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "iosfilesystem.mm",
256 "ipaddress.cc",
257 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "messagedigest.cc",
261 "messagedigest.h",
262 "messagehandler.cc",
263 "messagehandler.h",
264 "messagequeue.cc",
265 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "nethelpers.cc",
267 "nethelpers.h",
268 "network.cc",
269 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700270 "networkmonitor.cc",
271 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "pathutils.cc",
274 "pathutils.h",
275 "physicalsocketserver.cc",
276 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "proxydetect.cc",
278 "proxydetect.h",
279 "proxyinfo.cc",
280 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "ratelimiter.cc",
282 "ratelimiter.h",
283 "ratetracker.cc",
284 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200285 "rtccertificate.cc",
286 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "scoped_autorelease_pool.h",
288 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "sha1.cc",
290 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000291 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800293 "sharedexclusivelock.cc",
294 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "signalthread.cc",
296 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000297 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000298 "sigslot.h",
299 "sigslotrepeater.h",
300 "socket.h",
301 "socketadapters.cc",
302 "socketadapters.h",
303 "socketaddress.cc",
304 "socketaddress.h",
305 "socketaddresspair.cc",
306 "socketaddresspair.h",
307 "socketfactory.h",
308 "socketpool.cc",
309 "socketpool.h",
310 "socketserver.h",
311 "socketstream.cc",
312 "socketstream.h",
313 "ssladapter.cc",
314 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000315 "sslfingerprint.cc",
316 "sslfingerprint.h",
317 "sslidentity.cc",
318 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000319 "sslsocketfactory.cc",
320 "sslsocketfactory.h",
321 "sslstreamadapter.cc",
322 "sslstreamadapter.h",
323 "sslstreamadapterhelper.cc",
324 "sslstreamadapterhelper.h",
325 "stream.cc",
326 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "task.cc",
328 "task.h",
329 "taskparent.cc",
330 "taskparent.h",
331 "taskrunner.cc",
332 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "thread.cc",
334 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "timing.cc",
336 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "urlencode.cc",
338 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "worker.cc",
340 "worker.h",
341 ]
342
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000343 if (is_posix) {
344 sources += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800345 "ifaddrs-android.h",
346 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000347 "unixfilesystem.cc",
348 "unixfilesystem.h",
349 ]
350 }
351
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000353 deps += [ "..:webrtc_common" ]
354
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800355 if (is_mac) {
356 sources += [ "macifaddrs_converter.cc" ]
357 }
358
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700360 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000362
363 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700364 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000365 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000366 ]
367
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000368 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000369 } else {
370 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "bandwidthsmoother.cc",
372 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "bind.h",
374 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "callback.h",
376 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "fileutils_mock.h",
378 "genericslot.h",
379 "genericslot.h.pump",
380 "httpserver.cc",
381 "httpserver.h",
382 "json.cc",
383 "json.h",
tkchin93411912015-07-22 12:12:17 -0700384 "logsinks.cc",
385 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "mathutils.h",
387 "multipart.cc",
388 "multipart.h",
389 "natserver.cc",
390 "natserver.h",
391 "natsocketfactory.cc",
392 "natsocketfactory.h",
393 "nattypes.cc",
394 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "optionsfile.cc",
396 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "profiler.cc",
398 "profiler.h",
399 "proxyserver.cc",
400 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "referencecountedsingletonfactory.h",
402 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200403 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "sslconfig.h",
406 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 "testclient.cc",
408 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "transformadapter.cc",
410 "transformadapter.h",
411 "versionparsing.cc",
412 "versionparsing.h",
413 "virtualsocketserver.cc",
414 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000415 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200417 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418 ]
419
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000420 deps += [ "..:webrtc_common" ]
421
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000422 if (is_posix) {
423 sources += [
424 "latebindingsymboltable.cc",
425 "latebindingsymboltable.cc.def",
426 "latebindingsymboltable.h",
427 "latebindingsymboltable.h.def",
428 "posix.cc",
429 "posix.h",
430 ]
431 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000432
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000433 if (is_linux) {
434 sources += [
435 "dbus.cc",
436 "dbus.h",
437 "libdbusglibsymboltable.cc",
438 "libdbusglibsymboltable.h",
439 "linuxfdwalk.c",
440 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000441 ]
442 }
443
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000444 if (is_mac) {
445 sources += [
446 "macasyncsocket.cc",
447 "macasyncsocket.h",
448 "maccocoasocketserver.h",
449 "maccocoasocketserver.mm",
450 "macsocketserver.cc",
451 "macsocketserver.h",
452 "macwindowpicker.cc",
453 "macwindowpicker.h",
454 ]
455 }
456
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000457 if (is_win) {
458 sources += [
459 "diskcache_win32.cc",
460 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000461 "win32regkey.cc",
462 "win32regkey.h",
463 "win32socketinit.cc",
464 "win32socketinit.h",
465 "win32socketserver.cc",
466 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000467 ]
468 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000469 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000470 deps += [ "//third_party/jsoncpp" ]
471 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000472 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000473
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000474 # When defined changes the include path for json.h to where it is
475 # expected to be when building json outside of the standalone build.
476 defines += [ "WEBRTC_EXTERNAL_JSON" ]
477 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000478 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000480 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000481 # compiler settings.
482 configs -= [ "//build/config/compiler:chromium_code" ]
483 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000484 if (!is_win) {
485 cflags += [ "-Wno-uninitialized" ]
486 cflags_cc += [ "-Wno-non-virtual-dtor" ]
487 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000488
489 if (use_openssl) {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000490 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000491 deps += [ "//third_party/boringssl" ]
492 } else {
493 configs += [ "external_ssl_library" ]
494 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000495 sources += [
496 "openssl.h",
497 "openssladapter.cc",
498 "openssladapter.h",
499 "openssldigest.cc",
500 "openssldigest.h",
501 "opensslidentity.cc",
502 "opensslidentity.h",
503 "opensslstreamadapter.cc",
504 "opensslstreamadapter.h",
505 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000506 }
507
508 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000509 sources += [
510 "ifaddrs-android.cc",
511 "ifaddrs-android.h",
512 ]
513
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000514 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200516 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000518 }
519
520 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200521 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200522
523 sources += [
524 "macconversion.cc",
525 "macconversion.h",
526 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000527 }
528
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000529 if (use_x11) {
530 sources += [
531 "x11windowpicker.cc",
532 "x11windowpicker.h",
533 ]
534 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000535 "dl",
536 "rt",
537 "Xext",
538 "X11",
539 "Xcomposite",
540 "Xrender",
541 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000542 }
543
544 if (is_linux) {
545 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000546 "dl",
547 "rt",
548 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000549 }
550
551 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000552 sources += [
553 "maccocoathreadhelper.h",
554 "maccocoathreadhelper.mm",
555 "macconversion.cc",
556 "macconversion.h",
557 "macutils.cc",
558 "macutils.h",
559 ]
560
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000561 all_dependent_configs = [ ":mac_config" ]
562
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000563 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000564 all_dependent_configs += [ ":mac_x86_config" ]
565 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000566 }
567
568 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000569 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000570 "win32.cc",
571 "win32.h",
572 "win32filesystem.cc",
573 "win32filesystem.h",
574 "win32securityerrors.cc",
575 "win32window.cc",
576 "win32window.h",
577 "win32windowpicker.cc",
578 "win32windowpicker.h",
579 "winfirewall.cc",
580 "winfirewall.h",
581 "winping.cc",
582 "winping.h",
583 ]
584
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000585 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000586 "crypt32.lib",
587 "iphlpapi.lib",
588 "secur32.lib",
589 ]
590
591 cflags += [
592 # Suppress warnings about WIN32_LEAN_AND_MEAN.
593 "/wd4005",
594 "/wd4703",
595 ]
596
597 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000598 }
599
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000600 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000601 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000602 # _except_ for ios & mac. We want it there as well, e.g.
603 # because ASSERT and friends trigger off of it.
604 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000605 }
606
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000607 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608 defines += [ "CARBON_DEPRECATED=YES" ]
609 }
610
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000611 if (is_linux || is_android) {
612 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000613 "linux.cc",
614 "linux.h",
615 ]
616 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700617
618 if (is_nacl) {
619 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
620 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800621 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700622 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000623}
tkchin42f580e2015-11-26 23:18:23 -0800624
625if (is_ios) {
626 source_set("rtc_base_objc") {
627 deps = [
628 ":rtc_base",
629 ]
630 cflags = [ "-fobjc-arc" ]
631 configs += [ "..:common_config" ]
632 public_configs = [ "..:common_inherited_config" ]
633
634 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800635 "objc/NSString+StdString.h",
636 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800637 "objc/RTCCameraPreviewView.h",
638 "objc/RTCCameraPreviewView.m",
639 "objc/RTCDispatcher.h",
640 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800641 "objc/RTCFieldTrials.h",
642 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800643 "objc/RTCFileLogger.h",
644 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800645 "objc/RTCLogging.h",
646 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800647 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800648 "objc/RTCSSLAdapter.h",
649 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800650 "objc/RTCTracing.h",
651 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800652 "objc/RTCUIApplication.h",
653 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800654 ]
655 }
656}
kjellander988d31e2016-02-05 00:23:50 -0800657
658source_set("gtest_prod") {
659 sources = [
660 "gtest_prod_util.h",
661 ]
662}