blob: e7d550a1b00826e712445784e209dd91fbc81743 [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",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000144 "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 = []
jbroman5584bf42016-01-12 09:46:55 -0800184 deps = []
185 public_deps = [
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000186 ":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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "crc32.cc",
225 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000226 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "diskcache.cc",
229 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700230 "filerotatingstream.cc",
231 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "fileutils.cc",
233 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "firewallsocketserver.cc",
235 "firewallsocketserver.h",
236 "flags.cc",
237 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000238 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "gunit_prod.h",
240 "helpers.cc",
241 "helpers.h",
242 "httpbase.cc",
243 "httpbase.h",
244 "httpclient.cc",
245 "httpclient.h",
246 "httpcommon-inl.h",
247 "httpcommon.cc",
248 "httpcommon.h",
249 "httprequest.cc",
250 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "iosfilesystem.mm",
252 "ipaddress.cc",
253 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "messagedigest.cc",
257 "messagedigest.h",
258 "messagehandler.cc",
259 "messagehandler.h",
260 "messagequeue.cc",
261 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "nethelpers.cc",
263 "nethelpers.h",
264 "network.cc",
265 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700266 "networkmonitor.cc",
267 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "pathutils.cc",
270 "pathutils.h",
271 "physicalsocketserver.cc",
272 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "proxydetect.cc",
274 "proxydetect.h",
275 "proxyinfo.cc",
276 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "ratelimiter.cc",
278 "ratelimiter.h",
279 "ratetracker.cc",
280 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200281 "rtccertificate.cc",
282 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "scoped_autorelease_pool.h",
284 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "sha1.cc",
286 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000287 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800289 "sharedexclusivelock.cc",
290 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000291 "signalthread.cc",
292 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000293 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "sigslot.h",
295 "sigslotrepeater.h",
296 "socket.h",
297 "socketadapters.cc",
298 "socketadapters.h",
299 "socketaddress.cc",
300 "socketaddress.h",
301 "socketaddresspair.cc",
302 "socketaddresspair.h",
303 "socketfactory.h",
304 "socketpool.cc",
305 "socketpool.h",
306 "socketserver.h",
307 "socketstream.cc",
308 "socketstream.h",
309 "ssladapter.cc",
310 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000311 "sslfingerprint.cc",
312 "sslfingerprint.h",
313 "sslidentity.cc",
314 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000315 "sslsocketfactory.cc",
316 "sslsocketfactory.h",
317 "sslstreamadapter.cc",
318 "sslstreamadapter.h",
319 "sslstreamadapterhelper.cc",
320 "sslstreamadapterhelper.h",
321 "stream.cc",
322 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "task.cc",
324 "task.h",
325 "taskparent.cc",
326 "taskparent.h",
327 "taskrunner.cc",
328 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "thread.cc",
330 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "timing.cc",
332 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "urlencode.cc",
334 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "worker.cc",
336 "worker.h",
337 ]
338
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000339 if (is_posix) {
340 sources += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800341 "ifaddrs-android.h",
342 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000343 "unixfilesystem.cc",
344 "unixfilesystem.h",
345 ]
346 }
347
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000349 deps += [ "..:webrtc_common" ]
350
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800351 if (is_mac) {
352 sources += [ "macifaddrs_converter.cc" ]
353 }
354
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700356 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000358
359 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700360 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000361 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000362 ]
363
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000364 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000365 } else {
366 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "bandwidthsmoother.cc",
368 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "bind.h",
370 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "callback.h",
372 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 "fileutils_mock.h",
374 "genericslot.h",
375 "genericslot.h.pump",
376 "httpserver.cc",
377 "httpserver.h",
378 "json.cc",
379 "json.h",
tkchin93411912015-07-22 12:12:17 -0700380 "logsinks.cc",
381 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "mathutils.h",
383 "multipart.cc",
384 "multipart.h",
385 "natserver.cc",
386 "natserver.h",
387 "natsocketfactory.cc",
388 "natsocketfactory.h",
389 "nattypes.cc",
390 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "optionsfile.cc",
392 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "profiler.cc",
394 "profiler.h",
395 "proxyserver.cc",
396 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "referencecountedsingletonfactory.h",
398 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200399 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "sslconfig.h",
402 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "testclient.cc",
404 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "transformadapter.cc",
406 "transformadapter.h",
407 "versionparsing.cc",
408 "versionparsing.h",
409 "virtualsocketserver.cc",
410 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000411 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200413 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000414 ]
415
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000416 deps += [ "..:webrtc_common" ]
417
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000418 if (is_posix) {
419 sources += [
420 "latebindingsymboltable.cc",
421 "latebindingsymboltable.cc.def",
422 "latebindingsymboltable.h",
423 "latebindingsymboltable.h.def",
424 "posix.cc",
425 "posix.h",
426 ]
427 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000428
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000429 if (is_linux) {
430 sources += [
431 "dbus.cc",
432 "dbus.h",
433 "libdbusglibsymboltable.cc",
434 "libdbusglibsymboltable.h",
435 "linuxfdwalk.c",
436 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000437 ]
438 }
439
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000440 if (is_mac) {
441 sources += [
442 "macasyncsocket.cc",
443 "macasyncsocket.h",
444 "maccocoasocketserver.h",
445 "maccocoasocketserver.mm",
446 "macsocketserver.cc",
447 "macsocketserver.h",
448 "macwindowpicker.cc",
449 "macwindowpicker.h",
450 ]
451 }
452
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453 if (is_win) {
454 sources += [
455 "diskcache_win32.cc",
456 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000457 "win32regkey.cc",
458 "win32regkey.h",
459 "win32socketinit.cc",
460 "win32socketinit.h",
461 "win32socketserver.cc",
462 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000463 ]
464 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000465 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000466 deps += [ "//third_party/jsoncpp" ]
467 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000468 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000469
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000470 # When defined changes the include path for json.h to where it is
471 # expected to be when building json outside of the standalone build.
472 defines += [ "WEBRTC_EXTERNAL_JSON" ]
473 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000474 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000475
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000476 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000477 # compiler settings.
478 configs -= [ "//build/config/compiler:chromium_code" ]
479 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000480 if (!is_win) {
481 cflags += [ "-Wno-uninitialized" ]
482 cflags_cc += [ "-Wno-non-virtual-dtor" ]
483 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000484
485 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000486 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000487 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000488 deps += [ "//third_party/boringssl" ]
489 } else {
490 configs += [ "external_ssl_library" ]
491 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000492 sources += [
493 "openssl.h",
494 "openssladapter.cc",
495 "openssladapter.h",
496 "openssldigest.cc",
497 "openssldigest.h",
498 "opensslidentity.cc",
499 "opensslidentity.h",
500 "opensslstreamadapter.cc",
501 "opensslstreamadapter.h",
502 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 }
504
505 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000506 sources += [
507 "ifaddrs-android.cc",
508 "ifaddrs-android.h",
509 ]
510
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000511 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200513 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000514 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 }
516
517 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200518 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200519
520 sources += [
521 "macconversion.cc",
522 "macconversion.h",
523 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 }
525
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000526 if (use_x11) {
527 sources += [
528 "x11windowpicker.cc",
529 "x11windowpicker.h",
530 ]
531 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 "dl",
533 "rt",
534 "Xext",
535 "X11",
536 "Xcomposite",
537 "Xrender",
538 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000539 }
540
541 if (is_linux) {
542 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000543 "dl",
544 "rt",
545 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 }
547
548 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000549 sources += [
550 "maccocoathreadhelper.h",
551 "maccocoathreadhelper.mm",
552 "macconversion.cc",
553 "macconversion.h",
554 "macutils.cc",
555 "macutils.h",
556 ]
557
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 all_dependent_configs = [ ":mac_config" ]
559
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000560 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000561 all_dependent_configs += [ ":mac_x86_config" ]
562 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000563 }
564
565 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000566 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000567 "win32.cc",
568 "win32.h",
569 "win32filesystem.cc",
570 "win32filesystem.h",
571 "win32securityerrors.cc",
572 "win32window.cc",
573 "win32window.h",
574 "win32windowpicker.cc",
575 "win32windowpicker.h",
576 "winfirewall.cc",
577 "winfirewall.h",
578 "winping.cc",
579 "winping.h",
580 ]
581
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000582 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000583 "crypt32.lib",
584 "iphlpapi.lib",
585 "secur32.lib",
586 ]
587
588 cflags += [
589 # Suppress warnings about WIN32_LEAN_AND_MEAN.
590 "/wd4005",
591 "/wd4703",
592 ]
593
594 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000595 }
596
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000597 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000598 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000599 # _except_ for ios & mac. We want it there as well, e.g.
600 # because ASSERT and friends trigger off of it.
601 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 }
603
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000604 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000605 defines += [ "CARBON_DEPRECATED=YES" ]
606 }
607
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000608 if (is_linux || is_android) {
609 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000610 "linux.cc",
611 "linux.h",
612 ]
613 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700614
615 if (is_nacl) {
616 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
617 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800618 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700619 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000620}
tkchin42f580e2015-11-26 23:18:23 -0800621
622if (is_ios) {
623 source_set("rtc_base_objc") {
624 deps = [
625 ":rtc_base",
626 ]
627 cflags = [ "-fobjc-arc" ]
628 configs += [ "..:common_config" ]
629 public_configs = [ "..:common_inherited_config" ]
630
631 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800632 "objc/NSString+StdString.h",
633 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800634 "objc/RTCCameraPreviewView.h",
635 "objc/RTCCameraPreviewView.m",
636 "objc/RTCDispatcher.h",
637 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800638 "objc/RTCLogging.h",
639 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800640 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800641 "objc/RTCSSLAdapter.h",
642 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800643 "objc/RTCTracing.h",
644 "objc/RTCTracing.mm",
tkchin42f580e2015-11-26 23:18:23 -0800645 ]
646 }
647}
kjellander988d31e2016-02-05 00:23:50 -0800648
649source_set("gtest_prod") {
650 sources = [
651 "gtest_prod_util.h",
652 ]
653}