blob: 115f31a0429ce2209e3f4835794a95f82a7784db [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",
Tommi09ca02e2016-04-24 17:32:48 +0200177 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700178 ]
179 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180}
181
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000182static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 cflags = []
184 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000185 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700186 deps = [
187 "..:webrtc_common",
188 ]
Tommid44c0772016-03-11 17:12:32 -0800189 public_deps = [
190 ":rtc_base_approved",
191 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700195 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000196 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 ]
198
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000199 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700201 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000202 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 ]
204
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200205 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206
207 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000208 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 "asyncfile.cc",
210 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700211 "asyncinvoker-inl.h",
212 "asyncinvoker.cc",
213 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000214 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000216 "asyncresolverinterface.cc",
217 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "asyncsocket.cc",
219 "asyncsocket.h",
220 "asynctcpsocket.cc",
221 "asynctcpsocket.h",
222 "asyncudpsocket.cc",
223 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "autodetectproxy.cc",
225 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "base64.cc",
227 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "common.cc",
229 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "crc32.cc",
231 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000232 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "diskcache.cc",
235 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700236 "filerotatingstream.cc",
237 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "fileutils.cc",
239 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240 "firewallsocketserver.cc",
241 "firewallsocketserver.h",
242 "flags.cc",
243 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000244 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "gunit_prod.h",
246 "helpers.cc",
247 "helpers.h",
248 "httpbase.cc",
249 "httpbase.h",
250 "httpclient.cc",
251 "httpclient.h",
252 "httpcommon-inl.h",
253 "httpcommon.cc",
254 "httpcommon.h",
255 "httprequest.cc",
256 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "iosfilesystem.mm",
258 "ipaddress.cc",
259 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "linked_ptr.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",
svaldez7f7a8192016-04-18 11:13:11 -0700274 "openssl.h",
275 "openssladapter.cc",
276 "openssladapter.h",
277 "openssldigest.cc",
278 "openssldigest.h",
279 "opensslidentity.cc",
280 "opensslidentity.h",
281 "opensslstreamadapter.cc",
282 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "pathutils.cc",
284 "pathutils.h",
285 "physicalsocketserver.cc",
286 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "proxydetect.cc",
288 "proxydetect.h",
289 "proxyinfo.cc",
290 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000291 "ratelimiter.cc",
292 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200293 "rtccertificate.cc",
294 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200295 "rtccertificategenerator.cc",
296 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000297 "sha1.cc",
298 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000299 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000300 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800301 "sharedexclusivelock.cc",
302 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "signalthread.cc",
304 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000305 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000306 "sigslot.h",
307 "sigslotrepeater.h",
308 "socket.h",
309 "socketadapters.cc",
310 "socketadapters.h",
311 "socketaddress.cc",
312 "socketaddress.h",
313 "socketaddresspair.cc",
314 "socketaddresspair.h",
315 "socketfactory.h",
316 "socketpool.cc",
317 "socketpool.h",
318 "socketserver.h",
319 "socketstream.cc",
320 "socketstream.h",
321 "ssladapter.cc",
322 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "sslfingerprint.cc",
324 "sslfingerprint.h",
325 "sslidentity.cc",
326 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "sslsocketfactory.cc",
328 "sslsocketfactory.h",
329 "sslstreamadapter.cc",
330 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "stream.cc",
332 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "task.cc",
334 "task.h",
335 "taskparent.cc",
336 "taskparent.h",
337 "taskrunner.cc",
338 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "thread.cc",
340 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "timing.cc",
342 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "urlencode.cc",
344 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 "worker.cc",
346 "worker.h",
347 ]
348
349 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700351 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353
354 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700355 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000356 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000357 ]
358
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000359 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000360 } else {
361 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "bandwidthsmoother.cc",
363 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "httpserver.cc",
367 "httpserver.h",
368 "json.cc",
369 "json.h",
tkchin93411912015-07-22 12:12:17 -0700370 "logsinks.cc",
371 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "mathutils.h",
373 "multipart.cc",
374 "multipart.h",
375 "natserver.cc",
376 "natserver.h",
377 "natsocketfactory.cc",
378 "natsocketfactory.h",
379 "nattypes.cc",
380 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "optionsfile.cc",
382 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000383 "profiler.cc",
384 "profiler.h",
385 "proxyserver.cc",
386 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "referencecountedsingletonfactory.h",
388 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200389 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "sslconfig.h",
392 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700393 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "testclient.cc",
395 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "transformadapter.cc",
397 "transformadapter.h",
398 "versionparsing.cc",
399 "versionparsing.h",
400 "virtualsocketserver.cc",
401 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200404 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 ]
406
kjellandera8a7ef62016-04-05 08:13:31 -0700407 if (is_linux) {
408 sources += [
409 "dbus.cc",
410 "dbus.h",
411 "libdbusglibsymboltable.cc",
412 "libdbusglibsymboltable.h",
413 "linuxfdwalk.c",
414 "linuxfdwalk.h",
415 ]
416 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000417
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000418 if (is_posix) {
419 sources += [
420 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000422 "posix.cc",
423 "posix.h",
424 ]
425 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000426
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000427 if (is_mac) {
428 sources += [
429 "macasyncsocket.cc",
430 "macasyncsocket.h",
431 "maccocoasocketserver.h",
432 "maccocoasocketserver.mm",
433 "macsocketserver.cc",
434 "macsocketserver.h",
435 "macwindowpicker.cc",
436 "macwindowpicker.h",
437 ]
438 }
439
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000440 if (is_win) {
441 sources += [
442 "diskcache_win32.cc",
443 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000444 "win32regkey.cc",
445 "win32regkey.h",
446 "win32socketinit.cc",
447 "win32socketinit.h",
448 "win32socketserver.cc",
449 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450 ]
451 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000452 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000453 deps += [ "//third_party/jsoncpp" ]
454 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000455 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000457 # When defined changes the include path for json.h to where it is
458 # expected to be when building json outside of the standalone build.
459 defines += [ "WEBRTC_EXTERNAL_JSON" ]
460 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000461 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000462
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000463 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000464 # compiler settings.
465 configs -= [ "//build/config/compiler:chromium_code" ]
466 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000467 if (!is_win) {
468 cflags += [ "-Wno-uninitialized" ]
469 cflags_cc += [ "-Wno-non-virtual-dtor" ]
470 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000471
svaldez7f7a8192016-04-18 11:13:11 -0700472 if (rtc_build_ssl) {
473 deps += [ "//third_party/boringssl" ]
474 } else {
475 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000476 }
477
478 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000479 sources += [
480 "ifaddrs-android.cc",
481 "ifaddrs-android.h",
482 ]
483
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000484 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000485 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200486 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000487 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000488 }
489
kjellandera8a7ef62016-04-05 08:13:31 -0700490 if (is_ios || is_mac) {
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200491 if (is_ios) {
492 all_dependent_configs = [ ":ios_config" ]
493 }
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200494 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700495 "maccocoathreadhelper.h",
496 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200497 "macconversion.cc",
498 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700499 "macifaddrs_converter.cc",
500 "scoped_autorelease_pool.h",
501 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200502 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 }
504
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000505 if (use_x11) {
506 sources += [
507 "x11windowpicker.cc",
508 "x11windowpicker.h",
509 ]
510 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000511 "dl",
512 "rt",
513 "Xext",
514 "X11",
515 "Xcomposite",
516 "Xrender",
517 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 }
519
520 if (is_linux) {
521 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000522 "dl",
523 "rt",
524 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000525 }
526
527 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000528 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000529 "macutils.cc",
530 "macutils.h",
531 ]
532
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 all_dependent_configs = [ ":mac_config" ]
534
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000535 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 all_dependent_configs += [ ":mac_x86_config" ]
537 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 }
539
540 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000541 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000542 "win32.cc",
543 "win32.h",
544 "win32filesystem.cc",
545 "win32filesystem.h",
546 "win32securityerrors.cc",
547 "win32window.cc",
548 "win32window.h",
549 "win32windowpicker.cc",
550 "win32windowpicker.h",
551 "winfirewall.cc",
552 "winfirewall.h",
553 "winping.cc",
554 "winping.h",
555 ]
556
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000557 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 "crypt32.lib",
559 "iphlpapi.lib",
560 "secur32.lib",
561 ]
562
563 cflags += [
564 # Suppress warnings about WIN32_LEAN_AND_MEAN.
565 "/wd4005",
566 "/wd4703",
567 ]
568
569 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 }
571
kjellandera8a7ef62016-04-05 08:13:31 -0700572 if (is_posix) {
573 sources += [
574 "ifaddrs_converter.cc",
575 "ifaddrs_converter.h",
576 "unixfilesystem.cc",
577 "unixfilesystem.h",
578 ]
579 if (is_debug) {
580 # The Chromium build/common.gypi defines this for all posix
581 # _except_ for ios & mac. We want it there as well, e.g.
582 # because ASSERT and friends trigger off of it.
583 defines += [ "_DEBUG" ]
584 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000585 }
586
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000587 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000588 defines += [ "CARBON_DEPRECATED=YES" ]
589 }
590
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000591 if (is_linux || is_android) {
592 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000593 "linux.cc",
594 "linux.h",
595 ]
596 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700597
598 if (is_nacl) {
599 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
600 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800601 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700602 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603}
tkchin42f580e2015-11-26 23:18:23 -0800604
605if (is_ios) {
606 source_set("rtc_base_objc") {
607 deps = [
608 ":rtc_base",
609 ]
610 cflags = [ "-fobjc-arc" ]
611 configs += [ "..:common_config" ]
612 public_configs = [ "..:common_inherited_config" ]
613
614 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800615 "objc/NSString+StdString.h",
616 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800617 "objc/RTCCameraPreviewView.h",
618 "objc/RTCCameraPreviewView.m",
619 "objc/RTCDispatcher.h",
620 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800621 "objc/RTCFieldTrials.h",
622 "objc/RTCFieldTrials.mm",
tkchin42f580e2015-11-26 23:18:23 -0800623 "objc/RTCLogging.h",
624 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800625 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800626 "objc/RTCSSLAdapter.h",
627 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800628 "objc/RTCTracing.h",
629 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800630 "objc/RTCUIApplication.h",
631 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800632 ]
sdefresne1a0c4612016-04-20 01:44:54 -0700633
634 if (!build_with_chromium) {
635 sources += [
636 "objc/RTCFileLogger.h",
637 "objc/RTCFileLogger.mm",
638 ]
639 }
tkchin42f580e2015-11-26 23:18:23 -0800640 }
641}
kjellander988d31e2016-02-05 00:23:50 -0800642
643source_set("gtest_prod") {
644 sources = [
645 "gtest_prod_util.h",
646 ]
647}