blob: 4f42695854594320ec611d610d385df9ed867fb0 [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",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000137 "safe_conversions.h",
138 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200139 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000140 "stringencode.cc",
141 "stringencode.h",
142 "stringutils.cc",
143 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700144 "systeminfo.cc",
145 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000146 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000147 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000148 "thread_checker.h",
149 "thread_checker_impl.cc",
150 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000151 "timeutils.cc",
152 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000153 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000154 ]
Noah Richards915590e2015-04-22 15:43:08 -0700155
Peter Boström11e02292015-11-25 21:36:14 +0100156 if (build_with_chromium) {
157 # Dependency on chromium's logging (in //base).
158 deps += [ "//base:base" ]
159 sources += [
160 "../../webrtc_overrides/webrtc/base/logging.cc",
161 "../../webrtc_overrides/webrtc/base/logging.h",
162 ]
163 include_dirs = [ "../../webrtc_overrides" ]
164 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700165 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200166 "logging.cc",
167 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700168 ]
169 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000170}
171
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000172static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000173 cflags = []
174 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000175 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000176 deps = [
177 ":rtc_base_approved",
178 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000180 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000182 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 ]
184
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000185 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000187 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188 ]
189
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200190 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191
192 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000193 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "asyncfile.cc",
195 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700196 "asyncinvoker-inl.h",
197 "asyncinvoker.cc",
198 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000199 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000201 "asyncresolverinterface.cc",
202 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "asyncsocket.cc",
204 "asyncsocket.h",
205 "asynctcpsocket.cc",
206 "asynctcpsocket.h",
207 "asyncudpsocket.cc",
208 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 "autodetectproxy.cc",
210 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "base64.cc",
212 "base64.h",
213 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "common.cc",
215 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 "crc32.cc",
217 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000218 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "diskcache.cc",
221 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700222 "filerotatingstream.cc",
223 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "fileutils.cc",
225 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "firewallsocketserver.cc",
227 "firewallsocketserver.h",
228 "flags.cc",
229 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000230 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "gunit_prod.h",
232 "helpers.cc",
233 "helpers.h",
234 "httpbase.cc",
235 "httpbase.h",
236 "httpclient.cc",
237 "httpclient.h",
238 "httpcommon-inl.h",
239 "httpcommon.cc",
240 "httpcommon.h",
241 "httprequest.cc",
242 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "iosfilesystem.mm",
244 "ipaddress.cc",
245 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "messagedigest.cc",
249 "messagedigest.h",
250 "messagehandler.cc",
251 "messagehandler.h",
252 "messagequeue.cc",
253 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "nethelpers.cc",
255 "nethelpers.h",
256 "network.cc",
257 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700258 "networkmonitor.cc",
259 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "pathutils.cc",
262 "pathutils.h",
263 "physicalsocketserver.cc",
264 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "proxydetect.cc",
266 "proxydetect.h",
267 "proxyinfo.cc",
268 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "ratelimiter.cc",
270 "ratelimiter.h",
271 "ratetracker.cc",
272 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200273 "rtccertificate.cc",
274 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000275 "scoped_autorelease_pool.h",
276 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "sha1.cc",
278 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000279 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000280 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "signalthread.cc",
282 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000283 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "sigslot.h",
285 "sigslotrepeater.h",
286 "socket.h",
287 "socketadapters.cc",
288 "socketadapters.h",
289 "socketaddress.cc",
290 "socketaddress.h",
291 "socketaddresspair.cc",
292 "socketaddresspair.h",
293 "socketfactory.h",
294 "socketpool.cc",
295 "socketpool.h",
296 "socketserver.h",
297 "socketstream.cc",
298 "socketstream.h",
299 "ssladapter.cc",
300 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "sslfingerprint.cc",
302 "sslfingerprint.h",
303 "sslidentity.cc",
304 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "sslsocketfactory.cc",
306 "sslsocketfactory.h",
307 "sslstreamadapter.cc",
308 "sslstreamadapter.h",
309 "sslstreamadapterhelper.cc",
310 "sslstreamadapterhelper.h",
311 "stream.cc",
312 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000313 "task.cc",
314 "task.h",
315 "taskparent.cc",
316 "taskparent.h",
317 "taskrunner.cc",
318 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000319 "thread.cc",
320 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "timing.cc",
322 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "urlencode.cc",
324 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "worker.cc",
326 "worker.h",
327 ]
328
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000329 if (is_posix) {
330 sources += [
331 "unixfilesystem.cc",
332 "unixfilesystem.h",
333 ]
334 }
335
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000336 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000337 deps += [ "..:webrtc_common" ]
338
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700340 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000342
343 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700344 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000345 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000346 ]
347
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000348 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349 } else {
350 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000351 "bandwidthsmoother.cc",
352 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "bind.h",
354 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "callback.h",
356 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "fileutils_mock.h",
358 "genericslot.h",
359 "genericslot.h.pump",
360 "httpserver.cc",
361 "httpserver.h",
362 "json.cc",
363 "json.h",
tkchin93411912015-07-22 12:12:17 -0700364 "logsinks.cc",
365 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "mathutils.h",
367 "multipart.cc",
368 "multipart.h",
369 "natserver.cc",
370 "natserver.h",
371 "natsocketfactory.cc",
372 "natsocketfactory.h",
373 "nattypes.cc",
374 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "optionsfile.cc",
376 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "profiler.cc",
378 "profiler.h",
379 "proxyserver.cc",
380 "proxyserver.h",
381 "refcount.h",
382 "referencecountedsingletonfactory.h",
383 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200385 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000387 "sharedexclusivelock.cc",
388 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "sslconfig.h",
390 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "testclient.cc",
392 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "transformadapter.cc",
394 "transformadapter.h",
395 "versionparsing.cc",
396 "versionparsing.h",
397 "virtualsocketserver.cc",
398 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200401 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 ]
403
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000404 deps += [ "..:webrtc_common" ]
405
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000406 if (is_posix) {
407 sources += [
408 "latebindingsymboltable.cc",
409 "latebindingsymboltable.cc.def",
410 "latebindingsymboltable.h",
411 "latebindingsymboltable.h.def",
412 "posix.cc",
413 "posix.h",
414 ]
415 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000417 if (is_linux) {
418 sources += [
419 "dbus.cc",
420 "dbus.h",
421 "libdbusglibsymboltable.cc",
422 "libdbusglibsymboltable.h",
423 "linuxfdwalk.c",
424 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000425 ]
426 }
427
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000428 if (is_mac) {
429 sources += [
430 "macasyncsocket.cc",
431 "macasyncsocket.h",
432 "maccocoasocketserver.h",
433 "maccocoasocketserver.mm",
434 "macsocketserver.cc",
435 "macsocketserver.h",
436 "macwindowpicker.cc",
437 "macwindowpicker.h",
438 ]
439 }
440
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000441 if (is_win) {
442 sources += [
443 "diskcache_win32.cc",
444 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000445 "win32regkey.cc",
446 "win32regkey.h",
447 "win32socketinit.cc",
448 "win32socketinit.h",
449 "win32socketserver.cc",
450 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000451 ]
452 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000453 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000454 deps += [ "//third_party/jsoncpp" ]
455 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000456 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000457
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000458 # When defined changes the include path for json.h to where it is
459 # expected to be when building json outside of the standalone build.
460 defines += [ "WEBRTC_EXTERNAL_JSON" ]
461 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000462 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000463
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000464 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000465 # compiler settings.
466 configs -= [ "//build/config/compiler:chromium_code" ]
467 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000468 if (!is_win) {
469 cflags += [ "-Wno-uninitialized" ]
470 cflags_cc += [ "-Wno-non-virtual-dtor" ]
471 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000472
473 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000474 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000475 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000476 deps += [ "//third_party/boringssl" ]
477 } else {
478 configs += [ "external_ssl_library" ]
479 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000480 sources += [
481 "openssl.h",
482 "openssladapter.cc",
483 "openssladapter.h",
484 "openssldigest.cc",
485 "openssldigest.h",
486 "opensslidentity.cc",
487 "opensslidentity.h",
488 "opensslstreamadapter.cc",
489 "opensslstreamadapter.h",
490 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491 }
492
493 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000494 sources += [
495 "ifaddrs-android.cc",
496 "ifaddrs-android.h",
497 ]
498
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000499 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200501 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000502 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 }
504
505 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200506 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200507
508 sources += [
509 "macconversion.cc",
510 "macconversion.h",
511 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 }
513
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000514 if (use_x11) {
515 sources += [
516 "x11windowpicker.cc",
517 "x11windowpicker.h",
518 ]
519 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000520 "dl",
521 "rt",
522 "Xext",
523 "X11",
524 "Xcomposite",
525 "Xrender",
526 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000527 }
528
529 if (is_linux) {
530 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000531 "dl",
532 "rt",
533 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000534 }
535
536 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000537 sources += [
538 "maccocoathreadhelper.h",
539 "maccocoathreadhelper.mm",
540 "macconversion.cc",
541 "macconversion.h",
542 "macutils.cc",
543 "macutils.h",
544 ]
545
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 all_dependent_configs = [ ":mac_config" ]
547
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000548 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000549 all_dependent_configs += [ ":mac_x86_config" ]
550 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000551 }
552
553 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000554 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000555 "win32.cc",
556 "win32.h",
557 "win32filesystem.cc",
558 "win32filesystem.h",
559 "win32securityerrors.cc",
560 "win32window.cc",
561 "win32window.h",
562 "win32windowpicker.cc",
563 "win32windowpicker.h",
564 "winfirewall.cc",
565 "winfirewall.h",
566 "winping.cc",
567 "winping.h",
568 ]
569
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000570 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000571 "crypt32.lib",
572 "iphlpapi.lib",
573 "secur32.lib",
574 ]
575
576 cflags += [
577 # Suppress warnings about WIN32_LEAN_AND_MEAN.
578 "/wd4005",
579 "/wd4703",
580 ]
581
582 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000583 }
584
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000585 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000586 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000587 # _except_ for ios & mac. We want it there as well, e.g.
588 # because ASSERT and friends trigger off of it.
589 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000590 }
591
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000592 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000593 defines += [ "CARBON_DEPRECATED=YES" ]
594 }
595
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000596 if (is_linux || is_android) {
597 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000598 "linux.cc",
599 "linux.h",
600 ]
601 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700602
603 if (is_nacl) {
604 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
605 defines += [ "timezone=_timezone" ]
606 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607}
tkchin42f580e2015-11-26 23:18:23 -0800608
609if (is_ios) {
610 source_set("rtc_base_objc") {
611 deps = [
612 ":rtc_base",
613 ]
614 cflags = [ "-fobjc-arc" ]
615 configs += [ "..:common_config" ]
616 public_configs = [ "..:common_inherited_config" ]
617
618 sources = [
619 "objc/RTCLogging.h",
620 "objc/RTCLogging.mm",
621 ]
622 }
623}