blob: 6f926a2a503005c32deb8cb52bf2bc0927bee129 [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",
terelius85fa7d52016-03-24 01:51:52 -0700154 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700155 "systeminfo.cc",
156 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000157 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000158 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000159 "thread_checker.h",
160 "thread_checker_impl.cc",
161 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000162 "timeutils.cc",
163 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000164 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000165 ]
Noah Richards915590e2015-04-22 15:43:08 -0700166
Peter Boström11e02292015-11-25 21:36:14 +0100167 if (build_with_chromium) {
168 # Dependency on chromium's logging (in //base).
169 deps += [ "//base:base" ]
170 sources += [
171 "../../webrtc_overrides/webrtc/base/logging.cc",
172 "../../webrtc_overrides/webrtc/base/logging.h",
173 ]
174 include_dirs = [ "../../webrtc_overrides" ]
175 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700176 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200177 "logging.cc",
178 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700179 ]
180 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000181}
182
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000183static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 cflags = []
185 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000186 libs = []
Tommid44c0772016-03-11 17:12:32 -0800187 deps = []
188 public_deps = [
189 ":rtc_base_approved",
190 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700194 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000195 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 ]
197
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000198 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700200 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000201 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 ]
203
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200204 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205
206 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000207 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "asyncfile.cc",
209 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700210 "asyncinvoker-inl.h",
211 "asyncinvoker.cc",
212 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000213 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000215 "asyncresolverinterface.cc",
216 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "asyncsocket.cc",
218 "asyncsocket.h",
219 "asynctcpsocket.cc",
220 "asynctcpsocket.h",
221 "asyncudpsocket.cc",
222 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "autodetectproxy.cc",
224 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "base64.cc",
226 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "common.cc",
228 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "crc32.cc",
230 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000231 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "diskcache.cc",
234 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700235 "filerotatingstream.cc",
236 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "fileutils.cc",
238 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "firewallsocketserver.cc",
240 "firewallsocketserver.h",
241 "flags.cc",
242 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000243 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "gunit_prod.h",
245 "helpers.cc",
246 "helpers.h",
247 "httpbase.cc",
248 "httpbase.h",
249 "httpclient.cc",
250 "httpclient.h",
251 "httpcommon-inl.h",
252 "httpcommon.cc",
253 "httpcommon.h",
254 "httprequest.cc",
255 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "iosfilesystem.mm",
257 "ipaddress.cc",
258 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "messagedigest.cc",
262 "messagedigest.h",
263 "messagehandler.cc",
264 "messagehandler.h",
265 "messagequeue.cc",
266 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "nethelpers.cc",
268 "nethelpers.h",
269 "network.cc",
270 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700271 "networkmonitor.cc",
272 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "pathutils.cc",
275 "pathutils.h",
276 "physicalsocketserver.cc",
277 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "proxydetect.cc",
279 "proxydetect.h",
280 "proxyinfo.cc",
281 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "ratelimiter.cc",
283 "ratelimiter.h",
284 "ratetracker.cc",
285 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200286 "rtccertificate.cc",
287 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "scoped_autorelease_pool.h",
289 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "sha1.cc",
291 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000292 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800294 "sharedexclusivelock.cc",
295 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "signalthread.cc",
297 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000298 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "sigslot.h",
300 "sigslotrepeater.h",
301 "socket.h",
302 "socketadapters.cc",
303 "socketadapters.h",
304 "socketaddress.cc",
305 "socketaddress.h",
306 "socketaddresspair.cc",
307 "socketaddresspair.h",
308 "socketfactory.h",
309 "socketpool.cc",
310 "socketpool.h",
311 "socketserver.h",
312 "socketstream.cc",
313 "socketstream.h",
314 "ssladapter.cc",
315 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "sslfingerprint.cc",
317 "sslfingerprint.h",
318 "sslidentity.cc",
319 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "sslsocketfactory.cc",
321 "sslsocketfactory.h",
322 "sslstreamadapter.cc",
323 "sslstreamadapter.h",
324 "sslstreamadapterhelper.cc",
325 "sslstreamadapterhelper.h",
326 "stream.cc",
327 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 "task.cc",
329 "task.h",
330 "taskparent.cc",
331 "taskparent.h",
332 "taskrunner.cc",
333 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "thread.cc",
335 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000336 "timing.cc",
337 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "urlencode.cc",
339 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "worker.cc",
341 "worker.h",
342 ]
343
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000344 if (is_posix) {
345 sources += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800346 "ifaddrs-android.h",
347 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000348 "unixfilesystem.cc",
349 "unixfilesystem.h",
350 ]
351 }
352
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000354 deps += [ "..:webrtc_common" ]
355
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800356 if (is_mac) {
357 sources += [ "macifaddrs_converter.cc" ]
358 }
359
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700361 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000363
364 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700365 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000366 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000367 ]
368
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000369 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000370 } else {
371 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "bandwidthsmoother.cc",
373 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "bind.h",
375 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "callback.h",
377 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "fileutils_mock.h",
379 "genericslot.h",
380 "genericslot.h.pump",
381 "httpserver.cc",
382 "httpserver.h",
383 "json.cc",
384 "json.h",
tkchin93411912015-07-22 12:12:17 -0700385 "logsinks.cc",
386 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "mathutils.h",
388 "multipart.cc",
389 "multipart.h",
390 "natserver.cc",
391 "natserver.h",
392 "natsocketfactory.cc",
393 "natsocketfactory.h",
394 "nattypes.cc",
395 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "optionsfile.cc",
397 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "profiler.cc",
399 "profiler.h",
400 "proxyserver.cc",
401 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "referencecountedsingletonfactory.h",
403 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200404 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 "sslconfig.h",
407 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "testclient.cc",
409 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000410 "transformadapter.cc",
411 "transformadapter.h",
412 "versionparsing.cc",
413 "versionparsing.h",
414 "virtualsocketserver.cc",
415 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000417 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200418 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000419 ]
420
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000421 deps += [ "..:webrtc_common" ]
422
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000423 if (is_posix) {
424 sources += [
425 "latebindingsymboltable.cc",
426 "latebindingsymboltable.cc.def",
427 "latebindingsymboltable.h",
428 "latebindingsymboltable.h.def",
429 "posix.cc",
430 "posix.h",
431 ]
432 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000433
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000434 if (is_linux) {
435 sources += [
436 "dbus.cc",
437 "dbus.h",
438 "libdbusglibsymboltable.cc",
439 "libdbusglibsymboltable.h",
440 "linuxfdwalk.c",
441 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000442 ]
443 }
444
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000445 if (is_mac) {
446 sources += [
447 "macasyncsocket.cc",
448 "macasyncsocket.h",
449 "maccocoasocketserver.h",
450 "maccocoasocketserver.mm",
451 "macsocketserver.cc",
452 "macsocketserver.h",
453 "macwindowpicker.cc",
454 "macwindowpicker.h",
455 ]
456 }
457
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000458 if (is_win) {
459 sources += [
460 "diskcache_win32.cc",
461 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000462 "win32regkey.cc",
463 "win32regkey.h",
464 "win32socketinit.cc",
465 "win32socketinit.h",
466 "win32socketserver.cc",
467 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468 ]
469 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000470 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000471 deps += [ "//third_party/jsoncpp" ]
472 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000473 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000474
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000475 # When defined changes the include path for json.h to where it is
476 # expected to be when building json outside of the standalone build.
477 defines += [ "WEBRTC_EXTERNAL_JSON" ]
478 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000479 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000480
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000481 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000482 # compiler settings.
483 configs -= [ "//build/config/compiler:chromium_code" ]
484 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000485 if (!is_win) {
486 cflags += [ "-Wno-uninitialized" ]
487 cflags_cc += [ "-Wno-non-virtual-dtor" ]
488 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489
490 if (use_openssl) {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000491 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000492 deps += [ "//third_party/boringssl" ]
493 } else {
494 configs += [ "external_ssl_library" ]
495 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000496 sources += [
497 "openssl.h",
498 "openssladapter.cc",
499 "openssladapter.h",
500 "openssldigest.cc",
501 "openssldigest.h",
502 "opensslidentity.cc",
503 "opensslidentity.h",
504 "opensslstreamadapter.cc",
505 "opensslstreamadapter.h",
506 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507 }
508
509 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000510 sources += [
511 "ifaddrs-android.cc",
512 "ifaddrs-android.h",
513 ]
514
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000515 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200517 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000518 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 }
520
521 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200522 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200523
524 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700525 "maccocoathreadhelper.h",
526 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200527 "macconversion.cc",
528 "macconversion.h",
529 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000530 }
531
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000532 if (use_x11) {
533 sources += [
534 "x11windowpicker.cc",
535 "x11windowpicker.h",
536 ]
537 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 "dl",
539 "rt",
540 "Xext",
541 "X11",
542 "Xcomposite",
543 "Xrender",
544 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000545 }
546
547 if (is_linux) {
548 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000549 "dl",
550 "rt",
551 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000552 }
553
554 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000555 sources += [
556 "maccocoathreadhelper.h",
557 "maccocoathreadhelper.mm",
558 "macconversion.cc",
559 "macconversion.h",
560 "macutils.cc",
561 "macutils.h",
562 ]
563
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000564 all_dependent_configs = [ ":mac_config" ]
565
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000566 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000567 all_dependent_configs += [ ":mac_x86_config" ]
568 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000569 }
570
571 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000572 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000573 "win32.cc",
574 "win32.h",
575 "win32filesystem.cc",
576 "win32filesystem.h",
577 "win32securityerrors.cc",
578 "win32window.cc",
579 "win32window.h",
580 "win32windowpicker.cc",
581 "win32windowpicker.h",
582 "winfirewall.cc",
583 "winfirewall.h",
584 "winping.cc",
585 "winping.h",
586 ]
587
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000588 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000589 "crypt32.lib",
590 "iphlpapi.lib",
591 "secur32.lib",
592 ]
593
594 cflags += [
595 # Suppress warnings about WIN32_LEAN_AND_MEAN.
596 "/wd4005",
597 "/wd4703",
598 ]
599
600 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000601 }
602
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000603 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000604 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000605 # _except_ for ios & mac. We want it there as well, e.g.
606 # because ASSERT and friends trigger off of it.
607 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608 }
609
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000610 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000611 defines += [ "CARBON_DEPRECATED=YES" ]
612 }
613
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000614 if (is_linux || is_android) {
615 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000616 "linux.cc",
617 "linux.h",
618 ]
619 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700620
621 if (is_nacl) {
622 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
623 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800624 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700625 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000626}
tkchin42f580e2015-11-26 23:18:23 -0800627
628if (is_ios) {
629 source_set("rtc_base_objc") {
630 deps = [
631 ":rtc_base",
632 ]
633 cflags = [ "-fobjc-arc" ]
634 configs += [ "..:common_config" ]
635 public_configs = [ "..:common_inherited_config" ]
636
637 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800638 "objc/NSString+StdString.h",
639 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800640 "objc/RTCCameraPreviewView.h",
641 "objc/RTCCameraPreviewView.m",
642 "objc/RTCDispatcher.h",
643 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800644 "objc/RTCFieldTrials.h",
645 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800646 "objc/RTCFileLogger.h",
647 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800648 "objc/RTCLogging.h",
649 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800650 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800651 "objc/RTCSSLAdapter.h",
652 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800653 "objc/RTCTracing.h",
654 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800655 "objc/RTCUIApplication.h",
656 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800657 ]
658 }
659}
kjellander988d31e2016-02-05 00:23:50 -0800660
661source_set("gtest_prod") {
662 sources = [
663 "gtest_prod_util.h",
664 ]
665}