blob: c18854132ad8a1208059342e07a34398f188c8e4 [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 -080013import("//build_overrides/webrtc.gni")
kjellander70bed7d2015-11-23 17:23:44 -080014
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000015config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000016 include_dirs = [
17 "//third_party/jsoncpp/overrides/include",
18 "//third_party/jsoncpp/source/include",
19 ]
20
21 defines = [
22 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000023 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000024 ]
25
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020026 if (is_posix) {
27 # TODO(henrike): issue 3307, make rtc_base build without disabling
28 # these flags.
29 cflags_cc = [ "-Wno-non-virtual-dtor" ]
30 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000031}
32
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000033config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020034 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000035}
36
37config("openssl_config") {
38 defines = [
39 "SSL_USE_OPENSSL",
40 "HAVE_OPENSSL_SSL_H",
41 ]
42}
43
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000044config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000045 libs = [
hjonaa32c3e2015-12-13 19:58:11 -080046 "AVFoundation.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070047 "CFNetwork.framework",
48
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000049 #"Foundation.framework", # Already included in //build/config:default_libs.
50 "Security.framework",
51 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020052
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000053 #"UIKit.framework", # Already included in //build/config:default_libs.
54 ]
55}
56
57config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000058 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000059 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020060
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000061 #"Foundation.framework", # Already included in //build/config:default_libs.
62 #"IOKit.framework", # Already included in //build/config:default_libs.
63 #"Security.framework", # Already included in //build/config:default_libs.
64 "SystemConfiguration.framework",
65 ]
66}
67
68config("mac_x86_config") {
69 libs = [
70 #"Carbon.framework", # Already included in //build/config:default_libs.
71 ]
72}
73
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000074if (is_linux && !build_with_chromium) {
75 # Provides the same functionality as the //crypto:platform target, which
76 # WebRTC cannot use as we don't sync src/crypto from Chromium.
77 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070078 deps = [
79 "//third_party/boringssl",
80 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000081 }
82}
83
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000084if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000085 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000086 assert(rtc_ssl_root != "",
87 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
88 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000089 }
90}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000091
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000092# The subset of rtc_base approved for use outside of libjingle.
93static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +010094 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000095 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000096 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000097
98 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +010099 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200100 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +0200101 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -0700102 "bitbuffer.cc",
103 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200104 "buffer.cc",
105 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200106 "bufferqueue.cc",
107 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700108 "bytebuffer.cc",
109 "bytebuffer.h",
110 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000111 "checks.cc",
112 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100113 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700114 "copyonwritebuffer.cc",
115 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200116 "criticalsection.cc",
117 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800118 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000119 "event.cc",
120 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000121 "event_tracer.cc",
122 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000123 "exp_filter.cc",
124 "exp_filter.h",
125 "md5.cc",
126 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000127 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000128 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700129 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700130 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100131 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000132 "platform_file.cc",
133 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200134 "platform_thread.cc",
135 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800136 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800137 "random.cc",
138 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800139 "rate_statistics.cc",
140 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700141 "ratetracker.cc",
142 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800143 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800144 "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",
terelius85fa7d52016-03-24 01:51:52 -0700152 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700153 "systeminfo.cc",
154 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000155 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000156 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000157 "thread_checker.h",
158 "thread_checker_impl.cc",
159 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 "timeutils.cc",
161 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000162 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000163 ]
Noah Richards915590e2015-04-22 15:43:08 -0700164
Peter Boström11e02292015-11-25 21:36:14 +0100165 if (build_with_chromium) {
166 # Dependency on chromium's logging (in //base).
167 deps += [ "//base:base" ]
168 sources += [
169 "../../webrtc_overrides/webrtc/base/logging.cc",
170 "../../webrtc_overrides/webrtc/base/logging.h",
171 ]
172 include_dirs = [ "../../webrtc_overrides" ]
173 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700174 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200175 "logging.cc",
176 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700177 ]
178 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000179}
180
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000181static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 cflags = []
183 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000184 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700185 deps = [
186 "..:webrtc_common",
187 ]
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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "messagedigest.cc",
261 "messagedigest.h",
262 "messagehandler.cc",
263 "messagehandler.h",
264 "messagequeue.cc",
265 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "nethelpers.cc",
267 "nethelpers.h",
268 "network.cc",
269 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700270 "networkmonitor.cc",
271 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700273 "openssl.h",
274 "openssladapter.cc",
275 "openssladapter.h",
276 "openssldigest.cc",
277 "openssldigest.h",
278 "opensslidentity.cc",
279 "opensslidentity.h",
280 "opensslstreamadapter.cc",
281 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "pathutils.cc",
283 "pathutils.h",
284 "physicalsocketserver.cc",
285 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "proxydetect.cc",
287 "proxydetect.h",
288 "proxyinfo.cc",
289 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "ratelimiter.cc",
291 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200292 "rtccertificate.cc",
293 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200294 "rtccertificategenerator.cc",
295 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "sha1.cc",
297 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000298 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800300 "sharedexclusivelock.cc",
301 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "signalthread.cc",
303 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000304 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "sigslot.h",
306 "sigslotrepeater.h",
307 "socket.h",
308 "socketadapters.cc",
309 "socketadapters.h",
310 "socketaddress.cc",
311 "socketaddress.h",
312 "socketaddresspair.cc",
313 "socketaddresspair.h",
314 "socketfactory.h",
315 "socketpool.cc",
316 "socketpool.h",
317 "socketserver.h",
318 "socketstream.cc",
319 "socketstream.h",
320 "ssladapter.cc",
321 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "sslfingerprint.cc",
323 "sslfingerprint.h",
324 "sslidentity.cc",
325 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "sslsocketfactory.cc",
327 "sslsocketfactory.h",
328 "sslstreamadapter.cc",
329 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000330 "stream.cc",
331 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "task.cc",
333 "task.h",
334 "taskparent.cc",
335 "taskparent.h",
336 "taskrunner.cc",
337 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 "thread.cc",
339 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "timing.cc",
341 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "urlencode.cc",
343 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "worker.cc",
345 "worker.h",
346 ]
347
348 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000349 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700350 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000352
353 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700354 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000355 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356 ]
357
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000358 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000359 } else {
360 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 "bandwidthsmoother.cc",
362 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "httpserver.cc",
366 "httpserver.h",
367 "json.cc",
368 "json.h",
tkchin93411912015-07-22 12:12:17 -0700369 "logsinks.cc",
370 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "mathutils.h",
372 "multipart.cc",
373 "multipart.h",
374 "natserver.cc",
375 "natserver.h",
376 "natsocketfactory.cc",
377 "natsocketfactory.h",
378 "nattypes.cc",
379 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "optionsfile.cc",
381 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "profiler.cc",
383 "profiler.h",
384 "proxyserver.cc",
385 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "referencecountedsingletonfactory.h",
387 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200388 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "sslconfig.h",
391 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700392 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "testclient.cc",
394 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "transformadapter.cc",
396 "transformadapter.h",
397 "versionparsing.cc",
398 "versionparsing.h",
399 "virtualsocketserver.cc",
400 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200403 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 ]
405
kjellandera8a7ef62016-04-05 08:13:31 -0700406 if (is_linux) {
407 sources += [
408 "dbus.cc",
409 "dbus.h",
410 "libdbusglibsymboltable.cc",
411 "libdbusglibsymboltable.h",
412 "linuxfdwalk.c",
413 "linuxfdwalk.h",
414 ]
415 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000416
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000417 if (is_posix) {
418 sources += [
419 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000420 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 "posix.cc",
422 "posix.h",
423 ]
424 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000426 if (is_mac) {
427 sources += [
428 "macasyncsocket.cc",
429 "macasyncsocket.h",
430 "maccocoasocketserver.h",
431 "maccocoasocketserver.mm",
432 "macsocketserver.cc",
433 "macsocketserver.h",
434 "macwindowpicker.cc",
435 "macwindowpicker.h",
436 ]
437 }
438
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000439 if (is_win) {
440 sources += [
441 "diskcache_win32.cc",
442 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000443 "win32regkey.cc",
444 "win32regkey.h",
445 "win32socketinit.cc",
446 "win32socketinit.h",
447 "win32socketserver.cc",
448 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000449 ]
450 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000451 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000452 deps += [ "//third_party/jsoncpp" ]
453 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000454 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000455
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000456 # When defined changes the include path for json.h to where it is
457 # expected to be when building json outside of the standalone build.
458 defines += [ "WEBRTC_EXTERNAL_JSON" ]
459 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000460 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000462 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000463 # compiler settings.
464 configs -= [ "//build/config/compiler:chromium_code" ]
465 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000466 if (!is_win) {
467 cflags += [ "-Wno-uninitialized" ]
468 cflags_cc += [ "-Wno-non-virtual-dtor" ]
469 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000470
svaldez7f7a8192016-04-18 11:13:11 -0700471 if (rtc_build_ssl) {
472 deps += [ "//third_party/boringssl" ]
473 } else {
474 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000475 }
476
477 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000478 sources += [
479 "ifaddrs-android.cc",
480 "ifaddrs-android.h",
481 ]
482
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000483 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000484 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200485 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000486 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487 }
488
kjellandera8a7ef62016-04-05 08:13:31 -0700489 if (is_ios || is_mac) {
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200490 if (is_ios) {
491 all_dependent_configs = [ ":ios_config" ]
492 }
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200493 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700494 "maccocoathreadhelper.h",
495 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200496 "macconversion.cc",
497 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700498 "macifaddrs_converter.cc",
499 "scoped_autorelease_pool.h",
500 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200501 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000502 }
503
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000504 if (use_x11) {
505 sources += [
506 "x11windowpicker.cc",
507 "x11windowpicker.h",
508 ]
509 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000510 "dl",
511 "rt",
512 "Xext",
513 "X11",
514 "Xcomposite",
515 "Xrender",
516 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000517 }
518
519 if (is_linux) {
520 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000521 "dl",
522 "rt",
523 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 }
525
526 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000527 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000528 "macutils.cc",
529 "macutils.h",
530 ]
531
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 all_dependent_configs = [ ":mac_config" ]
533
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000534 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000535 all_dependent_configs += [ ":mac_x86_config" ]
536 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000537 }
538
539 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000540 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000541 "win32.cc",
542 "win32.h",
543 "win32filesystem.cc",
544 "win32filesystem.h",
545 "win32securityerrors.cc",
546 "win32window.cc",
547 "win32window.h",
548 "win32windowpicker.cc",
549 "win32windowpicker.h",
550 "winfirewall.cc",
551 "winfirewall.h",
552 "winping.cc",
553 "winping.h",
554 ]
555
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000556 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000557 "crypt32.lib",
558 "iphlpapi.lib",
559 "secur32.lib",
560 ]
561
562 cflags += [
563 # Suppress warnings about WIN32_LEAN_AND_MEAN.
564 "/wd4005",
565 "/wd4703",
566 ]
567
568 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000569 }
570
kjellandera8a7ef62016-04-05 08:13:31 -0700571 if (is_posix) {
572 sources += [
573 "ifaddrs_converter.cc",
574 "ifaddrs_converter.h",
575 "unixfilesystem.cc",
576 "unixfilesystem.h",
577 ]
578 if (is_debug) {
579 # The Chromium build/common.gypi defines this for all posix
580 # _except_ for ios & mac. We want it there as well, e.g.
581 # because ASSERT and friends trigger off of it.
582 defines += [ "_DEBUG" ]
583 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000584 }
585
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000586 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 defines += [ "CARBON_DEPRECATED=YES" ]
588 }
589
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000590 if (is_linux || is_android) {
591 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 "linux.cc",
593 "linux.h",
594 ]
595 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700596
597 if (is_nacl) {
598 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
599 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800600 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700601 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602}
tkchin42f580e2015-11-26 23:18:23 -0800603
604if (is_ios) {
605 source_set("rtc_base_objc") {
606 deps = [
607 ":rtc_base",
608 ]
609 cflags = [ "-fobjc-arc" ]
610 configs += [ "..:common_config" ]
611 public_configs = [ "..:common_inherited_config" ]
612
613 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800614 "objc/NSString+StdString.h",
615 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800616 "objc/RTCCameraPreviewView.h",
617 "objc/RTCCameraPreviewView.m",
618 "objc/RTCDispatcher.h",
619 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800620 "objc/RTCFieldTrials.h",
621 "objc/RTCFieldTrials.mm",
tkchin42f580e2015-11-26 23:18:23 -0800622 "objc/RTCLogging.h",
623 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800624 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800625 "objc/RTCSSLAdapter.h",
626 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800627 "objc/RTCTracing.h",
628 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800629 "objc/RTCUIApplication.h",
630 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800631 ]
sdefresne1a0c4612016-04-20 01:44:54 -0700632
633 if (!build_with_chromium) {
634 sources += [
635 "objc/RTCFileLogger.h",
636 "objc/RTCFileLogger.mm",
637 ]
638 }
tkchin42f580e2015-11-26 23:18:23 -0800639 }
640}
kjellander988d31e2016-02-05 00:23:50 -0800641
642source_set("gtest_prod") {
643 sources = [
644 "gtest_prod_util.h",
645 ]
646}