blob: 4c2b54c24b61c981df19a5bfa23c370386cb083d [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",
tommiebfbab52016-03-19 11:36:18 -0700120 "copyonwritebuffer.cc",
121 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200122 "criticalsection.cc",
123 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800124 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000125 "event.cc",
126 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000127 "event_tracer.cc",
128 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "exp_filter.cc",
130 "exp_filter.h",
131 "md5.cc",
132 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000133 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000134 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700135 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700136 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100137 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000138 "platform_file.cc",
139 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200140 "platform_thread.cc",
141 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800142 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800143 "random.cc",
144 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800145 "rate_statistics.cc",
146 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700147 "ratetracker.cc",
148 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800149 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800150 "safe_conversions.h",
151 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200152 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800153 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000154 "stringencode.cc",
155 "stringencode.h",
156 "stringutils.cc",
157 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700158 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700159 "systeminfo.cc",
160 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000161 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000162 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000163 "thread_checker.h",
164 "thread_checker_impl.cc",
165 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000166 "timeutils.cc",
167 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000168 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000169 ]
Noah Richards915590e2015-04-22 15:43:08 -0700170
Peter Boström11e02292015-11-25 21:36:14 +0100171 if (build_with_chromium) {
172 # Dependency on chromium's logging (in //base).
173 deps += [ "//base:base" ]
174 sources += [
175 "../../webrtc_overrides/webrtc/base/logging.cc",
176 "../../webrtc_overrides/webrtc/base/logging.h",
177 ]
178 include_dirs = [ "../../webrtc_overrides" ]
179 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700180 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200181 "logging.cc",
182 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700183 ]
184 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000185}
186
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000187static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188 cflags = []
189 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000190 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700191 deps = [
192 "..:webrtc_common",
193 ]
Tommid44c0772016-03-11 17:12:32 -0800194 public_deps = [
195 ":rtc_base_approved",
196 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700200 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000201 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 ]
203
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000204 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000205 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700206 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000207 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 ]
209
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200210 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211
212 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000213 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "asyncfile.cc",
215 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700216 "asyncinvoker-inl.h",
217 "asyncinvoker.cc",
218 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000219 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000221 "asyncresolverinterface.cc",
222 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "asyncsocket.cc",
224 "asyncsocket.h",
225 "asynctcpsocket.cc",
226 "asynctcpsocket.h",
227 "asyncudpsocket.cc",
228 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "autodetectproxy.cc",
230 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "base64.cc",
232 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "common.cc",
234 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "crc32.cc",
236 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000237 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "diskcache.cc",
240 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700241 "filerotatingstream.cc",
242 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "fileutils.cc",
244 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "firewallsocketserver.cc",
246 "firewallsocketserver.h",
247 "flags.cc",
248 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000249 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "gunit_prod.h",
251 "helpers.cc",
252 "helpers.h",
253 "httpbase.cc",
254 "httpbase.h",
255 "httpclient.cc",
256 "httpclient.h",
257 "httpcommon-inl.h",
258 "httpcommon.cc",
259 "httpcommon.h",
260 "httprequest.cc",
261 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "iosfilesystem.mm",
263 "ipaddress.cc",
264 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "messagedigest.cc",
267 "messagedigest.h",
268 "messagehandler.cc",
269 "messagehandler.h",
270 "messagequeue.cc",
271 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "nethelpers.cc",
273 "nethelpers.h",
274 "network.cc",
275 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700276 "networkmonitor.cc",
277 "networkmonitor.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "pathutils.cc",
280 "pathutils.h",
281 "physicalsocketserver.cc",
282 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000283 "proxydetect.cc",
284 "proxydetect.h",
285 "proxyinfo.cc",
286 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "ratelimiter.cc",
288 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200289 "rtccertificate.cc",
290 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200291 "rtccertificategenerator.cc",
292 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "sha1.cc",
294 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000295 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000296 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800297 "sharedexclusivelock.cc",
298 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "signalthread.cc",
300 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000301 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "sigslot.h",
303 "sigslotrepeater.h",
304 "socket.h",
305 "socketadapters.cc",
306 "socketadapters.h",
307 "socketaddress.cc",
308 "socketaddress.h",
309 "socketaddresspair.cc",
310 "socketaddresspair.h",
311 "socketfactory.h",
312 "socketpool.cc",
313 "socketpool.h",
314 "socketserver.h",
315 "socketstream.cc",
316 "socketstream.h",
317 "ssladapter.cc",
318 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000319 "sslfingerprint.cc",
320 "sslfingerprint.h",
321 "sslidentity.cc",
322 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "sslsocketfactory.cc",
324 "sslsocketfactory.h",
325 "sslstreamadapter.cc",
326 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "stream.cc",
328 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "task.cc",
330 "task.h",
331 "taskparent.cc",
332 "taskparent.h",
333 "taskrunner.cc",
334 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "thread.cc",
336 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "timing.cc",
338 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "urlencode.cc",
340 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "worker.cc",
342 "worker.h",
343 ]
344
345 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700347 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349
350 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700351 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000352 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353 ]
354
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000355 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356 } else {
357 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "bandwidthsmoother.cc",
359 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "bind.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "referencecountedsingletonfactory.h",
385 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200386 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "sslconfig.h",
389 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700390 "testbase64.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
kjellandera8a7ef62016-04-05 08:13:31 -0700404 if (is_linux) {
405 sources += [
406 "dbus.cc",
407 "dbus.h",
408 "libdbusglibsymboltable.cc",
409 "libdbusglibsymboltable.h",
410 "linuxfdwalk.c",
411 "linuxfdwalk.h",
412 ]
413 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000414
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 if (is_posix) {
416 sources += [
417 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000418 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000419 "posix.cc",
420 "posix.h",
421 ]
422 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000423
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000424 if (is_mac) {
425 sources += [
426 "macasyncsocket.cc",
427 "macasyncsocket.h",
428 "maccocoasocketserver.h",
429 "maccocoasocketserver.mm",
430 "macsocketserver.cc",
431 "macsocketserver.h",
432 "macwindowpicker.cc",
433 "macwindowpicker.h",
434 ]
435 }
436
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000437 if (is_win) {
438 sources += [
439 "diskcache_win32.cc",
440 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000441 "win32regkey.cc",
442 "win32regkey.h",
443 "win32socketinit.cc",
444 "win32socketinit.h",
445 "win32socketserver.cc",
446 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000447 ]
448 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000449 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000450 deps += [ "//third_party/jsoncpp" ]
451 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000452 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000454 # When defined changes the include path for json.h to where it is
455 # expected to be when building json outside of the standalone build.
456 defines += [ "WEBRTC_EXTERNAL_JSON" ]
457 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000458 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000460 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000461 # compiler settings.
462 configs -= [ "//build/config/compiler:chromium_code" ]
463 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000464 if (!is_win) {
465 cflags += [ "-Wno-uninitialized" ]
466 cflags_cc += [ "-Wno-non-virtual-dtor" ]
467 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200469 # TODO(kjellander): The use_openssl block should really go away in order for
470 # the GN build to be similar to the GYP build. See http://crbug.com/601042 for
471 # more details.
472 if (use_openssl) {
473 if (rtc_build_ssl) {
474 deps += [ "//third_party/boringssl" ]
475 } else {
476 configs += [ "external_ssl_library" ]
477 }
478 sources += [
479 "openssl.h",
480 "openssladapter.cc",
481 "openssladapter.h",
482 "openssldigest.cc",
483 "openssldigest.h",
484 "opensslidentity.cc",
485 "opensslidentity.h",
486 "opensslstreamadapter.cc",
487 "opensslstreamadapter.h",
488 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489 }
490
491 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000492 sources += [
493 "ifaddrs-android.cc",
494 "ifaddrs-android.h",
495 ]
496
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000497 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000498 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200499 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000501 }
502
kjellandera8a7ef62016-04-05 08:13:31 -0700503 if (is_ios || is_mac) {
kjellander@webrtc.orgd31b6642016-04-06 17:18:36 +0200504 if (is_ios) {
505 all_dependent_configs = [ ":ios_config" ]
506 }
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200507 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700508 "maccocoathreadhelper.h",
509 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200510 "macconversion.cc",
511 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700512 "macifaddrs_converter.cc",
513 "scoped_autorelease_pool.h",
514 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200515 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 }
517
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 if (use_x11) {
519 sources += [
520 "x11windowpicker.cc",
521 "x11windowpicker.h",
522 ]
523 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000524 "dl",
525 "rt",
526 "Xext",
527 "X11",
528 "Xcomposite",
529 "Xrender",
530 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000531 }
532
533 if (is_linux) {
534 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000535 "dl",
536 "rt",
537 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 }
539
540 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000541 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000542 "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
kjellandera8a7ef62016-04-05 08:13:31 -0700585 if (is_posix) {
586 sources += [
587 "ifaddrs_converter.cc",
588 "ifaddrs_converter.h",
589 "unixfilesystem.cc",
590 "unixfilesystem.h",
591 ]
592 if (is_debug) {
593 # The Chromium build/common.gypi defines this for all posix
594 # _except_ for ios & mac. We want it there as well, e.g.
595 # because ASSERT and friends trigger off of it.
596 defines += [ "_DEBUG" ]
597 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000598 }
599
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000600 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000601 defines += [ "CARBON_DEPRECATED=YES" ]
602 }
603
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000604 if (is_linux || is_android) {
605 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000606 "linux.cc",
607 "linux.h",
608 ]
609 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700610
611 if (is_nacl) {
612 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
613 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800614 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700615 }
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",
tkchin4f735d12016-03-03 17:54:28 -0800634 "objc/RTCFieldTrials.h",
635 "objc/RTCFieldTrials.mm",
Jon Hjelle6140fcc2016-02-24 16:33:12 -0800636 "objc/RTCFileLogger.h",
637 "objc/RTCFileLogger.mm",
tkchin42f580e2015-11-26 23:18:23 -0800638 "objc/RTCLogging.h",
639 "objc/RTCLogging.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800640 "objc/RTCMacros.h",
Jon Hjelleda99da82016-01-20 13:40:30 -0800641 "objc/RTCSSLAdapter.h",
642 "objc/RTCSSLAdapter.mm",
tkchind1fb26d2016-02-03 01:51:18 -0800643 "objc/RTCTracing.h",
644 "objc/RTCTracing.mm",
tkchin5ed5ed92016-03-08 10:51:54 -0800645 "objc/RTCUIApplication.h",
646 "objc/RTCUIApplication.mm",
tkchin42f580e2015-11-26 23:18:23 -0800647 ]
648 }
649}
kjellander988d31e2016-02-05 00:23:50 -0800650
651source_set("gtest_prod") {
652 sources = [
653 "gtest_prod_util.h",
654 ]
655}