blob: 9f7c7591edaccf4c10a6127562adbba3a36d4dcf [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") {
tommic06b1332016-05-14 11:31:40 -070089 defines = []
Peter Boström11e02292015-11-25 21:36:14 +010090 deps = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000091 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000092 public_configs = [ "..:common_inherited_config" ]
kjellander84ba8b62016-04-24 23:03:07 -070093 all_dependent_configs = [ ":rtc_base_approved_all_dependent_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +000094
95 sources = [
Karl Wiberge2a83ee2015-10-26 19:51:29 +010096 "array_view.h",
Peter Boströmff019b02015-04-30 14:16:07 +020097 "atomicops.h",
Tommicc4fdde2016-04-22 19:34:59 +020098 "bind.h",
Noah Richards915590e2015-04-22 15:43:08 -070099 "bitbuffer.cc",
100 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200101 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200102 "bufferqueue.cc",
103 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700104 "bytebuffer.cc",
105 "bytebuffer.h",
106 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000107 "checks.cc",
108 "checks.h",
Peter Boströmfd5dae32015-11-26 12:54:24 +0100109 "constructormagic.h",
tommiebfbab52016-03-19 11:36:18 -0700110 "copyonwritebuffer.cc",
111 "copyonwritebuffer.h",
Tommi494f2092015-04-27 17:39:23 +0200112 "criticalsection.cc",
113 "criticalsection.h",
kwiberg45fd9fe2015-12-16 01:09:16 -0800114 "deprecation.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000115 "event.cc",
116 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000117 "event_tracer.cc",
118 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000119 "exp_filter.cc",
120 "exp_filter.h",
121 "md5.cc",
122 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000123 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "md5digest.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700125 "mod_ops.h",
skvlad98bb6642016-04-07 15:36:45 -0700126 "onetimeevent.h",
Karl Wibergbe579832015-11-10 22:34:18 +0100127 "optional.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000128 "platform_file.cc",
129 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200130 "platform_thread.cc",
131 "platform_thread.h",
pbos12411ef2015-11-23 14:47:56 -0800132 "platform_thread_types.h",
terelius84e78f92015-12-10 01:50:55 -0800133 "random.cc",
134 "random.h",
tkchinf75d0082016-02-23 22:49:42 -0800135 "rate_statistics.cc",
136 "rate_statistics.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700137 "ratetracker.cc",
138 "ratetracker.h",
tommi04af8392016-02-14 08:11:10 -0800139 "refcount.h",
Tommid44c0772016-03-11 17:12:32 -0800140 "safe_conversions.h",
141 "safe_conversions_impl.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 }
tommi09c60da2016-05-24 11:40:35 -0700175}
176
177static_library("rtc_task_queue") {
178 public_deps = [ ":rtc_base_approved" ]
179 configs += [ "..:common_config" ]
180
181 sources = [
182 "task_queue.h",
183 "task_queue_posix.h",
184 ]
tommic06b1332016-05-14 11:31:40 -0700185
phoglundff274392016-05-17 03:44:28 -0700186 if (rtc_build_libevent) {
tommi09c60da2016-05-24 11:40:35 -0700187 deps = [ "//base/third_party/libevent" ]
tommic06b1332016-05-14 11:31:40 -0700188 }
tommi09c60da2016-05-24 11:40:35 -0700189
phoglundff274392016-05-17 03:44:28 -0700190 if (rtc_enable_libevent) {
191 sources += [
192 "task_queue_libevent.cc",
193 "task_queue_posix.cc",
194 ]
195 } else {
phoglundff274392016-05-17 03:44:28 -0700196 if (is_mac || is_ios) {
197 sources += [
198 "task_queue_gcd.cc",
199 "task_queue_posix.cc",
200 ]
201 }
202 if (is_win) {
203 sources += [ "task_queue_win.cc" ]
204 }
tommic06b1332016-05-14 11:31:40 -0700205 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000206}
207
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000208static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000209 cflags = []
210 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000211 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700212 deps = [
213 "..:webrtc_common",
214 ]
Tommid44c0772016-03-11 17:12:32 -0800215 public_deps = [
216 ":rtc_base_approved",
217 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000220 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700221 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000222 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 ]
224
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000225 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700227 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000228 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 ]
230
kjellanderb1f14062016-04-25 00:01:36 -0700231 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
232
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200233 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234
235 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000236 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000237 "asyncfile.cc",
238 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700239 "asyncinvoker-inl.h",
240 "asyncinvoker.cc",
241 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000242 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000243 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000244 "asyncresolverinterface.cc",
245 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "asyncsocket.cc",
247 "asyncsocket.h",
248 "asynctcpsocket.cc",
249 "asynctcpsocket.h",
250 "asyncudpsocket.cc",
251 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "autodetectproxy.cc",
253 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "base64.cc",
255 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "common.cc",
257 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "crc32.cc",
259 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000260 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "diskcache.cc",
263 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700264 "filerotatingstream.cc",
265 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "fileutils.cc",
267 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000268 "firewallsocketserver.cc",
269 "firewallsocketserver.h",
270 "flags.cc",
271 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000272 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000273 "gunit_prod.h",
274 "helpers.cc",
275 "helpers.h",
276 "httpbase.cc",
277 "httpbase.h",
278 "httpclient.cc",
279 "httpclient.h",
280 "httpcommon-inl.h",
281 "httpcommon.cc",
282 "httpcommon.h",
283 "httprequest.cc",
284 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000285 "iosfilesystem.mm",
286 "ipaddress.cc",
287 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "messagedigest.cc",
290 "messagedigest.h",
291 "messagehandler.cc",
292 "messagehandler.h",
293 "messagequeue.cc",
294 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "nethelpers.cc",
296 "nethelpers.h",
297 "network.cc",
298 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700299 "networkmonitor.cc",
300 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700301 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700303 "openssl.h",
304 "openssladapter.cc",
305 "openssladapter.h",
306 "openssldigest.cc",
307 "openssldigest.h",
308 "opensslidentity.cc",
309 "opensslidentity.h",
310 "opensslstreamadapter.cc",
311 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 "pathutils.cc",
313 "pathutils.h",
314 "physicalsocketserver.cc",
315 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "proxydetect.cc",
317 "proxydetect.h",
318 "proxyinfo.cc",
319 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "ratelimiter.cc",
321 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200322 "rtccertificate.cc",
323 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200324 "rtccertificategenerator.cc",
325 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "sha1.cc",
327 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000328 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000329 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800330 "sharedexclusivelock.cc",
331 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000332 "signalthread.cc",
333 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000334 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "sigslot.h",
336 "sigslotrepeater.h",
337 "socket.h",
338 "socketadapters.cc",
339 "socketadapters.h",
340 "socketaddress.cc",
341 "socketaddress.h",
342 "socketaddresspair.cc",
343 "socketaddresspair.h",
344 "socketfactory.h",
345 "socketpool.cc",
346 "socketpool.h",
347 "socketserver.h",
348 "socketstream.cc",
349 "socketstream.h",
350 "ssladapter.cc",
351 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 "sslfingerprint.cc",
353 "sslfingerprint.h",
354 "sslidentity.cc",
355 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 "sslsocketfactory.cc",
357 "sslsocketfactory.h",
358 "sslstreamadapter.cc",
359 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "stream.cc",
361 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "task.cc",
363 "task.h",
364 "taskparent.cc",
365 "taskparent.h",
366 "taskrunner.cc",
367 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "thread.cc",
369 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000370 "timing.cc",
371 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "urlencode.cc",
373 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "worker.cc",
375 "worker.h",
376 ]
377
378 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700380 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000381 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000382
383 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700384 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000385 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000386 ]
387
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000388 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000389 } else {
390 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "bandwidthsmoother.cc",
392 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "httpserver.cc",
396 "httpserver.h",
397 "json.cc",
398 "json.h",
tkchin93411912015-07-22 12:12:17 -0700399 "logsinks.cc",
400 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "mathutils.h",
402 "multipart.cc",
403 "multipart.h",
404 "natserver.cc",
405 "natserver.h",
406 "natsocketfactory.cc",
407 "natsocketfactory.h",
408 "nattypes.cc",
409 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000410 "optionsfile.cc",
411 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412 "profiler.cc",
413 "profiler.h",
414 "proxyserver.cc",
415 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "referencecountedsingletonfactory.h",
417 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200418 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000419 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000420 "sslconfig.h",
421 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700422 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000423 "testclient.cc",
424 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425 "transformadapter.cc",
426 "transformadapter.h",
427 "versionparsing.cc",
428 "versionparsing.h",
429 "virtualsocketserver.cc",
430 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000431 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000432 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200433 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000434 ]
435
kjellandera8a7ef62016-04-05 08:13:31 -0700436 if (is_linux) {
437 sources += [
438 "dbus.cc",
439 "dbus.h",
440 "libdbusglibsymboltable.cc",
441 "libdbusglibsymboltable.h",
442 "linuxfdwalk.c",
443 "linuxfdwalk.h",
444 ]
445 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000446
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000447 if (is_posix) {
448 sources += [
449 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000450 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000451 "posix.cc",
452 "posix.h",
453 ]
454 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000455
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000456 if (is_mac) {
457 sources += [
458 "macasyncsocket.cc",
459 "macasyncsocket.h",
460 "maccocoasocketserver.h",
461 "maccocoasocketserver.mm",
462 "macsocketserver.cc",
463 "macsocketserver.h",
464 "macwindowpicker.cc",
465 "macwindowpicker.h",
466 ]
467 }
468
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000469 if (is_win) {
470 sources += [
471 "diskcache_win32.cc",
472 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000473 "win32regkey.cc",
474 "win32regkey.h",
475 "win32socketinit.cc",
476 "win32socketinit.h",
477 "win32socketserver.cc",
478 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000479 ]
480 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000481 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000482 deps += [ "//third_party/jsoncpp" ]
483 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000484 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000485
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000486 # When defined changes the include path for json.h to where it is
487 # expected to be when building json outside of the standalone build.
488 defines += [ "WEBRTC_EXTERNAL_JSON" ]
489 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000490 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000492 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000493 # compiler settings.
494 configs -= [ "//build/config/compiler:chromium_code" ]
495 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000496 if (!is_win) {
497 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000498 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000499
svaldez7f7a8192016-04-18 11:13:11 -0700500 if (rtc_build_ssl) {
501 deps += [ "//third_party/boringssl" ]
502 } else {
503 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000504 }
505
506 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000507 sources += [
508 "ifaddrs-android.cc",
509 "ifaddrs-android.h",
510 ]
511
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000512 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000513 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200514 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000515 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000516 }
517
kjellandera8a7ef62016-04-05 08:13:31 -0700518 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200519 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700520 "maccocoathreadhelper.h",
521 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200522 "macconversion.cc",
523 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700524 "macifaddrs_converter.cc",
525 "scoped_autorelease_pool.h",
526 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200527 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000528 }
529
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000530 if (use_x11) {
531 sources += [
532 "x11windowpicker.cc",
533 "x11windowpicker.h",
534 ]
535 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000536 "dl",
537 "rt",
538 "Xext",
539 "X11",
540 "Xcomposite",
541 "Xrender",
542 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000543 }
544
545 if (is_linux) {
546 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000547 "dl",
548 "rt",
549 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 }
551
552 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000553 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000554 "macutils.cc",
555 "macutils.h",
556 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000557 }
558
559 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000560 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000561 "win32.cc",
562 "win32.h",
563 "win32filesystem.cc",
564 "win32filesystem.h",
565 "win32securityerrors.cc",
566 "win32window.cc",
567 "win32window.h",
568 "win32windowpicker.cc",
569 "win32windowpicker.h",
570 "winfirewall.cc",
571 "winfirewall.h",
572 "winping.cc",
573 "winping.h",
574 ]
575
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000576 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000577 "crypt32.lib",
578 "iphlpapi.lib",
579 "secur32.lib",
580 ]
581
582 cflags += [
583 # Suppress warnings about WIN32_LEAN_AND_MEAN.
584 "/wd4005",
585 "/wd4703",
586 ]
587
588 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000589 }
590
kjellandera8a7ef62016-04-05 08:13:31 -0700591 if (is_posix) {
592 sources += [
593 "ifaddrs_converter.cc",
594 "ifaddrs_converter.h",
595 "unixfilesystem.cc",
596 "unixfilesystem.h",
597 ]
598 if (is_debug) {
599 # The Chromium build/common.gypi defines this for all posix
600 # _except_ for ios & mac. We want it there as well, e.g.
601 # because ASSERT and friends trigger off of it.
602 defines += [ "_DEBUG" ]
603 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 }
605
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000606 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000607 defines += [ "CARBON_DEPRECATED=YES" ]
608 }
609
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000610 if (is_linux || is_android) {
611 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000612 "linux.cc",
613 "linux.h",
614 ]
615 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700616
617 if (is_nacl) {
618 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
619 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800620 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700621 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000622}
tkchin42f580e2015-11-26 23:18:23 -0800623
kjellander988d31e2016-02-05 00:23:50 -0800624source_set("gtest_prod") {
625 sources = [
626 "gtest_prod_util.h",
627 ]
628}