blob: 411e84863dd71382e4556afcd1895bde8092c8f7 [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 = []
kjellanderc8587ad2016-04-05 05:23:26 -0700187 deps = []
Tommid44c0772016-03-11 17:12:32 -0800188 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",
kjellanderc8587ad2016-04-05 05:23:26 -0700260 "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",
kjellanderc8587ad2016-04-05 05:23:26 -0700284 "ratetracker.cc",
285 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200286 "rtccertificate.cc",
287 "rtccertificate.h",
kjellanderc8587ad2016-04-05 05:23:26 -0700288 "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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 "stream.cc",
325 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "task.cc",
327 "task.h",
328 "taskparent.cc",
329 "taskparent.h",
330 "taskrunner.cc",
331 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "thread.cc",
333 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "timing.cc",
335 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000336 "urlencode.cc",
337 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "worker.cc",
339 "worker.h",
340 ]
341
kjellanderc8587ad2016-04-05 05:23:26 -0700342 if (is_posix) {
343 sources += [
344 "ifaddrs-android.h",
345 "ifaddrs_converter.cc",
346 "unixfilesystem.cc",
347 "unixfilesystem.h",
348 ]
349 }
350
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 if (build_with_chromium) {
kjellanderc8587ad2016-04-05 05:23:26 -0700352 deps += [ "..:webrtc_common" ]
353
354 if (is_mac) {
355 sources += [ "macifaddrs_converter.cc" ]
356 }
357
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700359 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000361
362 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700363 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000364 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000365 ]
366
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000367 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000368 } else {
369 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "bandwidthsmoother.cc",
371 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "bind.h",
373 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "callback.h",
375 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "fileutils_mock.h",
kjellanderc8587ad2016-04-05 05:23:26 -0700377 "genericslot.h",
378 "genericslot.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "httpserver.cc",
380 "httpserver.h",
381 "json.cc",
382 "json.h",
tkchin93411912015-07-22 12:12:17 -0700383 "logsinks.cc",
384 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "mathutils.h",
386 "multipart.cc",
387 "multipart.h",
388 "natserver.cc",
389 "natserver.h",
390 "natsocketfactory.cc",
391 "natsocketfactory.h",
392 "nattypes.cc",
393 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "optionsfile.cc",
395 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "profiler.cc",
397 "profiler.h",
398 "proxyserver.cc",
399 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "referencecountedsingletonfactory.h",
401 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200402 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 "sslconfig.h",
405 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 "testclient.cc",
407 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "transformadapter.cc",
409 "transformadapter.h",
410 "versionparsing.cc",
411 "versionparsing.h",
412 "virtualsocketserver.cc",
413 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000414 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000415 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200416 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000417 ]
418
kjellanderc8587ad2016-04-05 05:23:26 -0700419 deps += [ "..:webrtc_common" ]
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000420
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 if (is_posix) {
422 sources += [
423 "latebindingsymboltable.cc",
424 "latebindingsymboltable.cc.def",
425 "latebindingsymboltable.h",
426 "latebindingsymboltable.h.def",
427 "posix.cc",
428 "posix.h",
429 ]
430 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000431
kjellanderc8587ad2016-04-05 05:23:26 -0700432 if (is_linux) {
433 sources += [
434 "dbus.cc",
435 "dbus.h",
436 "libdbusglibsymboltable.cc",
437 "libdbusglibsymboltable.h",
438 "linuxfdwalk.c",
439 "linuxfdwalk.h",
440 ]
441 }
442
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000443 if (is_mac) {
444 sources += [
445 "macasyncsocket.cc",
446 "macasyncsocket.h",
447 "maccocoasocketserver.h",
448 "maccocoasocketserver.mm",
449 "macsocketserver.cc",
450 "macsocketserver.h",
451 "macwindowpicker.cc",
452 "macwindowpicker.h",
453 ]
454 }
455
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456 if (is_win) {
457 sources += [
458 "diskcache_win32.cc",
459 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000460 "win32regkey.cc",
461 "win32regkey.h",
462 "win32socketinit.cc",
463 "win32socketinit.h",
464 "win32socketserver.cc",
465 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000466 ]
467 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000468 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000469 deps += [ "//third_party/jsoncpp" ]
470 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000471 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000472
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000473 # When defined changes the include path for json.h to where it is
474 # expected to be when building json outside of the standalone build.
475 defines += [ "WEBRTC_EXTERNAL_JSON" ]
476 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000477 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000478
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000479 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000480 # compiler settings.
481 configs -= [ "//build/config/compiler:chromium_code" ]
482 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000483 if (!is_win) {
484 cflags += [ "-Wno-uninitialized" ]
485 cflags_cc += [ "-Wno-non-virtual-dtor" ]
486 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487
kjellanderc8587ad2016-04-05 05:23:26 -0700488 if (use_openssl) {
489 if (rtc_build_ssl) {
490 deps += [ "//third_party/boringssl" ]
491 } else {
492 configs += [ "external_ssl_library" ]
493 }
494 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
kjellanderc8587ad2016-04-05 05:23:26 -0700519 if (is_ios) {
520 all_dependent_configs = [ ":ios_config" ]
521
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200522 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700523 "maccocoathreadhelper.h",
524 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200525 "macconversion.cc",
526 "macconversion.h",
527 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000528 }
529
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000530 if (use_x11) {
531 sources += [
532 "x11windowpicker.cc",
533 "x11windowpicker.h",
534 ]
535 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 "dl",
537 "rt",
538 "Xext",
539 "X11",
540 "Xcomposite",
541 "Xrender",
542 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000543 }
544
545 if (is_linux) {
546 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000547 "dl",
548 "rt",
549 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 }
551
552 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000553 sources += [
kjellanderc8587ad2016-04-05 05:23:26 -0700554 "maccocoathreadhelper.h",
555 "maccocoathreadhelper.mm",
556 "macconversion.cc",
557 "macconversion.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000558 "macutils.cc",
559 "macutils.h",
560 ]
561
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000562 all_dependent_configs = [ ":mac_config" ]
563
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000564 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000565 all_dependent_configs += [ ":mac_x86_config" ]
566 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000567 }
568
569 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000570 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000571 "win32.cc",
572 "win32.h",
573 "win32filesystem.cc",
574 "win32filesystem.h",
575 "win32securityerrors.cc",
576 "win32window.cc",
577 "win32window.h",
578 "win32windowpicker.cc",
579 "win32windowpicker.h",
580 "winfirewall.cc",
581 "winfirewall.h",
582 "winping.cc",
583 "winping.h",
584 ]
585
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000586 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 "crypt32.lib",
588 "iphlpapi.lib",
589 "secur32.lib",
590 ]
591
592 cflags += [
593 # Suppress warnings about WIN32_LEAN_AND_MEAN.
594 "/wd4005",
595 "/wd4703",
596 ]
597
598 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 }
600
kjellanderc8587ad2016-04-05 05:23:26 -0700601 if (is_posix && is_debug) {
602 # The Chromium build/common.gypi defines this for all posix
603 # _except_ for ios & mac. We want it there as well, e.g.
604 # because ASSERT and friends trigger off of it.
605 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000606 }
607
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000608 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000609 defines += [ "CARBON_DEPRECATED=YES" ]
610 }
611
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000612 if (is_linux || is_android) {
613 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000614 "linux.cc",
615 "linux.h",
616 ]
617 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700618
619 if (is_nacl) {
620 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
621 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800622 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700623 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000624}
tkchin42f580e2015-11-26 23:18:23 -0800625
626if (is_ios) {
627 source_set("rtc_base_objc") {
628 deps = [
629 ":rtc_base",
630 ]
631 cflags = [ "-fobjc-arc" ]
632 configs += [ "..:common_config" ]
633 public_configs = [ "..:common_inherited_config" ]
634
635 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800636 "objc/NSString+StdString.h",
637 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800638 "objc/RTCCameraPreviewView.h",
639 "objc/RTCCameraPreviewView.m",
640 "objc/RTCDispatcher.h",
641 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800642 "objc/RTCFieldTrials.h",
643 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800644 "objc/RTCFileLogger.h",
645 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800646 "objc/RTCLogging.h",
647 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800648 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800649 "objc/RTCSSLAdapter.h",
650 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800651 "objc/RTCTracing.h",
652 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800653 "objc/RTCUIApplication.h",
654 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800655 ]
656 }
657}
kjellander988d31e2016-02-05 00:23:50 -0800658
659source_set("gtest_prod") {
660 sources = [
661 "gtest_prod_util.h",
662 ]
663}