blob: b867d8734fe6b75954b1eea82643091752d908d9 [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 = [
hjonaa32c3e2015-12-13 19:58:11 -080051 "AVFoundation.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070052 "CFNetwork.framework",
53
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"UIKit.framework", # Already included in //build/config:default_libs.
59 ]
60}
61
62config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000063 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000064 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020065
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000066 #"Foundation.framework", # Already included in //build/config:default_libs.
67 #"IOKit.framework", # Already included in //build/config:default_libs.
68 #"Security.framework", # Already included in //build/config:default_libs.
69 "SystemConfiguration.framework",
70 ]
71}
72
73config("mac_x86_config") {
74 libs = [
75 #"Carbon.framework", # Already included in //build/config:default_libs.
76 ]
77}
78
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000079if (is_linux && !build_with_chromium) {
80 # Provides the same functionality as the //crypto:platform target, which
81 # WebRTC cannot use as we don't sync src/crypto from Chromium.
82 group("linux_system_ssl") {
83 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020084 deps = [
85 "//third_party/boringssl",
86 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000087 }
88 }
89}
90
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000091if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000092 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000093 assert(rtc_ssl_root != "",
94 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
95 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000096 }
97}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000098
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099# The subset of rtc_base approved for use outside of libjingle.
100static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +0100101 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000102 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000103 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000104
105 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100106 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200107 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700108 "bitbuffer.cc",
109 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200110 "buffer.cc",
111 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200112 "bufferqueue.cc",
113 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700114 "bytebuffer.cc",
115 "bytebuffer.h",
116 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000117 "checks.cc",
118 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100119 "constructormagic.h",
Tommi494f2092015-04-27 17:39:23 +0200120 "criticalsection.cc",
121 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000122 "event.cc",
123 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000124 "event_tracer.cc",
125 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000126 "exp_filter.cc",
127 "exp_filter.h",
128 "md5.cc",
129 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000130 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000131 "md5digest.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100132 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000133 "platform_file.cc",
134 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200135 "platform_thread.cc",
136 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800137 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800138 "random.cc",
139 "random.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000140 "safe_conversions.h",
141 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200142 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000143 "stringencode.cc",
144 "stringencode.h",
145 "stringutils.cc",
146 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700147 "systeminfo.cc",
148 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000149 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000150 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000151 "thread_checker.h",
152 "thread_checker_impl.cc",
153 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000154 "timeutils.cc",
155 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000156 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000157 ]
Noah Richards915590e2015-04-22 15:43:08 -0700158
Peter Boström11e02292015-11-25 21:36:14 +0100159 if (build_with_chromium) {
160 # Dependency on chromium's logging (in //base).
161 deps += [ "//base:base" ]
162 sources += [
163 "../../webrtc_overrides/webrtc/base/logging.cc",
164 "../../webrtc_overrides/webrtc/base/logging.h",
165 ]
166 include_dirs = [ "../../webrtc_overrides" ]
167 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700168 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200169 "logging.cc",
170 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700171 ]
172 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000173}
174
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000175static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000176 cflags = []
177 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000178 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000179 deps = [
180 ":rtc_base_approved",
181 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000185 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000186 ]
187
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000188 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000190 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000191 ]
192
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200193 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194
195 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000196 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 "asyncfile.cc",
198 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700199 "asyncinvoker-inl.h",
200 "asyncinvoker.cc",
201 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000202 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000204 "asyncresolverinterface.cc",
205 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "asyncsocket.cc",
207 "asyncsocket.h",
208 "asynctcpsocket.cc",
209 "asynctcpsocket.h",
210 "asyncudpsocket.cc",
211 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "autodetectproxy.cc",
213 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "base64.cc",
215 "base64.h",
216 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "common.cc",
218 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "crc32.cc",
220 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000221 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "diskcache.cc",
224 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700225 "filerotatingstream.cc",
226 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "fileutils.cc",
228 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "firewallsocketserver.cc",
230 "firewallsocketserver.h",
231 "flags.cc",
232 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000233 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "gunit_prod.h",
235 "helpers.cc",
236 "helpers.h",
237 "httpbase.cc",
238 "httpbase.h",
239 "httpclient.cc",
240 "httpclient.h",
241 "httpcommon-inl.h",
242 "httpcommon.cc",
243 "httpcommon.h",
244 "httprequest.cc",
245 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "iosfilesystem.mm",
247 "ipaddress.cc",
248 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "messagedigest.cc",
252 "messagedigest.h",
253 "messagehandler.cc",
254 "messagehandler.h",
255 "messagequeue.cc",
256 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "nethelpers.cc",
258 "nethelpers.h",
259 "network.cc",
260 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700261 "networkmonitor.cc",
262 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "pathutils.cc",
265 "pathutils.h",
266 "physicalsocketserver.cc",
267 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "proxydetect.cc",
269 "proxydetect.h",
270 "proxyinfo.cc",
271 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "ratelimiter.cc",
273 "ratelimiter.h",
274 "ratetracker.cc",
275 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200276 "rtccertificate.cc",
277 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "scoped_autorelease_pool.h",
279 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000280 "sha1.cc",
281 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000282 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "signalthread.cc",
285 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000286 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "sigslot.h",
288 "sigslotrepeater.h",
289 "socket.h",
290 "socketadapters.cc",
291 "socketadapters.h",
292 "socketaddress.cc",
293 "socketaddress.h",
294 "socketaddresspair.cc",
295 "socketaddresspair.h",
296 "socketfactory.h",
297 "socketpool.cc",
298 "socketpool.h",
299 "socketserver.h",
300 "socketstream.cc",
301 "socketstream.h",
302 "ssladapter.cc",
303 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "sslfingerprint.cc",
305 "sslfingerprint.h",
306 "sslidentity.cc",
307 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 "sslsocketfactory.cc",
309 "sslsocketfactory.h",
310 "sslstreamadapter.cc",
311 "sslstreamadapter.h",
312 "sslstreamadapterhelper.cc",
313 "sslstreamadapterhelper.h",
314 "stream.cc",
315 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "task.cc",
317 "task.h",
318 "taskparent.cc",
319 "taskparent.h",
320 "taskrunner.cc",
321 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "thread.cc",
323 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 "timing.cc",
325 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "urlencode.cc",
327 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 "worker.cc",
329 "worker.h",
330 ]
331
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000332 if (is_posix) {
333 sources += [
334 "unixfilesystem.cc",
335 "unixfilesystem.h",
336 ]
337 }
338
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000340 deps += [ "..:webrtc_common" ]
341
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700343 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000345
346 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700347 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000348 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349 ]
350
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000351 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000352 } else {
353 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "bandwidthsmoother.cc",
355 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 "bind.h",
357 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "callback.h",
359 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "fileutils_mock.h",
361 "genericslot.h",
362 "genericslot.h.pump",
363 "httpserver.cc",
364 "httpserver.h",
365 "json.cc",
366 "json.h",
tkchin93411912015-07-22 12:12:17 -0700367 "logsinks.cc",
368 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "mathutils.h",
370 "multipart.cc",
371 "multipart.h",
372 "natserver.cc",
373 "natserver.h",
374 "natsocketfactory.cc",
375 "natsocketfactory.h",
376 "nattypes.cc",
377 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "optionsfile.cc",
379 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "profiler.cc",
381 "profiler.h",
382 "proxyserver.cc",
383 "proxyserver.h",
384 "refcount.h",
385 "referencecountedsingletonfactory.h",
386 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200388 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000390 "sharedexclusivelock.cc",
391 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000392 "sslconfig.h",
393 "sslroots.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
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000407 deps += [ "..:webrtc_common" ]
408
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000409 if (is_posix) {
410 sources += [
411 "latebindingsymboltable.cc",
412 "latebindingsymboltable.cc.def",
413 "latebindingsymboltable.h",
414 "latebindingsymboltable.h.def",
415 "posix.cc",
416 "posix.h",
417 ]
418 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000419
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000420 if (is_linux) {
421 sources += [
422 "dbus.cc",
423 "dbus.h",
424 "libdbusglibsymboltable.cc",
425 "libdbusglibsymboltable.h",
426 "linuxfdwalk.c",
427 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000428 ]
429 }
430
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
476 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000477 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000478 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000479 deps += [ "//third_party/boringssl" ]
480 } else {
481 configs += [ "external_ssl_library" ]
482 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000483 sources += [
484 "openssl.h",
485 "openssladapter.cc",
486 "openssladapter.h",
487 "openssldigest.cc",
488 "openssldigest.h",
489 "opensslidentity.cc",
490 "opensslidentity.h",
491 "opensslstreamadapter.cc",
492 "opensslstreamadapter.h",
493 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000494 }
495
496 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000497 sources += [
498 "ifaddrs-android.cc",
499 "ifaddrs-android.h",
500 ]
501
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000502 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200504 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000506 }
507
508 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200509 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200510
511 sources += [
512 "macconversion.cc",
513 "macconversion.h",
514 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 }
516
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000517 if (use_x11) {
518 sources += [
519 "x11windowpicker.cc",
520 "x11windowpicker.h",
521 ]
522 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000523 "dl",
524 "rt",
525 "Xext",
526 "X11",
527 "Xcomposite",
528 "Xrender",
529 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000530 }
531
532 if (is_linux) {
533 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000534 "dl",
535 "rt",
536 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000537 }
538
539 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000540 sources += [
541 "maccocoathreadhelper.h",
542 "maccocoathreadhelper.mm",
543 "macconversion.cc",
544 "macconversion.h",
545 "macutils.cc",
546 "macutils.h",
547 ]
548
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000549 all_dependent_configs = [ ":mac_config" ]
550
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000551 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000552 all_dependent_configs += [ ":mac_x86_config" ]
553 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000554 }
555
556 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000557 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000558 "win32.cc",
559 "win32.h",
560 "win32filesystem.cc",
561 "win32filesystem.h",
562 "win32securityerrors.cc",
563 "win32window.cc",
564 "win32window.h",
565 "win32windowpicker.cc",
566 "win32windowpicker.h",
567 "winfirewall.cc",
568 "winfirewall.h",
569 "winping.cc",
570 "winping.h",
571 ]
572
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000573 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000574 "crypt32.lib",
575 "iphlpapi.lib",
576 "secur32.lib",
577 ]
578
579 cflags += [
580 # Suppress warnings about WIN32_LEAN_AND_MEAN.
581 "/wd4005",
582 "/wd4703",
583 ]
584
585 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000586 }
587
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000588 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000589 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000590 # _except_ for ios & mac. We want it there as well, e.g.
591 # because ASSERT and friends trigger off of it.
592 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000593 }
594
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000595 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000596 defines += [ "CARBON_DEPRECATED=YES" ]
597 }
598
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000599 if (is_linux || is_android) {
600 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000601 "linux.cc",
602 "linux.h",
603 ]
604 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700605
606 if (is_nacl) {
607 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
608 defines += [ "timezone=_timezone" ]
609 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000610}
tkchin42f580e2015-11-26 23:18:23 -0800611
612if (is_ios) {
613 source_set("rtc_base_objc") {
614 deps = [
615 ":rtc_base",
616 ]
617 cflags = [ "-fobjc-arc" ]
618 configs += [ "..:common_config" ]
619 public_configs = [ "..:common_inherited_config" ]
620
621 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800622 "objc/NSString+StdString.h",
623 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800624 "objc/RTCCameraPreviewView.h",
625 "objc/RTCCameraPreviewView.m",
626 "objc/RTCDispatcher.h",
627 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800628 "objc/RTCLogging.h",
629 "objc/RTCLogging.mm",
630 ]
631 }
632}