blob: ca96e920e546a093cda25e75a89610be18359593 [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 = [
Zeke Chin2d3b7e22015-07-14 12:55:44 -070051 "CFNetwork.framework",
52
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000053 #"Foundation.framework", # Already included in //build/config:default_libs.
54 "Security.framework",
55 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020056
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000057 #"UIKit.framework", # Already included in //build/config:default_libs.
58 ]
59}
60
61config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000062 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000063 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020064
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000065 #"Foundation.framework", # Already included in //build/config:default_libs.
66 #"IOKit.framework", # Already included in //build/config:default_libs.
67 #"Security.framework", # Already included in //build/config:default_libs.
68 "SystemConfiguration.framework",
69 ]
70}
71
72config("mac_x86_config") {
73 libs = [
74 #"Carbon.framework", # Already included in //build/config:default_libs.
75 ]
76}
77
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000078if (is_linux && !build_with_chromium) {
79 # Provides the same functionality as the //crypto:platform target, which
80 # WebRTC cannot use as we don't sync src/crypto from Chromium.
81 group("linux_system_ssl") {
82 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020083 deps = [
84 "//third_party/boringssl",
85 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000086 }
87 }
88}
89
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000090if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000091 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000092 assert(rtc_ssl_root != "",
93 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
94 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000095 }
96}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000097
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000098# The subset of rtc_base approved for use outside of libjingle.
99static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +0100100 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000101 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000102 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000103
104 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100105 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200106 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700107 "bitbuffer.cc",
108 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200109 "buffer.cc",
110 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200111 "bufferqueue.cc",
112 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700113 "bytebuffer.cc",
114 "bytebuffer.h",
115 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000116 "checks.cc",
117 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100118 "constructormagic.h",
Tommi494f2092015-04-27 17:39:23 +0200119 "criticalsection.cc",
120 "criticalsection.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",
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",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000139 "safe_conversions.h",
140 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200141 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000142 "stringencode.cc",
143 "stringencode.h",
144 "stringutils.cc",
145 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700146 "systeminfo.cc",
147 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000148 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000149 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000150 "thread_checker.h",
151 "thread_checker_impl.cc",
152 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000153 "timeutils.cc",
154 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000155 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000156 ]
Noah Richards915590e2015-04-22 15:43:08 -0700157
Peter Boström11e02292015-11-25 21:36:14 +0100158 if (build_with_chromium) {
159 # Dependency on chromium's logging (in //base).
160 deps += [ "//base:base" ]
161 sources += [
162 "../../webrtc_overrides/webrtc/base/logging.cc",
163 "../../webrtc_overrides/webrtc/base/logging.h",
164 ]
165 include_dirs = [ "../../webrtc_overrides" ]
166 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700167 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200168 "logging.cc",
169 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700170 ]
171 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000172}
173
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000174static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 cflags = []
176 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000177 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000178 deps = [
179 ":rtc_base_approved",
180 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000184 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 ]
186
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000187 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000189 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 ]
191
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200192 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193
194 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000195 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000196 "asyncfile.cc",
197 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700198 "asyncinvoker-inl.h",
199 "asyncinvoker.cc",
200 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000201 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000203 "asyncresolverinterface.cc",
204 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205 "asyncsocket.cc",
206 "asyncsocket.h",
207 "asynctcpsocket.cc",
208 "asynctcpsocket.h",
209 "asyncudpsocket.cc",
210 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "autodetectproxy.cc",
212 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "base64.cc",
214 "base64.h",
215 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "common.cc",
217 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "crc32.cc",
219 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000220 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "diskcache.cc",
223 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700224 "filerotatingstream.cc",
225 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "fileutils.cc",
227 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "firewallsocketserver.cc",
229 "firewallsocketserver.h",
230 "flags.cc",
231 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000232 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "gunit_prod.h",
234 "helpers.cc",
235 "helpers.h",
236 "httpbase.cc",
237 "httpbase.h",
238 "httpclient.cc",
239 "httpclient.h",
240 "httpcommon-inl.h",
241 "httpcommon.cc",
242 "httpcommon.h",
243 "httprequest.cc",
244 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "iosfilesystem.mm",
246 "ipaddress.cc",
247 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "messagedigest.cc",
251 "messagedigest.h",
252 "messagehandler.cc",
253 "messagehandler.h",
254 "messagequeue.cc",
255 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "nethelpers.cc",
257 "nethelpers.h",
258 "network.cc",
259 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700260 "networkmonitor.cc",
261 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "pathutils.cc",
264 "pathutils.h",
265 "physicalsocketserver.cc",
266 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000267 "proxydetect.cc",
268 "proxydetect.h",
269 "proxyinfo.cc",
270 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "ratelimiter.cc",
272 "ratelimiter.h",
273 "ratetracker.cc",
274 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200275 "rtccertificate.cc",
276 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "scoped_autorelease_pool.h",
278 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "sha1.cc",
280 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000281 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "signalthread.cc",
284 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000285 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "sigslot.h",
287 "sigslotrepeater.h",
288 "socket.h",
289 "socketadapters.cc",
290 "socketadapters.h",
291 "socketaddress.cc",
292 "socketaddress.h",
293 "socketaddresspair.cc",
294 "socketaddresspair.h",
295 "socketfactory.h",
296 "socketpool.cc",
297 "socketpool.h",
298 "socketserver.h",
299 "socketstream.cc",
300 "socketstream.h",
301 "ssladapter.cc",
302 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "sslfingerprint.cc",
304 "sslfingerprint.h",
305 "sslidentity.cc",
306 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000307 "sslsocketfactory.cc",
308 "sslsocketfactory.h",
309 "sslstreamadapter.cc",
310 "sslstreamadapter.h",
311 "sslstreamadapterhelper.cc",
312 "sslstreamadapterhelper.h",
313 "stream.cc",
314 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000315 "task.cc",
316 "task.h",
317 "taskparent.cc",
318 "taskparent.h",
319 "taskrunner.cc",
320 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "thread.cc",
322 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "timing.cc",
324 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "urlencode.cc",
326 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "worker.cc",
328 "worker.h",
329 ]
330
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000331 if (is_posix) {
332 sources += [
333 "unixfilesystem.cc",
334 "unixfilesystem.h",
335 ]
336 }
337
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000339 deps += [ "..:webrtc_common" ]
340
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700342 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000344
345 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700346 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000347 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000348 ]
349
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000350 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000351 } else {
352 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "bandwidthsmoother.cc",
354 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "bind.h",
356 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "callback.h",
358 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 "fileutils_mock.h",
360 "genericslot.h",
361 "genericslot.h.pump",
362 "httpserver.cc",
363 "httpserver.h",
364 "json.cc",
365 "json.h",
tkchin93411912015-07-22 12:12:17 -0700366 "logsinks.cc",
367 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "mathutils.h",
369 "multipart.cc",
370 "multipart.h",
371 "natserver.cc",
372 "natserver.h",
373 "natsocketfactory.cc",
374 "natsocketfactory.h",
375 "nattypes.cc",
376 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "optionsfile.cc",
378 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "profiler.cc",
380 "profiler.h",
381 "proxyserver.cc",
382 "proxyserver.h",
383 "refcount.h",
384 "referencecountedsingletonfactory.h",
385 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200387 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000389 "sharedexclusivelock.cc",
390 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "sslconfig.h",
392 "sslroots.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
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000406 deps += [ "..:webrtc_common" ]
407
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000408 if (is_posix) {
409 sources += [
410 "latebindingsymboltable.cc",
411 "latebindingsymboltable.cc.def",
412 "latebindingsymboltable.h",
413 "latebindingsymboltable.h.def",
414 "posix.cc",
415 "posix.h",
416 ]
417 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000419 if (is_linux) {
420 sources += [
421 "dbus.cc",
422 "dbus.h",
423 "libdbusglibsymboltable.cc",
424 "libdbusglibsymboltable.h",
425 "linuxfdwalk.c",
426 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000427 ]
428 }
429
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000430 if (is_mac) {
431 sources += [
432 "macasyncsocket.cc",
433 "macasyncsocket.h",
434 "maccocoasocketserver.h",
435 "maccocoasocketserver.mm",
436 "macsocketserver.cc",
437 "macsocketserver.h",
438 "macwindowpicker.cc",
439 "macwindowpicker.h",
440 ]
441 }
442
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000443 if (is_win) {
444 sources += [
445 "diskcache_win32.cc",
446 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000447 "win32regkey.cc",
448 "win32regkey.h",
449 "win32socketinit.cc",
450 "win32socketinit.h",
451 "win32socketserver.cc",
452 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453 ]
454 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000455 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000456 deps += [ "//third_party/jsoncpp" ]
457 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000458 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000460 # When defined changes the include path for json.h to where it is
461 # expected to be when building json outside of the standalone build.
462 defines += [ "WEBRTC_EXTERNAL_JSON" ]
463 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000464 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000466 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000467 # compiler settings.
468 configs -= [ "//build/config/compiler:chromium_code" ]
469 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000470 if (!is_win) {
471 cflags += [ "-Wno-uninitialized" ]
472 cflags_cc += [ "-Wno-non-virtual-dtor" ]
473 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000474
475 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000476 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000477 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000478 deps += [ "//third_party/boringssl" ]
479 } else {
480 configs += [ "external_ssl_library" ]
481 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000482 sources += [
483 "openssl.h",
484 "openssladapter.cc",
485 "openssladapter.h",
486 "openssldigest.cc",
487 "openssldigest.h",
488 "opensslidentity.cc",
489 "opensslidentity.h",
490 "opensslstreamadapter.cc",
491 "opensslstreamadapter.h",
492 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000493 }
494
495 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000496 sources += [
497 "ifaddrs-android.cc",
498 "ifaddrs-android.h",
499 ]
500
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000501 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000502 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200503 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 }
506
507 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200508 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200509
510 sources += [
511 "macconversion.cc",
512 "macconversion.h",
513 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000514 }
515
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000516 if (use_x11) {
517 sources += [
518 "x11windowpicker.cc",
519 "x11windowpicker.h",
520 ]
521 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000522 "dl",
523 "rt",
524 "Xext",
525 "X11",
526 "Xcomposite",
527 "Xrender",
528 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000529 }
530
531 if (is_linux) {
532 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000533 "dl",
534 "rt",
535 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 }
537
538 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000539 sources += [
540 "maccocoathreadhelper.h",
541 "maccocoathreadhelper.mm",
542 "macconversion.cc",
543 "macconversion.h",
544 "macutils.cc",
545 "macutils.h",
546 ]
547
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000548 all_dependent_configs = [ ":mac_config" ]
549
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000550 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000551 all_dependent_configs += [ ":mac_x86_config" ]
552 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000553 }
554
555 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000556 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000557 "win32.cc",
558 "win32.h",
559 "win32filesystem.cc",
560 "win32filesystem.h",
561 "win32securityerrors.cc",
562 "win32window.cc",
563 "win32window.h",
564 "win32windowpicker.cc",
565 "win32windowpicker.h",
566 "winfirewall.cc",
567 "winfirewall.h",
568 "winping.cc",
569 "winping.h",
570 ]
571
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000572 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000573 "crypt32.lib",
574 "iphlpapi.lib",
575 "secur32.lib",
576 ]
577
578 cflags += [
579 # Suppress warnings about WIN32_LEAN_AND_MEAN.
580 "/wd4005",
581 "/wd4703",
582 ]
583
584 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000585 }
586
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000587 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000588 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000589 # _except_ for ios & mac. We want it there as well, e.g.
590 # because ASSERT and friends trigger off of it.
591 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 }
593
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000594 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000595 defines += [ "CARBON_DEPRECATED=YES" ]
596 }
597
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000598 if (is_linux || is_android) {
599 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000600 "linux.cc",
601 "linux.h",
602 ]
603 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700604
605 if (is_nacl) {
606 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
607 defines += [ "timezone=_timezone" ]
608 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000609}
tkchin42f580e2015-11-26 23:18:23 -0800610
611if (is_ios) {
612 source_set("rtc_base_objc") {
613 deps = [
614 ":rtc_base",
615 ]
616 cflags = [ "-fobjc-arc" ]
617 configs += [ "..:common_config" ]
618 public_configs = [ "..:common_inherited_config" ]
619
620 sources = [
hayscedd8fef2015-12-08 11:08:39 -0800621 "objc/RTCCameraPreviewView.h",
622 "objc/RTCCameraPreviewView.m",
623 "objc/RTCDispatcher.h",
624 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800625 "objc/RTCLogging.h",
626 "objc/RTCLogging.mm",
627 ]
628 }
629}