blob: 89f25a7eee7e3a4270fadaa85607de510ff32572 [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",
kwiberg45fd9fe2015-12-16 01:09:16 -0800122 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000123 "event.cc",
124 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000125 "event_tracer.cc",
126 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000127 "exp_filter.cc",
128 "exp_filter.h",
129 "md5.cc",
130 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000131 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "md5digest.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",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000141 "safe_conversions.h",
142 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200143 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000144 "stringencode.cc",
145 "stringencode.h",
146 "stringutils.cc",
147 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700148 "systeminfo.cc",
149 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000150 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000151 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000152 "thread_checker.h",
153 "thread_checker_impl.cc",
154 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000155 "timeutils.cc",
156 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000157 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000158 ]
Noah Richards915590e2015-04-22 15:43:08 -0700159
Peter Boström11e02292015-11-25 21:36:14 +0100160 if (build_with_chromium) {
161 # Dependency on chromium's logging (in //base).
162 deps += [ "//base:base" ]
163 sources += [
164 "../../webrtc_overrides/webrtc/base/logging.cc",
165 "../../webrtc_overrides/webrtc/base/logging.h",
166 ]
167 include_dirs = [ "../../webrtc_overrides" ]
168 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700169 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200170 "logging.cc",
171 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700172 ]
173 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000174}
175
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000176static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000177 cflags = []
178 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000179 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180 deps = [
181 ":rtc_base_approved",
182 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000186 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 ]
188
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000189 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000191 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 ]
193
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200194 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195
196 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000197 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 "asyncfile.cc",
199 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700200 "asyncinvoker-inl.h",
201 "asyncinvoker.cc",
202 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000203 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000204 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000205 "asyncresolverinterface.cc",
206 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000207 "asyncsocket.cc",
208 "asyncsocket.h",
209 "asynctcpsocket.cc",
210 "asynctcpsocket.h",
211 "asyncudpsocket.cc",
212 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "autodetectproxy.cc",
214 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "base64.cc",
216 "base64.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 += [
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800334 "ifaddrs-android.h",
335 "ifaddrs_converter.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000336 "unixfilesystem.cc",
337 "unixfilesystem.h",
338 ]
339 }
340
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 if (build_with_chromium) {
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000342 deps += [ "..:webrtc_common" ]
343
Guo-wei Shieh9faf1542015-12-28 14:06:55 -0800344 if (is_mac) {
345 sources += [ "macifaddrs_converter.cc" ]
346 }
347
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700349 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000350 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000351
352 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700353 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000354 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000355 ]
356
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000357 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000358 } else {
359 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "bandwidthsmoother.cc",
361 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "bind.h",
363 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "callback.h",
365 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "fileutils_mock.h",
367 "genericslot.h",
368 "genericslot.h.pump",
369 "httpserver.cc",
370 "httpserver.h",
371 "json.cc",
372 "json.h",
tkchin93411912015-07-22 12:12:17 -0700373 "logsinks.cc",
374 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000375 "mathutils.h",
376 "multipart.cc",
377 "multipart.h",
378 "natserver.cc",
379 "natserver.h",
380 "natsocketfactory.cc",
381 "natsocketfactory.h",
382 "nattypes.cc",
383 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "optionsfile.cc",
385 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "profiler.cc",
387 "profiler.h",
388 "proxyserver.cc",
389 "proxyserver.h",
390 "refcount.h",
391 "referencecountedsingletonfactory.h",
392 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200394 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000396 "sharedexclusivelock.cc",
397 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "sslconfig.h",
399 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "testclient.cc",
401 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "transformadapter.cc",
403 "transformadapter.h",
404 "versionparsing.cc",
405 "versionparsing.h",
406 "virtualsocketserver.cc",
407 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200410 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000411 ]
412
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000413 deps += [ "..:webrtc_common" ]
414
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 if (is_posix) {
416 sources += [
417 "latebindingsymboltable.cc",
418 "latebindingsymboltable.cc.def",
419 "latebindingsymboltable.h",
420 "latebindingsymboltable.h.def",
421 "posix.cc",
422 "posix.h",
423 ]
424 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000426 if (is_linux) {
427 sources += [
428 "dbus.cc",
429 "dbus.h",
430 "libdbusglibsymboltable.cc",
431 "libdbusglibsymboltable.h",
432 "linuxfdwalk.c",
433 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000434 ]
435 }
436
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000437 if (is_mac) {
438 sources += [
439 "macasyncsocket.cc",
440 "macasyncsocket.h",
441 "maccocoasocketserver.h",
442 "maccocoasocketserver.mm",
443 "macsocketserver.cc",
444 "macsocketserver.h",
445 "macwindowpicker.cc",
446 "macwindowpicker.h",
447 ]
448 }
449
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000450 if (is_win) {
451 sources += [
452 "diskcache_win32.cc",
453 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000454 "win32regkey.cc",
455 "win32regkey.h",
456 "win32socketinit.cc",
457 "win32socketinit.h",
458 "win32socketserver.cc",
459 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460 ]
461 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000462 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000463 deps += [ "//third_party/jsoncpp" ]
464 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000465 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000466
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000467 # When defined changes the include path for json.h to where it is
468 # expected to be when building json outside of the standalone build.
469 defines += [ "WEBRTC_EXTERNAL_JSON" ]
470 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000471 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000472
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000473 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000474 # compiler settings.
475 configs -= [ "//build/config/compiler:chromium_code" ]
476 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000477 if (!is_win) {
478 cflags += [ "-Wno-uninitialized" ]
479 cflags_cc += [ "-Wno-non-virtual-dtor" ]
480 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000481
482 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000483 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000484 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000485 deps += [ "//third_party/boringssl" ]
486 } else {
487 configs += [ "external_ssl_library" ]
488 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000489 sources += [
490 "openssl.h",
491 "openssladapter.cc",
492 "openssladapter.h",
493 "openssldigest.cc",
494 "openssldigest.h",
495 "opensslidentity.cc",
496 "opensslidentity.h",
497 "opensslstreamadapter.cc",
498 "opensslstreamadapter.h",
499 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 }
501
502 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000503 sources += [
504 "ifaddrs-android.cc",
505 "ifaddrs-android.h",
506 ]
507
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000508 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000509 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200510 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000511 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000512 }
513
514 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200515 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200516
517 sources += [
518 "macconversion.cc",
519 "macconversion.h",
520 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 }
522
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 if (use_x11) {
524 sources += [
525 "x11windowpicker.cc",
526 "x11windowpicker.h",
527 ]
528 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000529 "dl",
530 "rt",
531 "Xext",
532 "X11",
533 "Xcomposite",
534 "Xrender",
535 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000536 }
537
538 if (is_linux) {
539 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000540 "dl",
541 "rt",
542 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 }
544
545 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000546 sources += [
547 "maccocoathreadhelper.h",
548 "maccocoathreadhelper.mm",
549 "macconversion.cc",
550 "macconversion.h",
551 "macutils.cc",
552 "macutils.h",
553 ]
554
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000555 all_dependent_configs = [ ":mac_config" ]
556
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000557 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 all_dependent_configs += [ ":mac_x86_config" ]
559 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000560 }
561
562 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000563 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000564 "win32.cc",
565 "win32.h",
566 "win32filesystem.cc",
567 "win32filesystem.h",
568 "win32securityerrors.cc",
569 "win32window.cc",
570 "win32window.h",
571 "win32windowpicker.cc",
572 "win32windowpicker.h",
573 "winfirewall.cc",
574 "winfirewall.h",
575 "winping.cc",
576 "winping.h",
577 ]
578
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000579 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000580 "crypt32.lib",
581 "iphlpapi.lib",
582 "secur32.lib",
583 ]
584
585 cflags += [
586 # Suppress warnings about WIN32_LEAN_AND_MEAN.
587 "/wd4005",
588 "/wd4703",
589 ]
590
591 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 }
593
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000594 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000595 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000596 # _except_ for ios & mac. We want it there as well, e.g.
597 # because ASSERT and friends trigger off of it.
598 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 }
600
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000601 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000602 defines += [ "CARBON_DEPRECATED=YES" ]
603 }
604
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000605 if (is_linux || is_android) {
606 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607 "linux.cc",
608 "linux.h",
609 ]
610 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700611
612 if (is_nacl) {
613 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
614 defines += [ "timezone=_timezone" ]
615 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000616}
tkchin42f580e2015-11-26 23:18:23 -0800617
618if (is_ios) {
619 source_set("rtc_base_objc") {
620 deps = [
621 ":rtc_base",
622 ]
623 cflags = [ "-fobjc-arc" ]
624 configs += [ "..:common_config" ]
625 public_configs = [ "..:common_inherited_config" ]
626
627 sources = [
hjonaa32c3e2015-12-13 19:58:11 -0800628 "objc/NSString+StdString.h",
629 "objc/NSString+StdString.mm",
hayscedd8fef2015-12-08 11:08:39 -0800630 "objc/RTCCameraPreviewView.h",
631 "objc/RTCCameraPreviewView.m",
632 "objc/RTCDispatcher.h",
633 "objc/RTCDispatcher.m",
tkchin42f580e2015-11-26 23:18:23 -0800634 "objc/RTCLogging.h",
635 "objc/RTCLogging.mm",
636 ]
637 }
638}