blob: bc6cb38023a046f439e034504b07f8b716b59565 [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",
kjellandera8a7ef62016-04-05 08:13:31 -0700135 "mod_ops.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100136 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000137 "platform_file.cc",
138 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200139 "platform_thread.cc",
140 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800141 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800142 "random.cc",
143 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800144 "rate_statistics.cc",
145 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700146 "ratetracker.cc",
147 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800148 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800149 "safe_conversions.h",
150 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200151 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800152 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000153 "stringencode.cc",
154 "stringencode.h",
155 "stringutils.cc",
156 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700157 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700158 "systeminfo.cc",
159 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000160 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000161 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000162 "thread_checker.h",
163 "thread_checker_impl.cc",
164 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000165 "timeutils.cc",
166 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000167 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000168 ]
Noah Richards915590e2015-04-22 15:43:08 -0700169
Peter Boström11e02292015-11-25 21:36:14 +0100170 if (build_with_chromium) {
171 # Dependency on chromium's logging (in //base).
172 deps += [ "//base:base" ]
173 sources += [
174 "../../webrtc_overrides/webrtc/base/logging.cc",
175 "../../webrtc_overrides/webrtc/base/logging.h",
176 ]
177 include_dirs = [ "../../webrtc_overrides" ]
178 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700179 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200180 "logging.cc",
181 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700182 ]
183 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000184}
185
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000186static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 cflags = []
188 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000189 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700190 deps = [
191 "..:webrtc_common",
192 ]
Tommid44c0772016-03-11 17:12:32 -0800193 public_deps = [
194 ":rtc_base_approved",
195 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "..:common_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
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000203 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700205 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000206 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 ]
208
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200209 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210
211 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000212 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "asyncfile.cc",
214 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700215 "asyncinvoker-inl.h",
216 "asyncinvoker.cc",
217 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000218 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000220 "asyncresolverinterface.cc",
221 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "asyncsocket.cc",
223 "asyncsocket.h",
224 "asynctcpsocket.cc",
225 "asynctcpsocket.h",
226 "asyncudpsocket.cc",
227 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "autodetectproxy.cc",
229 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "base64.cc",
231 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "common.cc",
233 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "crc32.cc",
235 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000236 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "diskcache.cc",
239 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700240 "filerotatingstream.cc",
241 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "fileutils.cc",
243 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "firewallsocketserver.cc",
245 "firewallsocketserver.h",
246 "flags.cc",
247 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000248 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "gunit_prod.h",
250 "helpers.cc",
251 "helpers.h",
252 "httpbase.cc",
253 "httpbase.h",
254 "httpclient.cc",
255 "httpclient.h",
256 "httpcommon-inl.h",
257 "httpcommon.cc",
258 "httpcommon.h",
259 "httprequest.cc",
260 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "iosfilesystem.mm",
262 "ipaddress.cc",
263 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "messagedigest.cc",
266 "messagedigest.h",
267 "messagehandler.cc",
268 "messagehandler.h",
269 "messagequeue.cc",
270 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "nethelpers.cc",
272 "nethelpers.h",
273 "network.cc",
274 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700275 "networkmonitor.cc",
276 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "pathutils.cc",
279 "pathutils.h",
280 "physicalsocketserver.cc",
281 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "proxydetect.cc",
283 "proxydetect.h",
284 "proxyinfo.cc",
285 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "ratelimiter.cc",
287 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200288 "rtccertificate.cc",
289 "rtccertificate.h",
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
342 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700344 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000346
347 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700348 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000349 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000350 ]
351
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000352 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353 } else {
354 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "bandwidthsmoother.cc",
356 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "bind.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "httpserver.cc",
361 "httpserver.h",
362 "json.cc",
363 "json.h",
tkchin93411912015-07-22 12:12:17 -0700364 "logsinks.cc",
365 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "mathutils.h",
367 "multipart.cc",
368 "multipart.h",
369 "natserver.cc",
370 "natserver.h",
371 "natsocketfactory.cc",
372 "natsocketfactory.h",
373 "nattypes.cc",
374 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "optionsfile.cc",
376 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "profiler.cc",
378 "profiler.h",
379 "proxyserver.cc",
380 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "referencecountedsingletonfactory.h",
382 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200383 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "sslconfig.h",
386 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700387 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "testclient.cc",
389 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "transformadapter.cc",
391 "transformadapter.h",
392 "versionparsing.cc",
393 "versionparsing.h",
394 "virtualsocketserver.cc",
395 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200398 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 ]
400
kjellandera8a7ef62016-04-05 08:13:31 -0700401 if (is_linux) {
402 sources += [
403 "dbus.cc",
404 "dbus.h",
405 "libdbusglibsymboltable.cc",
406 "libdbusglibsymboltable.h",
407 "linuxfdwalk.c",
408 "linuxfdwalk.h",
409 ]
410 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000411
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000412 if (is_posix) {
413 sources += [
414 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 "posix.cc",
417 "posix.h",
418 ]
419 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000420
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 if (is_mac) {
422 sources += [
423 "macasyncsocket.cc",
424 "macasyncsocket.h",
425 "maccocoasocketserver.h",
426 "maccocoasocketserver.mm",
427 "macsocketserver.cc",
428 "macsocketserver.h",
429 "macwindowpicker.cc",
430 "macwindowpicker.h",
431 ]
432 }
433
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000434 if (is_win) {
435 sources += [
436 "diskcache_win32.cc",
437 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000438 "win32regkey.cc",
439 "win32regkey.h",
440 "win32socketinit.cc",
441 "win32socketinit.h",
442 "win32socketserver.cc",
443 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000444 ]
445 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000446 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000447 deps += [ "//third_party/jsoncpp" ]
448 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000449 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000451 # When defined changes the include path for json.h to where it is
452 # expected to be when building json outside of the standalone build.
453 defines += [ "WEBRTC_EXTERNAL_JSON" ]
454 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000455 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000457 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000458 # compiler settings.
459 configs -= [ "//build/config/compiler:chromium_code" ]
460 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000461 if (!is_win) {
462 cflags += [ "-Wno-uninitialized" ]
463 cflags_cc += [ "-Wno-non-virtual-dtor" ]
464 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200466 # TODO(kjellander): The use_openssl block should really go away in order for
467 # the GN build to be similar to the GYP build. See http://crbug.com/601042 for
468 # more details.
469 if (use_openssl) {
470 if (rtc_build_ssl) {
471 deps += [ "//third_party/boringssl" ]
472 } else {
473 configs += [ "external_ssl_library" ]
474 }
475 sources += [
476 "openssl.h",
477 "openssladapter.cc",
478 "openssladapter.h",
479 "openssldigest.cc",
480 "openssldigest.h",
481 "opensslidentity.cc",
482 "opensslidentity.h",
483 "opensslstreamadapter.cc",
484 "opensslstreamadapter.h",
485 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000486 }
487
488 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000489 sources += [
490 "ifaddrs-android.cc",
491 "ifaddrs-android.h",
492 ]
493
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000494 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000495 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200496 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000497 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000498 }
499
kjellandera8a7ef62016-04-05 08:13:31 -0700500 if (is_ios || is_mac) {
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200501 if (is_ios) {
502 all_dependent_configs = [ ":ios_config" ]
503 }
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200504 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700505 "maccocoathreadhelper.h",
506 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200507 "macconversion.cc",
508 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700509 "macifaddrs_converter.cc",
510 "scoped_autorelease_pool.h",
511 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200512 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000513 }
514
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000515 if (use_x11) {
516 sources += [
517 "x11windowpicker.cc",
518 "x11windowpicker.h",
519 ]
520 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 "dl",
522 "rt",
523 "Xext",
524 "X11",
525 "Xcomposite",
526 "Xrender",
527 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000528 }
529
530 if (is_linux) {
531 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000532 "dl",
533 "rt",
534 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000535 }
536
537 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000538 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000539 "macutils.cc",
540 "macutils.h",
541 ]
542
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 all_dependent_configs = [ ":mac_config" ]
544
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000545 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 all_dependent_configs += [ ":mac_x86_config" ]
547 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000548 }
549
550 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000551 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000552 "win32.cc",
553 "win32.h",
554 "win32filesystem.cc",
555 "win32filesystem.h",
556 "win32securityerrors.cc",
557 "win32window.cc",
558 "win32window.h",
559 "win32windowpicker.cc",
560 "win32windowpicker.h",
561 "winfirewall.cc",
562 "winfirewall.h",
563 "winping.cc",
564 "winping.h",
565 ]
566
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000567 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000568 "crypt32.lib",
569 "iphlpapi.lib",
570 "secur32.lib",
571 ]
572
573 cflags += [
574 # Suppress warnings about WIN32_LEAN_AND_MEAN.
575 "/wd4005",
576 "/wd4703",
577 ]
578
579 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 }
581
kjellandera8a7ef62016-04-05 08:13:31 -0700582 if (is_posix) {
583 sources += [
584 "ifaddrs_converter.cc",
585 "ifaddrs_converter.h",
586 "unixfilesystem.cc",
587 "unixfilesystem.h",
588 ]
589 if (is_debug) {
590 # The Chromium build/common.gypi defines this for all posix
591 # _except_ for ios & mac. We want it there as well, e.g.
592 # because ASSERT and friends trigger off of it.
593 defines += [ "_DEBUG" ]
594 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000595 }
596
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000597 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000598 defines += [ "CARBON_DEPRECATED=YES" ]
599 }
600
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000601 if (is_linux || is_android) {
602 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603 "linux.cc",
604 "linux.h",
605 ]
606 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700607
608 if (is_nacl) {
609 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
610 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800611 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700612 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000613}
tkchin42f580e2015-11-26 23:18:23 -0800614
615if (is_ios) {
616 source_set("rtc_base_objc") {
617 deps = [
618 ":rtc_base",
619 ]
620 cflags = [ "-fobjc-arc" ]
621 configs += [ "..:common_config" ]
622 public_configs = [ "..:common_inherited_config" ]
623
624 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800625 "objc/NSString+StdString.h",
626 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800627 "objc/RTCCameraPreviewView.h",
628 "objc/RTCCameraPreviewView.m",
629 "objc/RTCDispatcher.h",
630 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800631 "objc/RTCFieldTrials.h",
632 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800633 "objc/RTCFileLogger.h",
634 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800635 "objc/RTCLogging.h",
636 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800637 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800638 "objc/RTCSSLAdapter.h",
639 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800640 "objc/RTCTracing.h",
641 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800642 "objc/RTCUIApplication.h",
643 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800644 ]
645 }
646}
kjellander988d31e2016-02-05 00:23:50 -0800647
648source_set("gtest_prod") {
649 sources = [
650 "gtest_prod_util.h",
651 ]
652}