blob: 5d93c5ac3cf03a070aa7c7c9f13ec09689aa64c7 [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
kjellander84ba8b62016-04-24 23:03:07 -070015config("rtc_base_approved_all_dependent_config") {
16 if (is_mac && !build_with_chromium) {
17 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
18 }
19}
20
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000021config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000022 include_dirs = [
23 "//third_party/jsoncpp/overrides/include",
24 "//third_party/jsoncpp/source/include",
25 ]
26
27 defines = [
28 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000029 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000030 ]
31
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020032 if (is_posix) {
33 # TODO(henrike): issue 3307, make rtc_base build without disabling
34 # these flags.
35 cflags_cc = [ "-Wno-non-virtual-dtor" ]
36 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000037}
38
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000039config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020040 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000041}
42
43config("openssl_config") {
44 defines = [
45 "SSL_USE_OPENSSL",
46 "HAVE_OPENSSL_SSL_H",
47 ]
48}
49
kjellanderb1f14062016-04-25 00:01:36 -070050config("rtc_base_all_dependent_config") {
51 if (is_ios) {
52 libs = [
53 "CFNetwork.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070054
kjellanderb1f14062016-04-25 00:01:36 -070055 #"Foundation.framework", # Already in //build/config:default_libs.
56 "Security.framework",
57 "SystemConfiguration.framework",
58 "UIKit.framework", # Already in //build/config:default_libs.
59 ]
60 }
61 if (is_mac) {
62 libs = [
63 "Cocoa.framework",
64 "Foundation.framework",
65 "IOKit.framework",
66 "Security.framework",
67 "SystemConfiguration.framework",
68 ]
69 if (current_cpu == "x86") {
70 libs = [ "Carbon.framework" ] # Already in //build/config:default_libs.
71 }
72 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000073}
74
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000075if (is_linux && !build_with_chromium) {
76 # Provides the same functionality as the //crypto:platform target, which
77 # WebRTC cannot use as we don't sync src/crypto from Chromium.
78 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070079 deps = [
80 "//third_party/boringssl",
81 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000082 }
83}
84
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000085if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000086 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000087 assert(rtc_ssl_root != "",
88 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
89 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000090 }
91}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000092
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000093# The subset of rtc_base approved for use outside of libjingle.
94static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +010095 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000096 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000097 public_configs = [ "..:common_inherited_config" ]
kjellander84ba8b62016-04-24 23:03:07 -070098 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099
100 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100101 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200102 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +0200103 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -0700104 "bitbuffer.cc",
105 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200106 "buffer.cc",
107 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200108 "bufferqueue.cc",
109 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700110 "bytebuffer.cc",
111 "bytebuffer.h",
112 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000113 "checks.cc",
114 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100115 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700116 "copyonwritebuffer.cc",
117 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200118 "criticalsection.cc",
119 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800120 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000121 "event.cc",
122 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000123 "event_tracer.cc",
124 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000125 "exp_filter.cc",
126 "exp_filter.h",
127 "md5.cc",
128 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000129 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000130 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700131 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700132 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100133 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000134 "platform_file.cc",
135 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200136 "platform_thread.cc",
137 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800138 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800139 "random.cc",
140 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800141 "rate_statistics.cc",
142 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700143 "ratetracker.cc",
144 "ratetracker.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",
Tommi09ca02e2016-04-24 17:32:48 +0200179 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700180 ]
181 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000182}
183
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000184static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 cflags = []
186 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000187 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700188 deps = [
189 "..:webrtc_common",
190 ]
Tommid44c0772016-03-11 17:12:32 -0800191 public_deps = [
192 ":rtc_base_approved",
193 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700197 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000198 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 ]
200
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000201 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700203 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000204 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205 ]
206
kjellanderb1f14062016-04-25 00:01:36 -0700207 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
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",
svaldez7f7a8192016-04-18 11:13:11 -0700278 "openssl.h",
279 "openssladapter.cc",
280 "openssladapter.h",
281 "openssldigest.cc",
282 "openssldigest.h",
283 "opensslidentity.cc",
284 "opensslidentity.h",
285 "opensslstreamadapter.cc",
286 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "pathutils.cc",
288 "pathutils.h",
289 "physicalsocketserver.cc",
290 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000291 "proxydetect.cc",
292 "proxydetect.h",
293 "proxyinfo.cc",
294 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "ratelimiter.cc",
296 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200297 "rtccertificate.cc",
298 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200299 "rtccertificategenerator.cc",
300 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "sha1.cc",
302 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000303 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800305 "sharedexclusivelock.cc",
306 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 "signalthread.cc",
308 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000309 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 "sigslot.h",
311 "sigslotrepeater.h",
312 "socket.h",
313 "socketadapters.cc",
314 "socketadapters.h",
315 "socketaddress.cc",
316 "socketaddress.h",
317 "socketaddresspair.cc",
318 "socketaddresspair.h",
319 "socketfactory.h",
320 "socketpool.cc",
321 "socketpool.h",
322 "socketserver.h",
323 "socketstream.cc",
324 "socketstream.h",
325 "ssladapter.cc",
326 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "sslfingerprint.cc",
328 "sslfingerprint.h",
329 "sslidentity.cc",
330 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "sslsocketfactory.cc",
332 "sslsocketfactory.h",
333 "sslstreamadapter.cc",
334 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "stream.cc",
336 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "task.cc",
338 "task.h",
339 "taskparent.cc",
340 "taskparent.h",
341 "taskrunner.cc",
342 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "thread.cc",
344 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 "timing.cc",
346 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000347 "urlencode.cc",
348 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000349 "worker.cc",
350 "worker.h",
351 ]
352
353 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700355 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000357
358 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700359 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000360 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000361 ]
362
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000363 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000364 } else {
365 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "bandwidthsmoother.cc",
367 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "httpserver.cc",
371 "httpserver.h",
372 "json.cc",
373 "json.h",
tkchin93411912015-07-22 12:12:17 -0700374 "logsinks.cc",
375 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "mathutils.h",
377 "multipart.cc",
378 "multipart.h",
379 "natserver.cc",
380 "natserver.h",
381 "natsocketfactory.cc",
382 "natsocketfactory.h",
383 "nattypes.cc",
384 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "optionsfile.cc",
386 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "profiler.cc",
388 "profiler.h",
389 "proxyserver.cc",
390 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "referencecountedsingletonfactory.h",
392 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200393 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "sslconfig.h",
396 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700397 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "testclient.cc",
399 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "transformadapter.cc",
401 "transformadapter.h",
402 "versionparsing.cc",
403 "versionparsing.h",
404 "virtualsocketserver.cc",
405 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200408 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 ]
410
kjellandera8a7ef62016-04-05 08:13:31 -0700411 if (is_linux) {
412 sources += [
413 "dbus.cc",
414 "dbus.h",
415 "libdbusglibsymboltable.cc",
416 "libdbusglibsymboltable.h",
417 "linuxfdwalk.c",
418 "linuxfdwalk.h",
419 ]
420 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000421
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000422 if (is_posix) {
423 sources += [
424 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000425 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000426 "posix.cc",
427 "posix.h",
428 ]
429 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000430
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000431 if (is_mac) {
432 sources += [
433 "macasyncsocket.cc",
434 "macasyncsocket.h",
435 "maccocoasocketserver.h",
436 "maccocoasocketserver.mm",
437 "macsocketserver.cc",
438 "macsocketserver.h",
439 "macwindowpicker.cc",
440 "macwindowpicker.h",
441 ]
442 }
443
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000444 if (is_win) {
445 sources += [
446 "diskcache_win32.cc",
447 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000448 "win32regkey.cc",
449 "win32regkey.h",
450 "win32socketinit.cc",
451 "win32socketinit.h",
452 "win32socketserver.cc",
453 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000454 ]
455 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000456 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000457 deps += [ "//third_party/jsoncpp" ]
458 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000459 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000461 # When defined changes the include path for json.h to where it is
462 # expected to be when building json outside of the standalone build.
463 defines += [ "WEBRTC_EXTERNAL_JSON" ]
464 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000465 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000466
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000467 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000468 # compiler settings.
469 configs -= [ "//build/config/compiler:chromium_code" ]
470 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000471 if (!is_win) {
472 cflags += [ "-Wno-uninitialized" ]
473 cflags_cc += [ "-Wno-non-virtual-dtor" ]
474 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000475
svaldez7f7a8192016-04-18 11:13:11 -0700476 if (rtc_build_ssl) {
477 deps += [ "//third_party/boringssl" ]
478 } else {
479 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000480 }
481
482 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000483 sources += [
484 "ifaddrs-android.cc",
485 "ifaddrs-android.h",
486 ]
487
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000488 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200490 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000492 }
493
kjellandera8a7ef62016-04-05 08:13:31 -0700494 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200495 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700496 "maccocoathreadhelper.h",
497 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200498 "macconversion.cc",
499 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700500 "macifaddrs_converter.cc",
501 "scoped_autorelease_pool.h",
502 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200503 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 }
505
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000506 if (use_x11) {
507 sources += [
508 "x11windowpicker.cc",
509 "x11windowpicker.h",
510 ]
511 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 "dl",
513 "rt",
514 "Xext",
515 "X11",
516 "Xcomposite",
517 "Xrender",
518 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000519 }
520
521 if (is_linux) {
522 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 "dl",
524 "rt",
525 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 }
527
528 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000529 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000530 "macutils.cc",
531 "macutils.h",
532 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 }
534
535 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000536 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000537 "win32.cc",
538 "win32.h",
539 "win32filesystem.cc",
540 "win32filesystem.h",
541 "win32securityerrors.cc",
542 "win32window.cc",
543 "win32window.h",
544 "win32windowpicker.cc",
545 "win32windowpicker.h",
546 "winfirewall.cc",
547 "winfirewall.h",
548 "winping.cc",
549 "winping.h",
550 ]
551
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000552 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000553 "crypt32.lib",
554 "iphlpapi.lib",
555 "secur32.lib",
556 ]
557
558 cflags += [
559 # Suppress warnings about WIN32_LEAN_AND_MEAN.
560 "/wd4005",
561 "/wd4703",
562 ]
563
564 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000565 }
566
kjellandera8a7ef62016-04-05 08:13:31 -0700567 if (is_posix) {
568 sources += [
569 "ifaddrs_converter.cc",
570 "ifaddrs_converter.h",
571 "unixfilesystem.cc",
572 "unixfilesystem.h",
573 ]
574 if (is_debug) {
575 # The Chromium build/common.gypi defines this for all posix
576 # _except_ for ios & mac. We want it there as well, e.g.
577 # because ASSERT and friends trigger off of it.
578 defines += [ "_DEBUG" ]
579 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 }
581
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000582 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000583 defines += [ "CARBON_DEPRECATED=YES" ]
584 }
585
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000586 if (is_linux || is_android) {
587 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000588 "linux.cc",
589 "linux.h",
590 ]
591 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700592
593 if (is_nacl) {
594 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
595 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800596 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700597 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000598}
tkchin42f580e2015-11-26 23:18:23 -0800599
600if (is_ios) {
601 source_set("rtc_base_objc") {
602 deps = [
603 ":rtc_base",
604 ]
605 cflags = [ "-fobjc-arc" ]
606 configs += [ "..:common_config" ]
607 public_configs = [ "..:common_inherited_config" ]
608
609 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800610 "objc/NSString+StdString.h",
611 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800612 "objc/RTCCameraPreviewView.h",
613 "objc/RTCCameraPreviewView.m",
614 "objc/RTCDispatcher.h",
615 "objc/RTCDispatcher.m",
tkchin4f735d12016-03-03 17:54:28 -0800616 "objc/RTCFieldTrials.h",
617 "objc/RTCFieldTrials.mm",
tkchin42f580e2015-11-26 23:18:23 -0800618 "objc/RTCLogging.h",
619 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800620 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800621 "objc/RTCSSLAdapter.h",
622 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800623 "objc/RTCTracing.h",
624 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800625 "objc/RTCUIApplication.h",
626 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800627 ]
sdefresne1a0c4612016-04-20 01:44:54 -0700628
629 if (!build_with_chromium) {
630 sources += [
631 "objc/RTCFileLogger.h",
632 "objc/RTCFileLogger.mm",
633 ]
634 }
tkchin42f580e2015-11-26 23:18:23 -0800635 }
636}
kjellander988d31e2016-02-05 00:23:50 -0800637
638source_set("gtest_prod") {
639 sources = [
640 "gtest_prod_util.h",
641 ]
642}