blob: cd7e5b51e598d40cdfce7e8be807309456bcd74c [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 -080013import("//build_overrides/webrtc.gni")
kjellander70bed7d2015-11-23 17:23:44 -080014
kjellander84ba8b62016-04-24 23:03:07 -070015config("rtc_base_approved_all_dependent_config") {
16 if (is_mac && !build_with_chromium) {
17 libs = [ "Foundation.framework" ] # needed for logging_mac.mm
18 }
19}
20
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000021config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000022 include_dirs = [
23 "//third_party/jsoncpp/overrides/include",
24 "//third_party/jsoncpp/source/include",
25 ]
26
27 defines = [
28 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000029 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000030 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000031}
32
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000033config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020034 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000035}
36
37config("openssl_config") {
38 defines = [
39 "SSL_USE_OPENSSL",
40 "HAVE_OPENSSL_SSL_H",
41 ]
42}
43
kjellanderb1f14062016-04-25 00:01:36 -070044config("rtc_base_all_dependent_config") {
45 if (is_ios) {
46 libs = [
47 "CFNetwork.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070048
kjellanderb1f14062016-04-25 00:01:36 -070049 #"Foundation.framework", # Already in //build/config:default_libs.
50 "Security.framework",
51 "SystemConfiguration.framework",
52 "UIKit.framework", # Already in //build/config:default_libs.
53 ]
54 }
55 if (is_mac) {
56 libs = [
57 "Cocoa.framework",
58 "Foundation.framework",
59 "IOKit.framework",
60 "Security.framework",
61 "SystemConfiguration.framework",
62 ]
63 if (current_cpu == "x86") {
64 libs = [ "Carbon.framework" ] # Already in //build/config:default_libs.
65 }
66 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000067}
68
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000069if (is_linux && !build_with_chromium) {
70 # Provides the same functionality as the //crypto:platform target, which
71 # WebRTC cannot use as we don't sync src/crypto from Chromium.
72 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070073 deps = [
74 "//third_party/boringssl",
75 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000076 }
77}
78
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000079if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000080 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000081 assert(rtc_ssl_root != "",
82 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
83 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000084 }
85}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000086
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000087# The subset of rtc_base approved for use outside of libjingle.
88static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +010089 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000090 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000091 public_configs = [ "..:common_inherited_config" ]
kjellander84ba8b62016-04-24 23:03:07 -070092 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000093
94 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +010095 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +020096 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +020097 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -070098 "bitbuffer.cc",
99 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200100 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200101 "bufferqueue.cc",
102 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700103 "bytebuffer.cc",
104 "bytebuffer.h",
105 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000106 "checks.cc",
107 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100108 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700109 "copyonwritebuffer.cc",
110 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200111 "criticalsection.cc",
112 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800113 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000114 "event.cc",
115 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000116 "event_tracer.cc",
117 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000118 "exp_filter.cc",
119 "exp_filter.h",
120 "md5.cc",
121 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000122 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000123 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700124 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700125 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100126 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000127 "platform_file.cc",
128 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200129 "platform_thread.cc",
130 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800131 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800132 "random.cc",
133 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800134 "rate_statistics.cc",
135 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700136 "ratetracker.cc",
137 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800138 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800139 "safe_conversions.h",
140 "safe_conversions_impl.h",
kwiberg6ab3db22016-05-11 05:07:26 -0700141 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800142 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000143 "stringencode.cc",
144 "stringencode.h",
145 "stringutils.cc",
146 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700147 "swap_queue.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",
Tommi09ca02e2016-04-24 17:32:48 +0200172 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700173 ]
174 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000175}
176
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000177static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000178 cflags = []
179 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000180 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700181 deps = [
182 "..:webrtc_common",
183 ]
Tommid44c0772016-03-11 17:12:32 -0800184 public_deps = [
185 ":rtc_base_approved",
186 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000188 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700190 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000191 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192 ]
193
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000194 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700196 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000197 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000198 ]
199
kjellanderb1f14062016-04-25 00:01:36 -0700200 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
201
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200202 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203
204 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000205 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "asyncfile.cc",
207 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700208 "asyncinvoker-inl.h",
209 "asyncinvoker.cc",
210 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000211 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000213 "asyncresolverinterface.cc",
214 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "asyncsocket.cc",
216 "asyncsocket.h",
217 "asynctcpsocket.cc",
218 "asynctcpsocket.h",
219 "asyncudpsocket.cc",
220 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "autodetectproxy.cc",
222 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "base64.cc",
224 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "common.cc",
226 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "crc32.cc",
228 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000229 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000231 "diskcache.cc",
232 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700233 "filerotatingstream.cc",
234 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "fileutils.cc",
236 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "firewallsocketserver.cc",
238 "firewallsocketserver.h",
239 "flags.cc",
240 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000241 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "gunit_prod.h",
243 "helpers.cc",
244 "helpers.h",
245 "httpbase.cc",
246 "httpbase.h",
247 "httpclient.cc",
248 "httpclient.h",
249 "httpcommon-inl.h",
250 "httpcommon.cc",
251 "httpcommon.h",
252 "httprequest.cc",
253 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "iosfilesystem.mm",
255 "ipaddress.cc",
256 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "messagedigest.cc",
259 "messagedigest.h",
260 "messagehandler.cc",
261 "messagehandler.h",
262 "messagequeue.cc",
263 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "nethelpers.cc",
265 "nethelpers.h",
266 "network.cc",
267 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700268 "networkmonitor.cc",
269 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700270 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000271 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700272 "openssl.h",
273 "openssladapter.cc",
274 "openssladapter.h",
275 "openssldigest.cc",
276 "openssldigest.h",
277 "opensslidentity.cc",
278 "opensslidentity.h",
279 "opensslstreamadapter.cc",
280 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "pathutils.cc",
282 "pathutils.h",
283 "physicalsocketserver.cc",
284 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "proxydetect.cc",
286 "proxydetect.h",
287 "proxyinfo.cc",
288 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "ratelimiter.cc",
290 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200291 "rtccertificate.cc",
292 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200293 "rtccertificategenerator.cc",
294 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "sha1.cc",
296 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000297 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000298 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800299 "sharedexclusivelock.cc",
300 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "signalthread.cc",
302 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000303 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "sigslot.h",
305 "sigslotrepeater.h",
306 "socket.h",
307 "socketadapters.cc",
308 "socketadapters.h",
309 "socketaddress.cc",
310 "socketaddress.h",
311 "socketaddresspair.cc",
312 "socketaddresspair.h",
313 "socketfactory.h",
314 "socketpool.cc",
315 "socketpool.h",
316 "socketserver.h",
317 "socketstream.cc",
318 "socketstream.h",
319 "ssladapter.cc",
320 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "sslfingerprint.cc",
322 "sslfingerprint.h",
323 "sslidentity.cc",
324 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "sslsocketfactory.cc",
326 "sslsocketfactory.h",
327 "sslstreamadapter.cc",
328 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "stream.cc",
330 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000331 "task.cc",
332 "task.h",
333 "taskparent.cc",
334 "taskparent.h",
335 "taskrunner.cc",
336 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "thread.cc",
338 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "timing.cc",
340 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 "urlencode.cc",
342 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 "worker.cc",
344 "worker.h",
345 ]
346
347 if (build_with_chromium) {
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 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "httpserver.cc",
365 "httpserver.h",
366 "json.cc",
367 "json.h",
tkchin93411912015-07-22 12:12:17 -0700368 "logsinks.cc",
369 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "mathutils.h",
371 "multipart.cc",
372 "multipart.h",
373 "natserver.cc",
374 "natserver.h",
375 "natsocketfactory.cc",
376 "natsocketfactory.h",
377 "nattypes.cc",
378 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "optionsfile.cc",
380 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 "profiler.cc",
382 "profiler.h",
383 "proxyserver.cc",
384 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "referencecountedsingletonfactory.h",
386 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200387 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "sslconfig.h",
390 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700391 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000392 "testclient.cc",
393 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "transformadapter.cc",
395 "transformadapter.h",
396 "versionparsing.cc",
397 "versionparsing.h",
398 "virtualsocketserver.cc",
399 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000400 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200402 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 ]
404
kjellandera8a7ef62016-04-05 08:13:31 -0700405 if (is_linux) {
406 sources += [
407 "dbus.cc",
408 "dbus.h",
409 "libdbusglibsymboltable.cc",
410 "libdbusglibsymboltable.h",
411 "linuxfdwalk.c",
412 "linuxfdwalk.h",
413 ]
414 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000415
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000416 if (is_posix) {
417 sources += [
418 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000419 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000420 "posix.cc",
421 "posix.h",
422 ]
423 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000424
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000425 if (is_mac) {
426 sources += [
427 "macasyncsocket.cc",
428 "macasyncsocket.h",
429 "maccocoasocketserver.h",
430 "maccocoasocketserver.mm",
431 "macsocketserver.cc",
432 "macsocketserver.h",
433 "macwindowpicker.cc",
434 "macwindowpicker.h",
435 ]
436 }
437
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000438 if (is_win) {
439 sources += [
440 "diskcache_win32.cc",
441 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000442 "win32regkey.cc",
443 "win32regkey.h",
444 "win32socketinit.cc",
445 "win32socketinit.h",
446 "win32socketserver.cc",
447 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000448 ]
449 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000450 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000451 deps += [ "//third_party/jsoncpp" ]
452 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000453 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000454
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000455 # When defined changes the include path for json.h to where it is
456 # expected to be when building json outside of the standalone build.
457 defines += [ "WEBRTC_EXTERNAL_JSON" ]
458 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000459 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000460
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000461 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000462 # compiler settings.
463 configs -= [ "//build/config/compiler:chromium_code" ]
464 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000465 if (!is_win) {
466 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000467 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468
svaldez7f7a8192016-04-18 11:13:11 -0700469 if (rtc_build_ssl) {
470 deps += [ "//third_party/boringssl" ]
471 } else {
472 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000473 }
474
475 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000476 sources += [
477 "ifaddrs-android.cc",
478 "ifaddrs-android.h",
479 ]
480
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000481 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000482 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200483 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000484 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000485 }
486
kjellandera8a7ef62016-04-05 08:13:31 -0700487 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200488 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700489 "maccocoathreadhelper.h",
490 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200491 "macconversion.cc",
492 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700493 "macifaddrs_converter.cc",
494 "scoped_autorelease_pool.h",
495 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200496 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000497 }
498
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000499 if (use_x11) {
500 sources += [
501 "x11windowpicker.cc",
502 "x11windowpicker.h",
503 ]
504 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 "dl",
506 "rt",
507 "Xext",
508 "X11",
509 "Xcomposite",
510 "Xrender",
511 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000512 }
513
514 if (is_linux) {
515 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000516 "dl",
517 "rt",
518 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 }
520
521 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000522 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000523 "macutils.cc",
524 "macutils.h",
525 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 }
527
528 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000529 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000530 "win32.cc",
531 "win32.h",
532 "win32filesystem.cc",
533 "win32filesystem.h",
534 "win32securityerrors.cc",
535 "win32window.cc",
536 "win32window.h",
537 "win32windowpicker.cc",
538 "win32windowpicker.h",
539 "winfirewall.cc",
540 "winfirewall.h",
541 "winping.cc",
542 "winping.h",
543 ]
544
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000545 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000546 "crypt32.lib",
547 "iphlpapi.lib",
548 "secur32.lib",
549 ]
550
551 cflags += [
552 # Suppress warnings about WIN32_LEAN_AND_MEAN.
553 "/wd4005",
554 "/wd4703",
555 ]
556
557 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000558 }
559
kjellandera8a7ef62016-04-05 08:13:31 -0700560 if (is_posix) {
561 sources += [
562 "ifaddrs_converter.cc",
563 "ifaddrs_converter.h",
564 "unixfilesystem.cc",
565 "unixfilesystem.h",
566 ]
567 if (is_debug) {
568 # The Chromium build/common.gypi defines this for all posix
569 # _except_ for ios & mac. We want it there as well, e.g.
570 # because ASSERT and friends trigger off of it.
571 defines += [ "_DEBUG" ]
572 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000573 }
574
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000575 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000576 defines += [ "CARBON_DEPRECATED=YES" ]
577 }
578
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000579 if (is_linux || is_android) {
580 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 "linux.cc",
582 "linux.h",
583 ]
584 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700585
586 if (is_nacl) {
587 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
588 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800589 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700590 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000591}
tkchin42f580e2015-11-26 23:18:23 -0800592
kjellander988d31e2016-02-05 00:23:50 -0800593source_set("gtest_prod") {
594 sources = [
595 "gtest_prod_util.h",
596 ]
597}