blob: cc8b76b78bf7bb3bd3934df90328df7797d5822b [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",
kwiberg6ab3db22016-05-11 05:07:26 -0700142 "scoped_ptr.h",
tommi04af8392016-02-14 08:11:10 -0800143 "scoped_ref_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000144 "stringencode.cc",
145 "stringencode.h",
146 "stringutils.cc",
147 "stringutils.h",
terelius85fa7d52016-03-24 01:51:52 -0700148 "swap_queue.h",
tommiefefda62015-08-20 05:04:09 -0700149 "systeminfo.cc",
150 "systeminfo.h",
tommic06b1332016-05-14 11:31:40 -0700151 "task_queue.h",
152 "task_queue_gcd.cc",
153 "task_queue_libevent.cc",
154 "task_queue_posix.cc",
155 "task_queue_posix.h",
156 "task_queue_win.cc",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000157 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000158 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000159 "thread_checker.h",
160 "thread_checker_impl.cc",
161 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000162 "timeutils.cc",
163 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000164 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000165 ]
Noah Richards915590e2015-04-22 15:43:08 -0700166
Peter Boström11e02292015-11-25 21:36:14 +0100167 if (build_with_chromium) {
168 # Dependency on chromium's logging (in //base).
169 deps += [ "//base:base" ]
170 sources += [
171 "../../webrtc_overrides/webrtc/base/logging.cc",
172 "../../webrtc_overrides/webrtc/base/logging.h",
173 ]
174 include_dirs = [ "../../webrtc_overrides" ]
175 } else {
Noah Richards915590e2015-04-22 15:43:08 -0700176 sources += [
Tommi23edcff2015-05-25 10:45:43 +0200177 "logging.cc",
178 "logging.h",
Tommi09ca02e2016-04-24 17:32:48 +0200179 "logging_mac.mm",
Noah Richards915590e2015-04-22 15:43:08 -0700180 ]
181 }
tommic06b1332016-05-14 11:31:40 -0700182
183 if (!is_win && !is_mac && !is_ios && !is_nacl) {
184 deps += [ "//base/third_party/libevent" ]
185 defines += [ "WEBRTC_BUILD_LIBEVENT" ]
186 }
187
188 if (is_mac || is_ios || is_win || is_nacl) {
189 sources -= [ "task_queue_libevent.cc" ]
190 }
191
192 if (is_linux || is_android || is_win || is_nacl) {
193 sources -= [ "task_queue_gcd.cc" ]
194 }
195
196 if (is_nacl) {
197 sources -= [ "task_queue_posix.cc" ]
198 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000199}
200
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000201static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 cflags = []
203 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000204 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700205 deps = [
206 "..:webrtc_common",
207 ]
Tommid44c0772016-03-11 17:12:32 -0800208 public_deps = [
209 ":rtc_base_approved",
210 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000211
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700214 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000215 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000216 ]
217
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000218 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700220 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000221 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222 ]
223
kjellanderb1f14062016-04-25 00:01:36 -0700224 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
225
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200226 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227
228 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000229 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "asyncfile.cc",
231 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700232 "asyncinvoker-inl.h",
233 "asyncinvoker.cc",
234 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000235 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000236 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000237 "asyncresolverinterface.cc",
238 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000239 "asyncsocket.cc",
240 "asyncsocket.h",
241 "asynctcpsocket.cc",
242 "asynctcpsocket.h",
243 "asyncudpsocket.cc",
244 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "autodetectproxy.cc",
246 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "base64.cc",
248 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "common.cc",
250 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "crc32.cc",
252 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000253 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000254 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000255 "diskcache.cc",
256 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700257 "filerotatingstream.cc",
258 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000259 "fileutils.cc",
260 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "firewallsocketserver.cc",
262 "firewallsocketserver.h",
263 "flags.cc",
264 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000265 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "gunit_prod.h",
267 "helpers.cc",
268 "helpers.h",
269 "httpbase.cc",
270 "httpbase.h",
271 "httpclient.cc",
272 "httpclient.h",
273 "httpcommon-inl.h",
274 "httpcommon.cc",
275 "httpcommon.h",
276 "httprequest.cc",
277 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "iosfilesystem.mm",
279 "ipaddress.cc",
280 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000282 "messagedigest.cc",
283 "messagedigest.h",
284 "messagehandler.cc",
285 "messagehandler.h",
286 "messagequeue.cc",
287 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000288 "nethelpers.cc",
289 "nethelpers.h",
290 "network.cc",
291 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700292 "networkmonitor.cc",
293 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700294 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000295 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700296 "openssl.h",
297 "openssladapter.cc",
298 "openssladapter.h",
299 "openssldigest.cc",
300 "openssldigest.h",
301 "opensslidentity.cc",
302 "opensslidentity.h",
303 "opensslstreamadapter.cc",
304 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "pathutils.cc",
306 "pathutils.h",
307 "physicalsocketserver.cc",
308 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000309 "proxydetect.cc",
310 "proxydetect.h",
311 "proxyinfo.cc",
312 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000313 "ratelimiter.cc",
314 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200315 "rtccertificate.cc",
316 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200317 "rtccertificategenerator.cc",
318 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000319 "sha1.cc",
320 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000321 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800323 "sharedexclusivelock.cc",
324 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "signalthread.cc",
326 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000327 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000328 "sigslot.h",
329 "sigslotrepeater.h",
330 "socket.h",
331 "socketadapters.cc",
332 "socketadapters.h",
333 "socketaddress.cc",
334 "socketaddress.h",
335 "socketaddresspair.cc",
336 "socketaddresspair.h",
337 "socketfactory.h",
338 "socketpool.cc",
339 "socketpool.h",
340 "socketserver.h",
341 "socketstream.cc",
342 "socketstream.h",
343 "ssladapter.cc",
344 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000345 "sslfingerprint.cc",
346 "sslfingerprint.h",
347 "sslidentity.cc",
348 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000349 "sslsocketfactory.cc",
350 "sslsocketfactory.h",
351 "sslstreamadapter.cc",
352 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "stream.cc",
354 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "task.cc",
356 "task.h",
357 "taskparent.cc",
358 "taskparent.h",
359 "taskrunner.cc",
360 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000361 "thread.cc",
362 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "timing.cc",
364 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "urlencode.cc",
366 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000367 "worker.cc",
368 "worker.h",
369 ]
370
371 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700373 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000375
376 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700377 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000378 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000379 ]
380
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000381 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000382 } else {
383 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000384 "bandwidthsmoother.cc",
385 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000387 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "httpserver.cc",
389 "httpserver.h",
390 "json.cc",
391 "json.h",
tkchin93411912015-07-22 12:12:17 -0700392 "logsinks.cc",
393 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "mathutils.h",
395 "multipart.cc",
396 "multipart.h",
397 "natserver.cc",
398 "natserver.h",
399 "natsocketfactory.cc",
400 "natsocketfactory.h",
401 "nattypes.cc",
402 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000403 "optionsfile.cc",
404 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "profiler.cc",
406 "profiler.h",
407 "proxyserver.cc",
408 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000409 "referencecountedsingletonfactory.h",
410 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200411 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000412 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000413 "sslconfig.h",
414 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700415 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "testclient.cc",
417 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418 "transformadapter.cc",
419 "transformadapter.h",
420 "versionparsing.cc",
421 "versionparsing.h",
422 "virtualsocketserver.cc",
423 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000424 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000425 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200426 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000427 ]
428
kjellandera8a7ef62016-04-05 08:13:31 -0700429 if (is_linux) {
430 sources += [
431 "dbus.cc",
432 "dbus.h",
433 "libdbusglibsymboltable.cc",
434 "libdbusglibsymboltable.h",
435 "linuxfdwalk.c",
436 "linuxfdwalk.h",
437 ]
438 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000439
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000440 if (is_posix) {
441 sources += [
442 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000443 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000444 "posix.cc",
445 "posix.h",
446 ]
447 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000448
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000449 if (is_mac) {
450 sources += [
451 "macasyncsocket.cc",
452 "macasyncsocket.h",
453 "maccocoasocketserver.h",
454 "maccocoasocketserver.mm",
455 "macsocketserver.cc",
456 "macsocketserver.h",
457 "macwindowpicker.cc",
458 "macwindowpicker.h",
459 ]
460 }
461
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000462 if (is_win) {
463 sources += [
464 "diskcache_win32.cc",
465 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000466 "win32regkey.cc",
467 "win32regkey.h",
468 "win32socketinit.cc",
469 "win32socketinit.h",
470 "win32socketserver.cc",
471 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000472 ]
473 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000474 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000475 deps += [ "//third_party/jsoncpp" ]
476 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000477 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000478
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000479 # When defined changes the include path for json.h to where it is
480 # expected to be when building json outside of the standalone build.
481 defines += [ "WEBRTC_EXTERNAL_JSON" ]
482 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000483 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000484
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000485 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000486 # compiler settings.
487 configs -= [ "//build/config/compiler:chromium_code" ]
488 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000489 if (!is_win) {
490 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000491 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000492
svaldez7f7a8192016-04-18 11:13:11 -0700493 if (rtc_build_ssl) {
494 deps += [ "//third_party/boringssl" ]
495 } else {
496 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000497 }
498
499 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000500 sources += [
501 "ifaddrs-android.cc",
502 "ifaddrs-android.h",
503 ]
504
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000505 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000506 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200507 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000509 }
510
kjellandera8a7ef62016-04-05 08:13:31 -0700511 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200512 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700513 "maccocoathreadhelper.h",
514 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200515 "macconversion.cc",
516 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700517 "macifaddrs_converter.cc",
518 "scoped_autorelease_pool.h",
519 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200520 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 }
522
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000523 if (use_x11) {
524 sources += [
525 "x11windowpicker.cc",
526 "x11windowpicker.h",
527 ]
528 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000529 "dl",
530 "rt",
531 "Xext",
532 "X11",
533 "Xcomposite",
534 "Xrender",
535 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000536 }
537
538 if (is_linux) {
539 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000540 "dl",
541 "rt",
542 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 }
544
545 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000546 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000547 "macutils.cc",
548 "macutils.h",
549 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 }
551
552 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000553 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000554 "win32.cc",
555 "win32.h",
556 "win32filesystem.cc",
557 "win32filesystem.h",
558 "win32securityerrors.cc",
559 "win32window.cc",
560 "win32window.h",
561 "win32windowpicker.cc",
562 "win32windowpicker.h",
563 "winfirewall.cc",
564 "winfirewall.h",
565 "winping.cc",
566 "winping.h",
567 ]
568
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000569 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000570 "crypt32.lib",
571 "iphlpapi.lib",
572 "secur32.lib",
573 ]
574
575 cflags += [
576 # Suppress warnings about WIN32_LEAN_AND_MEAN.
577 "/wd4005",
578 "/wd4703",
579 ]
580
581 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000582 }
583
kjellandera8a7ef62016-04-05 08:13:31 -0700584 if (is_posix) {
585 sources += [
586 "ifaddrs_converter.cc",
587 "ifaddrs_converter.h",
588 "unixfilesystem.cc",
589 "unixfilesystem.h",
590 ]
591 if (is_debug) {
592 # The Chromium build/common.gypi defines this for all posix
593 # _except_ for ios & mac. We want it there as well, e.g.
594 # because ASSERT and friends trigger off of it.
595 defines += [ "_DEBUG" ]
596 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000597 }
598
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000599 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000600 defines += [ "CARBON_DEPRECATED=YES" ]
601 }
602
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000603 if (is_linux || is_android) {
604 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000605 "linux.cc",
606 "linux.h",
607 ]
608 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700609
610 if (is_nacl) {
611 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
612 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800613 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700614 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000615}
tkchin42f580e2015-11-26 23:18:23 -0800616
kjellander988d31e2016-02-05 00:23:50 -0800617source_set("gtest_prod") {
618 sources = [
619 "gtest_prod_util.h",
620 ]
621}