blob: 09950a8f22d2dc38cf596d99bd57807f29823986 [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 ]
31
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020032 if (is_posix) {
33 # TODO(henrike): issue 3307, make rtc_base build without disabling
34 # these flags.
35 cflags_cc = [ "-Wno-non-virtual-dtor" ]
36 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000037}
38
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000039config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020040 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000041}
42
43config("openssl_config") {
44 defines = [
45 "SSL_USE_OPENSSL",
46 "HAVE_OPENSSL_SSL_H",
47 ]
48}
49
kjellanderb1f14062016-04-25 00:01:36 -070050config("rtc_base_all_dependent_config") {
51 if (is_ios) {
52 libs = [
53 "CFNetwork.framework",
Zeke Chin2d3b7e22015-07-14 12:55:44 -070054
kjellanderb1f14062016-04-25 00:01:36 -070055 #"Foundation.framework", # Already in //build/config:default_libs.
56 "Security.framework",
57 "SystemConfiguration.framework",
58 "UIKit.framework", # Already in //build/config:default_libs.
59 ]
60 }
61 if (is_mac) {
62 libs = [
63 "Cocoa.framework",
64 "Foundation.framework",
65 "IOKit.framework",
66 "Security.framework",
67 "SystemConfiguration.framework",
68 ]
69 if (current_cpu == "x86") {
70 libs = [ "Carbon.framework" ] # Already in //build/config:default_libs.
71 }
72 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000073}
74
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000075if (is_linux && !build_with_chromium) {
76 # Provides the same functionality as the //crypto:platform target, which
77 # WebRTC cannot use as we don't sync src/crypto from Chromium.
78 group("linux_system_ssl") {
svaldez7f7a8192016-04-18 11:13:11 -070079 deps = [
80 "//third_party/boringssl",
81 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000082 }
83}
84
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000085if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000086 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000087 assert(rtc_ssl_root != "",
88 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
89 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000090 }
91}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000092
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000093# The subset of rtc_base approved for use outside of libjingle.
94static_library("rtc_base_approved") {
Peter Boström11e02292015-11-25 21:36:14 +010095 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000096 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000097 public_configs = [ "..:common_inherited_config" ]
kjellander84ba8b62016-04-24 23:03:07 -070098 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000099
100 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +0100101 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +0200102 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +0200103 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -0700104 "bitbuffer.cc",
105 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200106 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200107 "bufferqueue.cc",
108 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700109 "bytebuffer.cc",
110 "bytebuffer.h",
111 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000112 "checks.cc",
113 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100114 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700115 "copyonwritebuffer.cc",
116 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200117 "criticalsection.cc",
118 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800119 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000120 "event.cc",
121 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000122 "event_tracer.cc",
123 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "exp_filter.cc",
125 "exp_filter.h",
126 "md5.cc",
127 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000128 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000129 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700130 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700131 "onetimeevent.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",
tkchinf75d0082016-02-23 22:49:42 -0800140 "rate_statistics.cc",
141 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700142 "ratetracker.cc",
143 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800144 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800145 "safe_conversions.h",
146 "safe_conversions_impl.h",
tommi04af8392016-02-14 08:11:10 -0800147 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000148 "stringencode.cc",
149 "stringencode.h",
150 "stringutils.cc",
151 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700152 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700153 "systeminfo.cc",
154 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000155 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000156 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000157 "thread_checker.h",
158 "thread_checker_impl.cc",
159 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 "timeutils.cc",
161 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000162 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000163 ]
Noah Richards915590e2015-04-22 15:43:08 -0700164
Peter Boström11e02292015-11-25 21:36:14 +0100165 if (build_with_chromium) {
166 # Dependency on chromium's logging (in //base).
167 deps += [ "//base:base" ]
168 sources += [
169 "../../webrtc_overrides/webrtc/base/logging.cc",
170 "../../webrtc_overrides/webrtc/base/logging.h",
171 ]
172 include_dirs = [ "../../webrtc_overrides" ]
173 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700174 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200175 "logging.cc",
176 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200177 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700178 ]
179 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000180}
181
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000182static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000183 cflags = []
184 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000185 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700186 deps = [
187 "..:webrtc_common",
188 ]
Tommid44c0772016-03-11 17:12:32 -0800189 public_deps = [
190 ":rtc_base_approved",
191 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000194 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700195 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000196 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 ]
198
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000199 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700201 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000202 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 ]
204
kjellanderb1f14062016-04-25 00:01:36 -0700205 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
206
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200207 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208
209 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000210 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 "asyncfile.cc",
212 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700213 "asyncinvoker-inl.h",
214 "asyncinvoker.cc",
215 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000216 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000218 "asyncresolverinterface.cc",
219 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "asyncsocket.cc",
221 "asyncsocket.h",
222 "asynctcpsocket.cc",
223 "asynctcpsocket.h",
224 "asyncudpsocket.cc",
225 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "autodetectproxy.cc",
227 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000228 "base64.cc",
229 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "common.cc",
231 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000232 "crc32.cc",
233 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000234 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "diskcache.cc",
237 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700238 "filerotatingstream.cc",
239 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000240 "fileutils.cc",
241 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "firewallsocketserver.cc",
243 "firewallsocketserver.h",
244 "flags.cc",
245 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000246 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "gunit_prod.h",
248 "helpers.cc",
249 "helpers.h",
250 "httpbase.cc",
251 "httpbase.h",
252 "httpclient.cc",
253 "httpclient.h",
254 "httpcommon-inl.h",
255 "httpcommon.cc",
256 "httpcommon.h",
257 "httprequest.cc",
258 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "iosfilesystem.mm",
260 "ipaddress.cc",
261 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000263 "messagedigest.cc",
264 "messagedigest.h",
265 "messagehandler.cc",
266 "messagehandler.h",
267 "messagequeue.cc",
268 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000269 "nethelpers.cc",
270 "nethelpers.h",
271 "network.cc",
272 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700273 "networkmonitor.cc",
274 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700275 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000276 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700277 "openssl.h",
278 "openssladapter.cc",
279 "openssladapter.h",
280 "openssldigest.cc",
281 "openssldigest.h",
282 "opensslidentity.cc",
283 "opensslidentity.h",
284 "opensslstreamadapter.cc",
285 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000286 "pathutils.cc",
287 "pathutils.h",
288 "physicalsocketserver.cc",
289 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000290 "proxydetect.cc",
291 "proxydetect.h",
292 "proxyinfo.cc",
293 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "ratelimiter.cc",
295 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200296 "rtccertificate.cc",
297 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200298 "rtccertificategenerator.cc",
299 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000300 "sha1.cc",
301 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000302 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000303 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800304 "sharedexclusivelock.cc",
305 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000306 "signalthread.cc",
307 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000308 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "sigslot.h",
310 "sigslotrepeater.h",
311 "socket.h",
312 "socketadapters.cc",
313 "socketadapters.h",
314 "socketaddress.cc",
315 "socketaddress.h",
316 "socketaddresspair.cc",
317 "socketaddresspair.h",
318 "socketfactory.h",
319 "socketpool.cc",
320 "socketpool.h",
321 "socketserver.h",
322 "socketstream.cc",
323 "socketstream.h",
324 "ssladapter.cc",
325 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "sslfingerprint.cc",
327 "sslfingerprint.h",
328 "sslidentity.cc",
329 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000330 "sslsocketfactory.cc",
331 "sslsocketfactory.h",
332 "sslstreamadapter.cc",
333 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000334 "stream.cc",
335 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000336 "task.cc",
337 "task.h",
338 "taskparent.cc",
339 "taskparent.h",
340 "taskrunner.cc",
341 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000342 "thread.cc",
343 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "timing.cc",
345 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 "urlencode.cc",
347 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 "worker.cc",
349 "worker.h",
350 ]
351
352 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700354 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356
357 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700358 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000359 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000360 ]
361
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000362 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000363 } else {
364 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "bandwidthsmoother.cc",
366 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000369 "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",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000390 "referencecountedsingletonfactory.h",
391 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200392 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "sslconfig.h",
395 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700396 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "testclient.cc",
398 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "transformadapter.cc",
400 "transformadapter.h",
401 "versionparsing.cc",
402 "versionparsing.h",
403 "virtualsocketserver.cc",
404 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000406 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200407 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 ]
409
kjellandera8a7ef62016-04-05 08:13:31 -0700410 if (is_linux) {
411 sources += [
412 "dbus.cc",
413 "dbus.h",
414 "libdbusglibsymboltable.cc",
415 "libdbusglibsymboltable.h",
416 "linuxfdwalk.c",
417 "linuxfdwalk.h",
418 ]
419 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000420
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000421 if (is_posix) {
422 sources += [
423 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000424 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000425 "posix.cc",
426 "posix.h",
427 ]
428 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000429
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000430 if (is_mac) {
431 sources += [
432 "macasyncsocket.cc",
433 "macasyncsocket.h",
434 "maccocoasocketserver.h",
435 "maccocoasocketserver.mm",
436 "macsocketserver.cc",
437 "macsocketserver.h",
438 "macwindowpicker.cc",
439 "macwindowpicker.h",
440 ]
441 }
442
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000443 if (is_win) {
444 sources += [
445 "diskcache_win32.cc",
446 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000447 "win32regkey.cc",
448 "win32regkey.h",
449 "win32socketinit.cc",
450 "win32socketinit.h",
451 "win32socketserver.cc",
452 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453 ]
454 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000455 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000456 deps += [ "//third_party/jsoncpp" ]
457 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000458 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000460 # When defined changes the include path for json.h to where it is
461 # expected to be when building json outside of the standalone build.
462 defines += [ "WEBRTC_EXTERNAL_JSON" ]
463 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000464 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000466 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000467 # compiler settings.
468 configs -= [ "//build/config/compiler:chromium_code" ]
469 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000470 if (!is_win) {
471 cflags += [ "-Wno-uninitialized" ]
472 cflags_cc += [ "-Wno-non-virtual-dtor" ]
473 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000474
svaldez7f7a8192016-04-18 11:13:11 -0700475 if (rtc_build_ssl) {
476 deps += [ "//third_party/boringssl" ]
477 } else {
478 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479 }
480
481 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000482 sources += [
483 "ifaddrs-android.cc",
484 "ifaddrs-android.h",
485 ]
486
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000487 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000488 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200489 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000490 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491 }
492
kjellandera8a7ef62016-04-05 08:13:31 -0700493 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200494 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700495 "maccocoathreadhelper.h",
496 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200497 "macconversion.cc",
498 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700499 "macifaddrs_converter.cc",
500 "scoped_autorelease_pool.h",
501 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200502 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503 }
504
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000505 if (use_x11) {
506 sources += [
507 "x11windowpicker.cc",
508 "x11windowpicker.h",
509 ]
510 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000511 "dl",
512 "rt",
513 "Xext",
514 "X11",
515 "Xcomposite",
516 "Xrender",
517 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000518 }
519
520 if (is_linux) {
521 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000522 "dl",
523 "rt",
524 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000525 }
526
527 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000528 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000529 "macutils.cc",
530 "macutils.h",
531 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 }
533
534 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000535 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000536 "win32.cc",
537 "win32.h",
538 "win32filesystem.cc",
539 "win32filesystem.h",
540 "win32securityerrors.cc",
541 "win32window.cc",
542 "win32window.h",
543 "win32windowpicker.cc",
544 "win32windowpicker.h",
545 "winfirewall.cc",
546 "winfirewall.h",
547 "winping.cc",
548 "winping.h",
549 ]
550
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000551 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000552 "crypt32.lib",
553 "iphlpapi.lib",
554 "secur32.lib",
555 ]
556
557 cflags += [
558 # Suppress warnings about WIN32_LEAN_AND_MEAN.
559 "/wd4005",
560 "/wd4703",
561 ]
562
563 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000564 }
565
kjellandera8a7ef62016-04-05 08:13:31 -0700566 if (is_posix) {
567 sources += [
568 "ifaddrs_converter.cc",
569 "ifaddrs_converter.h",
570 "unixfilesystem.cc",
571 "unixfilesystem.h",
572 ]
573 if (is_debug) {
574 # The Chromium build/common.gypi defines this for all posix
575 # _except_ for ios & mac. We want it there as well, e.g.
576 # because ASSERT and friends trigger off of it.
577 defines += [ "_DEBUG" ]
578 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000579 }
580
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000581 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000582 defines += [ "CARBON_DEPRECATED=YES" ]
583 }
584
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000585 if (is_linux || is_android) {
586 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000587 "linux.cc",
588 "linux.h",
589 ]
590 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700591
592 if (is_nacl) {
593 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
594 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800595 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700596 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000597}
tkchin42f580e2015-11-26 23:18:23 -0800598
kjellander988d31e2016-02-05 00:23:50 -0800599source_set("gtest_prod") {
600 sources = [
601 "gtest_prod_util.h",
602 ]
603}