blob: 9671b41297bfe66286a41c7454c423f8f6ba1bc8 [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") {
kjellanderbac04122016-06-02 02:18:48 -0700178 public_deps = [
179 ":rtc_base_approved",
180 ]
tommi09c60da2016-05-24 11:40:35 -0700181 configs += [ "..:common_config" ]
182
183 sources = [
184 "task_queue.h",
185 "task_queue_posix.h",
186 ]
tommic06b1332016-05-14 11:31:40 -0700187
phoglundff274392016-05-17 03:44:28 -0700188 if (rtc_build_libevent) {
kjellanderbac04122016-06-02 02:18:48 -0700189 deps = [
190 "//base/third_party/libevent",
191 ]
tommic06b1332016-05-14 11:31:40 -0700192 }
tommi09c60da2016-05-24 11:40:35 -0700193
phoglundff274392016-05-17 03:44:28 -0700194 if (rtc_enable_libevent) {
195 sources += [
196 "task_queue_libevent.cc",
197 "task_queue_posix.cc",
198 ]
199 } else {
phoglundff274392016-05-17 03:44:28 -0700200 if (is_mac || is_ios) {
201 sources += [
202 "task_queue_gcd.cc",
203 "task_queue_posix.cc",
204 ]
205 }
206 if (is_win) {
207 sources += [ "task_queue_win.cc" ]
208 }
tommic06b1332016-05-14 11:31:40 -0700209 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000210}
211
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000212static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 cflags = []
214 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000215 libs = []
kjellandera8a7ef62016-04-05 08:13:31 -0700216 deps = [
217 "..:webrtc_common",
218 ]
Tommid44c0772016-03-11 17:12:32 -0800219 public_deps = [
220 ":rtc_base_approved",
221 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000222
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "..:common_config",
sdefresne0db3db92016-03-21 11:20:28 -0700225 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000226 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 ]
228
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000229 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "..:common_inherited_config",
sdefresne0db3db92016-03-21 11:20:28 -0700231 ":openssl_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000232 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 ]
234
kjellanderb1f14062016-04-25 00:01:36 -0700235 all_dependent_configs = [ ":rtc_base_all_dependent_config" ]
236
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200237 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000238
239 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000240 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000241 "asyncfile.cc",
242 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700243 "asyncinvoker-inl.h",
244 "asyncinvoker.cc",
245 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000246 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000248 "asyncresolverinterface.cc",
249 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "asyncsocket.cc",
251 "asyncsocket.h",
252 "asynctcpsocket.cc",
253 "asynctcpsocket.h",
254 "asyncudpsocket.cc",
255 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "autodetectproxy.cc",
257 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "base64.cc",
259 "base64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000260 "common.cc",
261 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "crc32.cc",
263 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000264 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000265 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "diskcache.cc",
267 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700268 "filerotatingstream.cc",
269 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "fileutils.cc",
271 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "firewallsocketserver.cc",
273 "firewallsocketserver.h",
274 "flags.cc",
275 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000276 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "gunit_prod.h",
278 "helpers.cc",
279 "helpers.h",
280 "httpbase.cc",
281 "httpbase.h",
282 "httpclient.cc",
283 "httpclient.h",
284 "httpcommon-inl.h",
285 "httpcommon.cc",
286 "httpcommon.h",
287 "httprequest.cc",
288 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000289 "iosfilesystem.mm",
290 "ipaddress.cc",
291 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000293 "messagedigest.cc",
294 "messagedigest.h",
295 "messagehandler.cc",
296 "messagehandler.h",
297 "messagequeue.cc",
298 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000299 "nethelpers.cc",
300 "nethelpers.h",
301 "network.cc",
302 "network.h",
honghaiz023f3ef2015-10-19 09:39:32 -0700303 "networkmonitor.cc",
304 "networkmonitor.h",
danilchapbebf54c2016-04-28 01:32:48 -0700305 "nullsocketserver.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000306 "nullsocketserver.h",
svaldez7f7a8192016-04-18 11:13:11 -0700307 "openssl.h",
308 "openssladapter.cc",
309 "openssladapter.h",
310 "openssldigest.cc",
311 "openssldigest.h",
312 "opensslidentity.cc",
313 "opensslidentity.h",
314 "opensslstreamadapter.cc",
315 "opensslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "pathutils.cc",
317 "pathutils.h",
318 "physicalsocketserver.cc",
319 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "proxydetect.cc",
321 "proxydetect.h",
322 "proxyinfo.cc",
323 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000324 "ratelimiter.cc",
325 "ratelimiter.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200326 "rtccertificate.cc",
327 "rtccertificate.h",
Henrik Boströmda3a1da2016-04-15 17:55:21 +0200328 "rtccertificategenerator.cc",
329 "rtccertificategenerator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000330 "sha1.cc",
331 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000332 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 "sha1digest.h",
jbaucha18f6382016-02-21 01:56:16 -0800334 "sharedexclusivelock.cc",
335 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000336 "signalthread.cc",
337 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000338 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000339 "sigslot.h",
340 "sigslotrepeater.h",
341 "socket.h",
342 "socketadapters.cc",
343 "socketadapters.h",
344 "socketaddress.cc",
345 "socketaddress.h",
346 "socketaddresspair.cc",
347 "socketaddresspair.h",
348 "socketfactory.h",
349 "socketpool.cc",
350 "socketpool.h",
351 "socketserver.h",
352 "socketstream.cc",
353 "socketstream.h",
354 "ssladapter.cc",
355 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000356 "sslfingerprint.cc",
357 "sslfingerprint.h",
358 "sslidentity.cc",
359 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "sslsocketfactory.cc",
361 "sslsocketfactory.h",
362 "sslstreamadapter.cc",
363 "sslstreamadapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "stream.cc",
365 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000366 "task.cc",
367 "task.h",
368 "taskparent.cc",
369 "taskparent.h",
370 "taskrunner.cc",
371 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000372 "thread.cc",
373 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000374 "timing.cc",
375 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000376 "urlencode.cc",
377 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000378 "worker.cc",
379 "worker.h",
380 ]
381
382 if (build_with_chromium) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000383 if (is_win) {
henrikgee2bf412015-09-30 03:48:52 -0700384 sources += [ "../../webrtc_overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000385 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000386
387 include_dirs = [
henrikgee2bf412015-09-30 03:48:52 -0700388 "../../webrtc_overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000389 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000390 ]
391
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000392 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000393 } else {
394 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "bandwidthsmoother.cc",
396 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000397 "callback.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "fileutils_mock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000399 "httpserver.cc",
400 "httpserver.h",
401 "json.cc",
402 "json.h",
tkchin93411912015-07-22 12:12:17 -0700403 "logsinks.cc",
404 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "mathutils.h",
406 "multipart.cc",
407 "multipart.h",
408 "natserver.cc",
409 "natserver.h",
410 "natsocketfactory.cc",
411 "natsocketfactory.h",
412 "nattypes.cc",
413 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000414 "optionsfile.cc",
415 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000416 "profiler.cc",
417 "profiler.h",
418 "proxyserver.cc",
419 "proxyserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000420 "referencecountedsingletonfactory.h",
421 "rollingaccumulator.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200422 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000423 "sec_buffer.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000424 "sslconfig.h",
425 "sslroots.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700426 "testbase64.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000427 "testclient.cc",
428 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000429 "transformadapter.cc",
430 "transformadapter.h",
431 "versionparsing.cc",
432 "versionparsing.h",
433 "virtualsocketserver.cc",
434 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000435 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000436 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200437 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000438 ]
439
kjellandera8a7ef62016-04-05 08:13:31 -0700440 if (is_linux) {
441 sources += [
442 "dbus.cc",
443 "dbus.h",
444 "libdbusglibsymboltable.cc",
445 "libdbusglibsymboltable.h",
446 "linuxfdwalk.c",
447 "linuxfdwalk.h",
448 ]
449 }
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000450
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000451 if (is_posix) {
452 sources += [
453 "latebindingsymboltable.cc",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000454 "latebindingsymboltable.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000455 "posix.cc",
456 "posix.h",
457 ]
458 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000460 if (is_mac) {
461 sources += [
462 "macasyncsocket.cc",
463 "macasyncsocket.h",
464 "maccocoasocketserver.h",
465 "maccocoasocketserver.mm",
466 "macsocketserver.cc",
467 "macsocketserver.h",
468 "macwindowpicker.cc",
469 "macwindowpicker.h",
470 ]
471 }
472
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000473 if (is_win) {
474 sources += [
475 "diskcache_win32.cc",
476 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000477 "win32regkey.cc",
478 "win32regkey.h",
479 "win32socketinit.cc",
480 "win32socketinit.h",
481 "win32socketserver.cc",
482 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000483 ]
484 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000485 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000486 deps += [ "//third_party/jsoncpp" ]
487 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000488 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000489
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000490 # When defined changes the include path for json.h to where it is
491 # expected to be when building json outside of the standalone build.
492 defines += [ "WEBRTC_EXTERNAL_JSON" ]
493 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000494 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000495
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000496 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000497 # compiler settings.
498 configs -= [ "//build/config/compiler:chromium_code" ]
499 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000500 if (!is_win) {
501 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000502 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000503
svaldez7f7a8192016-04-18 11:13:11 -0700504 if (rtc_build_ssl) {
505 deps += [ "//third_party/boringssl" ]
506 } else {
507 configs += [ "external_ssl_library" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 }
509
510 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000511 sources += [
512 "ifaddrs-android.cc",
513 "ifaddrs-android.h",
514 ]
515
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000516 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000517 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200518 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000519 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000520 }
521
kjellandera8a7ef62016-04-05 08:13:31 -0700522 if (is_ios || is_mac) {
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200523 sources += [
sdefresne60624cd2016-03-22 03:32:14 -0700524 "maccocoathreadhelper.h",
525 "maccocoathreadhelper.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200526 "macconversion.cc",
527 "macconversion.h",
kjellandera8a7ef62016-04-05 08:13:31 -0700528 "macifaddrs_converter.cc",
529 "scoped_autorelease_pool.h",
530 "scoped_autorelease_pool.mm",
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200531 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 }
533
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000534 if (use_x11) {
535 sources += [
536 "x11windowpicker.cc",
537 "x11windowpicker.h",
538 ]
539 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000540 "dl",
541 "rt",
542 "Xext",
543 "X11",
544 "Xcomposite",
545 "Xrender",
546 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000547 }
548
549 if (is_linux) {
550 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000551 "dl",
552 "rt",
553 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000554 }
555
556 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000557 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000558 "macutils.cc",
559 "macutils.h",
560 ]
kjellanderbac04122016-06-02 02:18:48 -0700561 libs += [ "CoreServices.framework" ] # For GetGestalt in macutils.cc.
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000562 }
563
564 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000565 sources += [
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000566 "win32.cc",
567 "win32.h",
568 "win32filesystem.cc",
569 "win32filesystem.h",
570 "win32securityerrors.cc",
571 "win32window.cc",
572 "win32window.h",
573 "win32windowpicker.cc",
574 "win32windowpicker.h",
575 "winfirewall.cc",
576 "winfirewall.h",
577 "winping.cc",
578 "winping.h",
579 ]
580
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000581 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000582 "crypt32.lib",
583 "iphlpapi.lib",
584 "secur32.lib",
585 ]
586
587 cflags += [
588 # Suppress warnings about WIN32_LEAN_AND_MEAN.
589 "/wd4005",
590 "/wd4703",
591 ]
592
593 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000594 }
595
kjellandera8a7ef62016-04-05 08:13:31 -0700596 if (is_posix) {
597 sources += [
598 "ifaddrs_converter.cc",
599 "ifaddrs_converter.h",
600 "unixfilesystem.cc",
601 "unixfilesystem.h",
602 ]
603 if (is_debug) {
604 # The Chromium build/common.gypi defines this for all posix
605 # _except_ for ios & mac. We want it there as well, e.g.
606 # because ASSERT and friends trigger off of it.
607 defines += [ "_DEBUG" ]
608 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000609 }
610
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000611 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000612 defines += [ "CARBON_DEPRECATED=YES" ]
613 }
614
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000615 if (is_linux || is_android) {
616 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000617 "linux.cc",
618 "linux.h",
619 ]
620 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700621
622 if (is_nacl) {
623 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
624 defines += [ "timezone=_timezone" ]
Guo-wei Shiehdb21f632016-01-09 13:12:04 -0800625 sources -= [ "ifaddrs_converter.cc" ]
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700626 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000627}
tkchin42f580e2015-11-26 23:18:23 -0800628
kjellander988d31e2016-02-05 00:23:50 -0800629source_set("gtest_prod") {
630 sources = [
631 "gtest_prod_util.h",
632 ]
633}