blob: ed0690c4c1bc4fd68ff41b010de9631ec9fbf6f2 [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
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000013config("rtc_base_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000014 include_dirs = [
15 "//third_party/jsoncpp/overrides/include",
16 "//third_party/jsoncpp/source/include",
17 ]
18
19 defines = [
20 "FEATURE_ENABLE_SSL",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000021 "LOGGING=1",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000022 ]
23
Henrik Kjellandere555b7b2015-04-22 08:49:52 +020024 if (is_posix) {
25 # TODO(henrike): issue 3307, make rtc_base build without disabling
26 # these flags.
27 cflags_cc = [ "-Wno-non-virtual-dtor" ]
28 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000029}
30
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +000031config("rtc_base_chromium_config") {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020032 defines = [ "NO_MAIN_THREAD_WRAPPING" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000033}
34
35config("openssl_config") {
36 defines = [
37 "SSL_USE_OPENSSL",
38 "HAVE_OPENSSL_SSL_H",
39 ]
40}
41
deadbeef9eb13652015-09-05 04:39:15 -070042config("nss_config") {
43 defines = [
44 "SSL_USE_NSS",
45 "HAVE_NSS_SSL_H",
46 "SSL_USE_NSS_RNG",
47 ]
48}
49
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000050config("ios_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000051 libs = [
Zeke Chin2d3b7e22015-07-14 12:55:44 -070052 "CFNetwork.framework",
53
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000054 #"Foundation.framework", # Already included in //build/config:default_libs.
55 "Security.framework",
56 "SystemConfiguration.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020057
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000058 #"UIKit.framework", # Already included in //build/config:default_libs.
59 ]
60}
61
62config("mac_config") {
kjellander@webrtc.org556caff2014-12-19 13:28:37 +000063 libs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000064 "Cocoa.framework",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020065
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000066 #"Foundation.framework", # Already included in //build/config:default_libs.
67 #"IOKit.framework", # Already included in //build/config:default_libs.
68 #"Security.framework", # Already included in //build/config:default_libs.
69 "SystemConfiguration.framework",
70 ]
71}
72
73config("mac_x86_config") {
74 libs = [
75 #"Carbon.framework", # Already included in //build/config:default_libs.
76 ]
77}
78
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000079if (is_linux && !build_with_chromium) {
80 # Provides the same functionality as the //crypto:platform target, which
81 # WebRTC cannot use as we don't sync src/crypto from Chromium.
82 group("linux_system_ssl") {
83 if (use_openssl) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020084 deps = [
85 "//third_party/boringssl",
86 ]
deadbeef9eb13652015-09-05 04:39:15 -070087 } else {
88 deps = [
89 "//net/third_party/nss/ssl:libssl",
90 ]
91
92 public_configs = [
93 "//net/third_party/nss/ssl:ssl_config",
94 "//third_party/nss:system_nss_no_ssl_config",
95 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000096 }
97 }
98}
99
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000100if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000101 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000102 assert(rtc_ssl_root != "",
103 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
104 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000105 }
106}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +0000107
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000108# The subset of rtc_base approved for use outside of libjingle.
109static_library("rtc_base_approved") {
110 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000111 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000112
113 sources = [
Peter Boströmff019b02015-04-30 14:16:07 +0200114 "atomicops.h",
Noah Richards915590e2015-04-22 15:43:08 -0700115 "bitbuffer.cc",
116 "bitbuffer.h",
Karl Wiberg94784372015-04-20 14:03:07 +0200117 "buffer.cc",
118 "buffer.h",
Joachim Bauch6f2ef742015-05-21 17:52:01 +0200119 "bufferqueue.cc",
120 "bufferqueue.h",
Noah Richards915590e2015-04-22 15:43:08 -0700121 "bytebuffer.cc",
122 "bytebuffer.h",
123 "byteorder.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000124 "checks.cc",
125 "checks.h",
Tommi494f2092015-04-27 17:39:23 +0200126 "criticalsection.cc",
127 "criticalsection.h",
tommi@webrtc.org4c0fd962015-02-09 10:23:27 +0000128 "event.cc",
129 "event.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000130 "event_tracer.cc",
131 "event_tracer.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000132 "exp_filter.cc",
133 "exp_filter.h",
134 "md5.cc",
135 "md5.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000136 "md5digest.cc",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000137 "md5digest.h",
xians@webrtc.orge46bc772014-10-10 08:36:56 +0000138 "platform_file.cc",
139 "platform_file.h",
Tommibebc6902015-05-18 09:51:42 +0200140 "platform_thread.cc",
141 "platform_thread.h",
andrew@webrtc.org0ab42bc2014-12-17 22:56:09 +0000142 "safe_conversions.h",
143 "safe_conversions_impl.h",
Tommic844ca42015-08-19 10:51:18 +0200144 "scoped_ptr.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000145 "stringencode.cc",
146 "stringencode.h",
147 "stringutils.cc",
148 "stringutils.h",
tommiefefda62015-08-20 05:04:09 -0700149 "systeminfo.cc",
150 "systeminfo.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000151 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000152 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000153 "thread_checker.h",
154 "thread_checker_impl.cc",
155 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000156 "timeutils.cc",
157 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000158 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000159 ]
Noah Richards915590e2015-04-22 15:43:08 -0700160
henrikg71df77b2015-09-18 01:48:34 -0700161 if (!build_with_chromium) {
Noah Richards915590e2015-04-22 15:43:08 -0700162 sources += [
163 "basictypes.h",
164 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200165 "logging.cc",
166 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700167 ]
168 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000169}
170
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000171static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000172 cflags = []
173 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000174 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000175 deps = [
176 ":rtc_base_approved",
177 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000178
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000180 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000181 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 ]
183
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000184 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000186 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 ]
188
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200189 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000190
191 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000192 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000193 "asyncfile.cc",
194 "asyncfile.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700195 "asyncinvoker-inl.h",
196 "asyncinvoker.cc",
197 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000198 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000199 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000200 "asyncresolverinterface.cc",
201 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "asyncsocket.cc",
203 "asyncsocket.h",
204 "asynctcpsocket.cc",
205 "asynctcpsocket.h",
206 "asyncudpsocket.cc",
207 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "autodetectproxy.cc",
209 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000210 "base64.cc",
211 "base64.h",
212 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "common.cc",
214 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000215 "crc32.cc",
216 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000217 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000218 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "diskcache.cc",
220 "diskcache.h",
tkchin93411912015-07-22 12:12:17 -0700221 "filerotatingstream.cc",
222 "filerotatingstream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000223 "fileutils.cc",
224 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "firewallsocketserver.cc",
226 "firewallsocketserver.h",
227 "flags.cc",
228 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000229 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "gunit_prod.h",
231 "helpers.cc",
232 "helpers.h",
233 "httpbase.cc",
234 "httpbase.h",
235 "httpclient.cc",
236 "httpclient.h",
237 "httpcommon-inl.h",
238 "httpcommon.cc",
239 "httpcommon.h",
240 "httprequest.cc",
241 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000242 "iosfilesystem.mm",
243 "ipaddress.cc",
244 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000245 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000247 "messagedigest.cc",
248 "messagedigest.h",
249 "messagehandler.cc",
250 "messagehandler.h",
251 "messagequeue.cc",
252 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000253 "nethelpers.cc",
254 "nethelpers.h",
255 "network.cc",
256 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000258 "pathutils.cc",
259 "pathutils.h",
260 "physicalsocketserver.cc",
261 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "proxydetect.cc",
263 "proxydetect.h",
264 "proxyinfo.cc",
265 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "ratelimiter.cc",
267 "ratelimiter.h",
268 "ratetracker.cc",
269 "ratetracker.h",
Henrik Boström41b3a382015-08-20 12:15:54 +0200270 "rtccertificate.cc",
271 "rtccertificate.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "scoped_autorelease_pool.h",
273 "scoped_autorelease_pool.mm",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "sha1.cc",
275 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000276 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000278 "signalthread.cc",
279 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000280 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "sigslot.h",
282 "sigslotrepeater.h",
283 "socket.h",
284 "socketadapters.cc",
285 "socketadapters.h",
286 "socketaddress.cc",
287 "socketaddress.h",
288 "socketaddresspair.cc",
289 "socketaddresspair.h",
290 "socketfactory.h",
291 "socketpool.cc",
292 "socketpool.h",
293 "socketserver.h",
294 "socketstream.cc",
295 "socketstream.h",
296 "ssladapter.cc",
297 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000298 "sslfingerprint.cc",
299 "sslfingerprint.h",
300 "sslidentity.cc",
301 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000302 "sslsocketfactory.cc",
303 "sslsocketfactory.h",
304 "sslstreamadapter.cc",
305 "sslstreamadapter.h",
306 "sslstreamadapterhelper.cc",
307 "sslstreamadapterhelper.h",
308 "stream.cc",
309 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000310 "task.cc",
311 "task.h",
312 "taskparent.cc",
313 "taskparent.h",
314 "taskrunner.cc",
315 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000316 "thread.cc",
317 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000318 "timing.cc",
319 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000320 "urlencode.cc",
321 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000322 "worker.cc",
323 "worker.h",
324 ]
325
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000326 if (is_posix) {
327 sources += [
328 "unixfilesystem.cc",
329 "unixfilesystem.h",
330 ]
331 }
332
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000333 if (build_with_chromium) {
334 sources += [
henrikg40bf4932015-09-21 03:29:25 -0700335 "../overrides/webrtc/base/logging.cc",
336 "../overrides/webrtc/base/logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000338
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000339 deps += [ "..:webrtc_common" ]
340
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000341 if (is_win) {
henrikg40bf4932015-09-21 03:29:25 -0700342 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000343 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000344
345 include_dirs = [
henrikg40bf4932015-09-21 03:29:25 -0700346 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000347 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000348 ]
349
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000350 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000351 } else {
352 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000353 "bandwidthsmoother.cc",
354 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "bind.h",
356 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000357 "callback.h",
358 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000359 "fileutils_mock.h",
360 "genericslot.h",
361 "genericslot.h.pump",
362 "httpserver.cc",
363 "httpserver.h",
364 "json.cc",
365 "json.h",
tkchin93411912015-07-22 12:12:17 -0700366 "logsinks.cc",
367 "logsinks.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000368 "mathutils.h",
369 "multipart.cc",
370 "multipart.h",
371 "natserver.cc",
372 "natserver.h",
373 "natsocketfactory.cc",
374 "natsocketfactory.h",
375 "nattypes.cc",
376 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000377 "optionsfile.cc",
378 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000379 "profiler.cc",
380 "profiler.h",
381 "proxyserver.cc",
382 "proxyserver.h",
383 "refcount.h",
384 "referencecountedsingletonfactory.h",
385 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200387 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000388 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000389 "sharedexclusivelock.cc",
390 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "sslconfig.h",
392 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000393 "testclient.cc",
394 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000395 "transformadapter.cc",
396 "transformadapter.h",
397 "versionparsing.cc",
398 "versionparsing.h",
399 "virtualsocketserver.cc",
400 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000401 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000402 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200403 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 ]
405
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000406 deps += [ "..:webrtc_common" ]
407
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000408 if (is_posix) {
409 sources += [
410 "latebindingsymboltable.cc",
411 "latebindingsymboltable.cc.def",
412 "latebindingsymboltable.h",
413 "latebindingsymboltable.h.def",
414 "posix.cc",
415 "posix.h",
416 ]
417 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000418
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000419 if (is_linux) {
420 sources += [
421 "dbus.cc",
422 "dbus.h",
423 "libdbusglibsymboltable.cc",
424 "libdbusglibsymboltable.h",
425 "linuxfdwalk.c",
426 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000427 ]
428 }
429
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000430 if (is_mac) {
431 sources += [
432 "macasyncsocket.cc",
433 "macasyncsocket.h",
434 "maccocoasocketserver.h",
435 "maccocoasocketserver.mm",
436 "macsocketserver.cc",
437 "macsocketserver.h",
438 "macwindowpicker.cc",
439 "macwindowpicker.h",
440 ]
441 }
442
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000443 if (is_win) {
444 sources += [
445 "diskcache_win32.cc",
446 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000447 "win32regkey.cc",
448 "win32regkey.h",
449 "win32socketinit.cc",
450 "win32socketinit.h",
451 "win32socketserver.cc",
452 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000453 ]
454 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000455 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000456 deps += [ "//third_party/jsoncpp" ]
457 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000458 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000459
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000460 # When defined changes the include path for json.h to where it is
461 # expected to be when building json outside of the standalone build.
462 defines += [ "WEBRTC_EXTERNAL_JSON" ]
463 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000464 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000466 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000467 # compiler settings.
468 configs -= [ "//build/config/compiler:chromium_code" ]
469 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000470 if (!is_win) {
471 cflags += [ "-Wno-uninitialized" ]
472 cflags_cc += [ "-Wno-non-virtual-dtor" ]
473 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000474
475 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000476 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000477 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000478 deps += [ "//third_party/boringssl" ]
479 } else {
480 configs += [ "external_ssl_library" ]
481 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000482 sources += [
483 "openssl.h",
484 "openssladapter.cc",
485 "openssladapter.h",
486 "openssldigest.cc",
487 "openssldigest.h",
488 "opensslidentity.cc",
489 "opensslidentity.h",
490 "opensslstreamadapter.cc",
491 "opensslstreamadapter.h",
492 ]
deadbeef9eb13652015-09-05 04:39:15 -0700493 } else {
494 public_configs += [ ":nss_config" ]
495 if (rtc_build_ssl) {
496 if (build_with_chromium) {
497 deps += [ "//crypto:platform" ]
498 } else {
499 deps += [ "//net/third_party/nss/ssl:libssl" ]
500 if (is_linux) {
501 deps += [ ":linux_system_ssl" ]
502 } else {
503 deps += [
504 "//third_party/nss:nspr",
505 "//third_party/nss:nss",
506 ]
507 }
508 }
509 } else {
510 configs += [ "external_ssl_library" ]
511 }
512 sources += [
513 "nssidentity.cc",
514 "nssidentity.h",
515 "nssstreamadapter.cc",
516 "nssstreamadapter.h",
517 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000518 }
519
520 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000521 sources += [
522 "ifaddrs-android.cc",
523 "ifaddrs-android.h",
524 ]
525
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000526 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000527 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200528 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000529 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000530 }
531
532 if (is_ios) {
Henrik Kjellander11e49852015-09-09 22:22:09 +0200533 all_dependent_configs = [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200534
535 sources += [
536 "macconversion.cc",
537 "macconversion.h",
538 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000539 }
540
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000541 if (use_x11) {
542 sources += [
543 "x11windowpicker.cc",
544 "x11windowpicker.h",
545 ]
546 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000547 "dl",
548 "rt",
549 "Xext",
550 "X11",
551 "Xcomposite",
552 "Xrender",
553 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000554 }
555
556 if (is_linux) {
557 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000558 "dl",
559 "rt",
560 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000561 }
562
563 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000564 sources += [
565 "maccocoathreadhelper.h",
566 "maccocoathreadhelper.mm",
567 "macconversion.cc",
568 "macconversion.h",
569 "macutils.cc",
570 "macutils.h",
571 ]
572
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000573 all_dependent_configs = [ ":mac_config" ]
574
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000575 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000576 all_dependent_configs += [ ":mac_x86_config" ]
577 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000578 }
579
580 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000581 sources += [
582 "schanneladapter.cc",
583 "schanneladapter.h",
584 "win32.cc",
585 "win32.h",
586 "win32filesystem.cc",
587 "win32filesystem.h",
588 "win32securityerrors.cc",
589 "win32window.cc",
590 "win32window.h",
591 "win32windowpicker.cc",
592 "win32windowpicker.h",
593 "winfirewall.cc",
594 "winfirewall.h",
595 "winping.cc",
596 "winping.h",
597 ]
598
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000599 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000600 "crypt32.lib",
601 "iphlpapi.lib",
602 "secur32.lib",
603 ]
604
605 cflags += [
606 # Suppress warnings about WIN32_LEAN_AND_MEAN.
607 "/wd4005",
608 "/wd4703",
609 ]
610
611 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000612 }
613
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000614 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000615 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000616 # _except_ for ios & mac. We want it there as well, e.g.
617 # because ASSERT and friends trigger off of it.
618 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000619 }
620
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000621 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000622 defines += [ "CARBON_DEPRECATED=YES" ]
623 }
624
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000625 if (is_linux || is_android) {
626 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000627 "linux.cc",
628 "linux.h",
629 ]
630 }
Sergey Ulanov098c1de2015-09-01 11:36:40 -0700631
632 if (is_nacl) {
633 deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
634 defines += [ "timezone=_timezone" ]
635 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000636}