blob: 1e868b504e528e911118efd52f261bf14129fff9 [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",
tommic06b1332016-05-14 11:31:40 -0700150 "task_queue.h",
tommic06b1332016-05-14 11:31:40 -0700151 "task_queue_posix.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000152 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000153 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000154 "thread_checker.h",
155 "thread_checker_impl.cc",
156 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000157 "timeutils.cc",
158 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000159 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000160 ]
Noah Richards915590e2015-04-22 15:43:08 -0700161
Peter Boström11e02292015-11-25 21:36:14 +0100162 if (build_with_chromium) {
163 # Dependency on chromium's logging (in //base).
164 deps += [ "//base:base" ]
165 sources += [
166 "../../webrtc_overrides/webrtc/base/logging.cc",
167 "../../webrtc_overrides/webrtc/base/logging.h",
168 ]
169 include_dirs = [ "../../webrtc_overrides" ]
170 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700171 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200172 "logging.cc",
173 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200174 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700175 ]
176 }
tommic06b1332016-05-14 11:31:40 -0700177
phoglundff274392016-05-17 03:44:28 -0700178 if (rtc_build_libevent) {
tommic06b1332016-05-14 11:31:40 -0700179 deps += [ "//base/third_party/libevent" ]
tommic06b1332016-05-14 11:31:40 -0700180 }
phoglundff274392016-05-17 03:44:28 -0700181 if (rtc_enable_libevent) {
182 sources += [
183 "task_queue_libevent.cc",
184 "task_queue_posix.cc",
185 ]
186 } else {
187 # If not libevent, fall back to the other task queues.
188 if (is_mac || is_ios) {
189 sources += [
190 "task_queue_gcd.cc",
191 "task_queue_posix.cc",
192 ]
193 }
194 if (is_win) {
195 sources += [ "task_queue_win.cc" ]
196 }
tommic06b1332016-05-14 11:31:40 -0700197 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000198}
199
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000200static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 cflags = []
202 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000203 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700204 deps = [
205 "..:webrtc_common",
206 ]
Tommid44c0772016-03-11 17:12:32 -0800207 public_deps = [
208 ":rtc_base_approved",
209 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700213 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000214 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 ]
216
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000217 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700219 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000220 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 ]
222
kjellanderb1f14062016-04-25 00:01:36 -0700223 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
224
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200225 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000226
227 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000228 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "asyncfile.cc",
230 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700231 "asyncinvoker-inl.h",
232 "asyncinvoker.cc",
233 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000234 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000235 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000236 "asyncresolverinterface.cc",
237 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238 "asyncsocket.cc",
239 "asyncsocket.h",
240 "asynctcpsocket.cc",
241 "asynctcpsocket.h",
242 "asyncudpsocket.cc",
243 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000244 "autodetectproxy.cc",
245 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "base64.cc",
247 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000248 "common.cc",
249 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "crc32.cc",
251 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000252 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "diskcache.cc",
255 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700256 "filerotatingstream.cc",
257 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "fileutils.cc",
259 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "firewallsocketserver.cc",
261 "firewallsocketserver.h",
262 "flags.cc",
263 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000264 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "gunit_prod.h",
266 "helpers.cc",
267 "helpers.h",
268 "httpbase.cc",
269 "httpbase.h",
270 "httpclient.cc",
271 "httpclient.h",
272 "httpcommon-inl.h",
273 "httpcommon.cc",
274 "httpcommon.h",
275 "httprequest.cc",
276 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "iosfilesystem.mm",
278 "ipaddress.cc",
279 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000280 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "messagedigest.cc",
282 "messagedigest.h",
283 "messagehandler.cc",
284 "messagehandler.h",
285 "messagequeue.cc",
286 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000287 "nethelpers.cc",
288 "nethelpers.h",
289 "network.cc",
290 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700291 "networkmonitor.cc",
292 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700293 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000294 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700295 "openssl.h",
296 "openssladapter.cc",
297 "openssladapter.h",
298 "openssldigest.cc",
299 "openssldigest.h",
300 "opensslidentity.cc",
301 "opensslidentity.h",
302 "opensslstreamadapter.cc",
303 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000304 "pathutils.cc",
305 "pathutils.h",
306 "physicalsocketserver.cc",
307 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000308 "proxydetect.cc",
309 "proxydetect.h",
310 "proxyinfo.cc",
311 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 "ratelimiter.cc",
313 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200314 "rtccertificate.cc",
315 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200316 "rtccertificategenerator.cc",
317 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 "sha1.cc",
319 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000320 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800322 "sharedexclusivelock.cc",
323 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 "signalthread.cc",
325 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000326 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "sigslot.h",
328 "sigslotrepeater.h",
329 "socket.h",
330 "socketadapters.cc",
331 "socketadapters.h",
332 "socketaddress.cc",
333 "socketaddress.h",
334 "socketaddresspair.cc",
335 "socketaddresspair.h",
336 "socketfactory.h",
337 "socketpool.cc",
338 "socketpool.h",
339 "socketserver.h",
340 "socketstream.cc",
341 "socketstream.h",
342 "ssladapter.cc",
343 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000344 "sslfingerprint.cc",
345 "sslfingerprint.h",
346 "sslidentity.cc",
347 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 "sslsocketfactory.cc",
349 "sslsocketfactory.h",
350 "sslstreamadapter.cc",
351 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000352 "stream.cc",
353 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000354 "task.cc",
355 "task.h",
356 "taskparent.cc",
357 "taskparent.h",
358 "taskrunner.cc",
359 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "thread.cc",
361 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "timing.cc",
363 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "urlencode.cc",
365 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "worker.cc",
367 "worker.h",
368 ]
369
370 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700372 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000373 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000374
375 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700376 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000377 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000378 ]
379
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000380 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000381 } else {
382 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000383 "bandwidthsmoother.cc",
384 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "httpserver.cc",
388 "httpserver.h",
389 "json.cc",
390 "json.h",
tkchin93411912015-07-22 12:12:17 -0700391 "logsinks.cc",
392 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "mathutils.h",
394 "multipart.cc",
395 "multipart.h",
396 "natserver.cc",
397 "natserver.h",
398 "natsocketfactory.cc",
399 "natsocketfactory.h",
400 "nattypes.cc",
401 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "optionsfile.cc",
403 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 "profiler.cc",
405 "profiler.h",
406 "proxyserver.cc",
407 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000408 "referencecountedsingletonfactory.h",
409 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200410 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000411 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412 "sslconfig.h",
413 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700414 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000415 "testclient.cc",
416 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000417 "transformadapter.cc",
418 "transformadapter.h",
419 "versionparsing.cc",
420 "versionparsing.h",
421 "virtualsocketserver.cc",
422 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000423 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000424 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200425 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000426 ]
427
kjellandera8a7ef62016-04-05 08:13:31 -0700428 if (is_linux) {
429 sources += [
430 "dbus.cc",
431 "dbus.h",
432 "libdbusglibsymboltable.cc",
433 "libdbusglibsymboltable.h",
434 "linuxfdwalk.c",
435 "linuxfdwalk.h",
436 ]
437 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000438
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000439 if (is_posix) {
440 sources += [
441 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000442 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000443 "posix.cc",
444 "posix.h",
445 ]
446 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000447
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000448 if (is_mac) {
449 sources += [
450 "macasyncsocket.cc",
451 "macasyncsocket.h",
452 "maccocoasocketserver.h",
453 "maccocoasocketserver.mm",
454 "macsocketserver.cc",
455 "macsocketserver.h",
456 "macwindowpicker.cc",
457 "macwindowpicker.h",
458 ]
459 }
460
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000461 if (is_win) {
462 sources += [
463 "diskcache_win32.cc",
464 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000465 "win32regkey.cc",
466 "win32regkey.h",
467 "win32socketinit.cc",
468 "win32socketinit.h",
469 "win32socketserver.cc",
470 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000471 ]
472 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000473 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000474 deps += [ "//third_party/jsoncpp" ]
475 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000476 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000477
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000478 # When defined changes the include path for json.h to where it is
479 # expected to be when building json outside of the standalone build.
480 defines += [ "WEBRTC_EXTERNAL_JSON" ]
481 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000482 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000483
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000484 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000485 # compiler settings.
486 configs -= [ "//build/config/compiler:chromium_code" ]
487 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000488 if (!is_win) {
489 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000490 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000491
svaldez7f7a8192016-04-18 11:13:11 -0700492 if (rtc_build_ssl) {
493 deps += [ "//third_party/boringssl" ]
494 } else {
495 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000496 }
497
498 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000499 sources += [
500 "ifaddrs-android.cc",
501 "ifaddrs-android.h",
502 ]
503
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000504 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000505 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200506 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000507 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 }
509
kjellandera8a7ef62016-04-05 08:13:31 -0700510 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200511 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700512 "maccocoathreadhelper.h",
513 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200514 "macconversion.cc",
515 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700516 "macifaddrs_converter.cc",
517 "scoped_autorelease_pool.h",
518 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200519 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000520 }
521
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000522 if (use_x11) {
523 sources += [
524 "x11windowpicker.cc",
525 "x11windowpicker.h",
526 ]
527 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000528 "dl",
529 "rt",
530 "Xext",
531 "X11",
532 "Xcomposite",
533 "Xrender",
534 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000535 }
536
537 if (is_linux) {
538 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000539 "dl",
540 "rt",
541 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000542 }
543
544 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000545 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000546 "macutils.cc",
547 "macutils.h",
548 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000549 }
550
551 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000552 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000553 "win32.cc",
554 "win32.h",
555 "win32filesystem.cc",
556 "win32filesystem.h",
557 "win32securityerrors.cc",
558 "win32window.cc",
559 "win32window.h",
560 "win32windowpicker.cc",
561 "win32windowpicker.h",
562 "winfirewall.cc",
563 "winfirewall.h",
564 "winping.cc",
565 "winping.h",
566 ]
567
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000568 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000569 "crypt32.lib",
570 "iphlpapi.lib",
571 "secur32.lib",
572 ]
573
574 cflags += [
575 # Suppress warnings about WIN32_LEAN_AND_MEAN.
576 "/wd4005",
577 "/wd4703",
578 ]
579
580 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 }
582
kjellandera8a7ef62016-04-05 08:13:31 -0700583 if (is_posix) {
584 sources += [
585 "ifaddrs_converter.cc",
586 "ifaddrs_converter.h",
587 "unixfilesystem.cc",
588 "unixfilesystem.h",
589 ]
590 if (is_debug) {
591 # The Chromium build/common.gypi defines this for all posix
592 # _except_ for ios & mac. We want it there as well, e.g.
593 # because ASSERT and friends trigger off of it.
594 defines += [ "_DEBUG" ]
595 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000596 }
597
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000598 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000599 defines += [ "CARBON_DEPRECATED=YES" ]
600 }
601
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000602 if (is_linux || is_android) {
603 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000604 "linux.cc",
605 "linux.h",
606 ]
607 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700608
609 if (is_nacl) {
610 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
611 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800612 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700613 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000614}
tkchin42f580e2015-11-26 23:18:23 -0800615
kjellander988d31e2016-02-05 00:23:50 -0800616source_set("gtest_prod") {
617 sources = [
618 "gtest_prod_util.h",
619 ]
620}