blob: 2535a641c4e545320f92afd84ae6317d33181414 [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
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +000042config("nss_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000043 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 ]
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000087 } else {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +020088 deps = [
89 "//net/third_party/nss/ssl:libssl",
90 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000091
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000092 public_configs = [
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000093 "//net/third_party/nss/ssl:ssl_config",
94 "//third_party/nss:system_nss_no_ssl_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000095 ]
96 }
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",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000144 "stringencode.cc",
145 "stringencode.h",
146 "stringutils.cc",
147 "stringutils.h",
kwiberg@webrtc.orgaf9d56f2015-01-13 20:32:04 +0000148 "template_util.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000149 "thread_annotations.h",
tommi@webrtc.org04cd4662015-01-26 15:27:29 +0000150 "thread_checker.h",
151 "thread_checker_impl.cc",
152 "thread_checker_impl.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000153 "timeutils.cc",
154 "timeutils.h",
tommi@webrtc.org7c64ed22015-03-17 14:25:37 +0000155 "trace_event.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000156 ]
Noah Richards915590e2015-04-22 15:43:08 -0700157
158 if (build_with_chromium) {
159 sources += [
160 "../overrides/webrtc/base/basictypes.h",
161 "../overrides/webrtc/base/constructormagic.h",
162 ]
163 } else {
164 sources += [
165 "basictypes.h",
166 "constructormagic.h",
Tommi23edcff2015-05-25 10:45:43 +0200167 "logging.cc",
168 "logging.h",
Noah Richards915590e2015-04-22 15:43:08 -0700169 ]
170 }
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000171}
172
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000173static_library("rtc_base") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000174 cflags = []
175 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000176 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000177 deps = [
178 ":rtc_base_approved",
179 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000180
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000182 "..:common_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000183 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000184 ]
185
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000186 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000187 "..:common_inherited_config",
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000188 ":rtc_base_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000189 ]
190
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200191 defines = [ "LOGGING=1" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000192
193 sources = [
pkasting@chromium.orge7a4a122015-01-28 21:36:55 +0000194 "arraysize.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000195 "asyncfile.cc",
196 "asyncfile.h",
197 "asynchttprequest.cc",
198 "asynchttprequest.h",
Guo-wei Shiehecb9a70c2015-06-21 23:37:01 -0700199 "asyncinvoker-inl.h",
200 "asyncinvoker.cc",
201 "asyncinvoker.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000202 "asyncpacketsocket.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000203 "asyncpacketsocket.h",
kwiberg@webrtc.orgdad85aa2015-03-10 00:59:54 +0000204 "asyncresolverinterface.cc",
205 "asyncresolverinterface.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000206 "asyncsocket.cc",
207 "asyncsocket.h",
208 "asynctcpsocket.cc",
209 "asynctcpsocket.h",
210 "asyncudpsocket.cc",
211 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "autodetectproxy.cc",
213 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000214 "base64.cc",
215 "base64.h",
216 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "common.cc",
218 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000219 "cpumonitor.cc",
220 "cpumonitor.h",
221 "crc32.cc",
222 "crc32.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000223 "cryptstring.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000224 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000225 "diskcache.cc",
226 "diskcache.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "fileutils.cc",
228 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000229 "firewallsocketserver.cc",
230 "firewallsocketserver.h",
231 "flags.cc",
232 "flags.h",
pkasting@chromium.org4591fbd2014-11-20 22:28:14 +0000233 "format_macros.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000234 "gunit_prod.h",
235 "helpers.cc",
236 "helpers.h",
237 "httpbase.cc",
238 "httpbase.h",
239 "httpclient.cc",
240 "httpclient.h",
241 "httpcommon-inl.h",
242 "httpcommon.cc",
243 "httpcommon.h",
244 "httprequest.cc",
245 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000246 "iosfilesystem.mm",
247 "ipaddress.cc",
248 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000249 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000250 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000251 "messagedigest.cc",
252 "messagedigest.h",
253 "messagehandler.cc",
254 "messagehandler.h",
255 "messagequeue.cc",
256 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000257 "nethelpers.cc",
258 "nethelpers.h",
259 "network.cc",
260 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000261 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000262 "pathutils.cc",
263 "pathutils.h",
264 "physicalsocketserver.cc",
265 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000266 "proxydetect.cc",
267 "proxydetect.h",
268 "proxyinfo.cc",
269 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000270 "ratelimiter.cc",
271 "ratelimiter.h",
272 "ratetracker.cc",
273 "ratetracker.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000274 "scoped_autorelease_pool.h",
275 "scoped_autorelease_pool.mm",
276 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "sha1.cc",
278 "sha1.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000279 "sha1digest.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000280 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "signalthread.cc",
282 "signalthread.h",
kwiberg@webrtc.org67186fe2015-03-09 22:21:53 +0000283 "sigslot.cc",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000284 "sigslot.h",
285 "sigslotrepeater.h",
286 "socket.h",
287 "socketadapters.cc",
288 "socketadapters.h",
289 "socketaddress.cc",
290 "socketaddress.h",
291 "socketaddresspair.cc",
292 "socketaddresspair.h",
293 "socketfactory.h",
294 "socketpool.cc",
295 "socketpool.h",
296 "socketserver.h",
297 "socketstream.cc",
298 "socketstream.h",
299 "ssladapter.cc",
300 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000301 "sslfingerprint.cc",
302 "sslfingerprint.h",
303 "sslidentity.cc",
304 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000305 "sslsocketfactory.cc",
306 "sslsocketfactory.h",
307 "sslstreamadapter.cc",
308 "sslstreamadapter.h",
309 "sslstreamadapterhelper.cc",
310 "sslstreamadapterhelper.h",
311 "stream.cc",
312 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000313 "systeminfo.cc",
314 "systeminfo.h",
315 "task.cc",
316 "task.h",
317 "taskparent.cc",
318 "taskparent.h",
319 "taskrunner.cc",
320 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000321 "thread.cc",
322 "thread.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000323 "timing.cc",
324 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000325 "urlencode.cc",
326 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000327 "worker.cc",
328 "worker.h",
329 ]
330
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000331 if (is_posix) {
332 sources += [
333 "unixfilesystem.cc",
334 "unixfilesystem.h",
335 ]
336 }
337
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000338 if (build_with_chromium) {
339 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000340 "../overrides/webrtc/base/logging.cc",
341 "../overrides/webrtc/base/logging.h",
342 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000343
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000344 deps += [ "..:webrtc_common" ]
345
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 if (is_win) {
347 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
348 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000349
350 include_dirs = [
351 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000352 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000353 ]
354
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000355 public_configs += [ ":rtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000356 } else {
357 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000358 "bandwidthsmoother.cc",
359 "bandwidthsmoother.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000360 "bind.h",
361 "bind.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000362 "callback.h",
363 "callback.h.pump",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000364 "fileutils_mock.h",
365 "genericslot.h",
366 "genericslot.h.pump",
367 "httpserver.cc",
368 "httpserver.h",
369 "json.cc",
370 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "mathutils.h",
372 "multipart.cc",
373 "multipart.h",
374 "natserver.cc",
375 "natserver.h",
376 "natsocketfactory.cc",
377 "natsocketfactory.h",
378 "nattypes.cc",
379 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000380 "optionsfile.cc",
381 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000382 "profiler.cc",
383 "profiler.h",
384 "proxyserver.cc",
385 "proxyserver.h",
386 "refcount.h",
387 "referencecountedsingletonfactory.h",
388 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000389 "scoped_ref_ptr.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200390 "scopedptrcollection.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000391 "sec_buffer.h",
tommi@webrtc.orgfe196992015-02-07 22:35:54 +0000392 "sharedexclusivelock.cc",
393 "sharedexclusivelock.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000394 "sslconfig.h",
395 "sslroots.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000396 "testclient.cc",
397 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000398 "transformadapter.cc",
399 "transformadapter.h",
400 "versionparsing.cc",
401 "versionparsing.h",
402 "virtualsocketserver.cc",
403 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000404 "window.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000405 "windowpicker.h",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200406 "windowpickerfactory.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000407 ]
408
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000409 deps += [ "..:webrtc_common" ]
410
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000411 if (is_posix) {
412 sources += [
413 "latebindingsymboltable.cc",
414 "latebindingsymboltable.cc.def",
415 "latebindingsymboltable.h",
416 "latebindingsymboltable.h.def",
417 "posix.cc",
418 "posix.h",
419 ]
420 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000421
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000422 if (is_linux) {
423 sources += [
424 "dbus.cc",
425 "dbus.h",
426 "libdbusglibsymboltable.cc",
427 "libdbusglibsymboltable.h",
428 "linuxfdwalk.c",
429 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000430 ]
431 }
432
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000433 if (is_mac) {
434 sources += [
435 "macasyncsocket.cc",
436 "macasyncsocket.h",
437 "maccocoasocketserver.h",
438 "maccocoasocketserver.mm",
439 "macsocketserver.cc",
440 "macsocketserver.h",
441 "macwindowpicker.cc",
442 "macwindowpicker.h",
443 ]
444 }
445
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000446 if (is_win) {
447 sources += [
448 "diskcache_win32.cc",
449 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000450 "win32regkey.cc",
451 "win32regkey.h",
452 "win32socketinit.cc",
453 "win32socketinit.h",
454 "win32socketserver.cc",
455 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000456 ]
457 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000458 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000459 deps += [ "//third_party/jsoncpp" ]
460 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000461 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000462
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000463 # When defined changes the include path for json.h to where it is
464 # expected to be when building json outside of the standalone build.
465 defines += [ "WEBRTC_EXTERNAL_JSON" ]
466 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000467 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000468
kjellander@webrtc.orgc429b822015-01-21 20:22:33 +0000469 # TODO(henrike): issue 3307, make rtc_base build with the Chromium default
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000470 # compiler settings.
471 configs -= [ "//build/config/compiler:chromium_code" ]
472 configs += [ "//build/config/compiler:no_chromium_code" ]
kjellander@webrtc.orgc8bc7172014-12-12 12:10:46 +0000473 if (!is_win) {
474 cflags += [ "-Wno-uninitialized" ]
475 cflags_cc += [ "-Wno-non-virtual-dtor" ]
476 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000477
478 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000479 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000480 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000481 deps += [ "//third_party/boringssl" ]
482 } else {
483 configs += [ "external_ssl_library" ]
484 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000485 sources += [
486 "openssl.h",
487 "openssladapter.cc",
488 "openssladapter.h",
489 "openssldigest.cc",
490 "openssldigest.h",
491 "opensslidentity.cc",
492 "opensslidentity.h",
493 "opensslstreamadapter.cc",
494 "opensslstreamadapter.h",
495 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000496 } else {
henrike@webrtc.org33a0e2d2014-10-27 18:13:40 +0000497 public_configs += [ ":nss_config" ]
498 if (rtc_build_ssl) {
499 if (build_with_chromium) {
500 deps += [ "//crypto:platform" ]
501 } else {
502 deps += [ "//net/third_party/nss/ssl:libssl" ]
503 if (is_linux) {
504 deps += [ ":linux_system_ssl" ]
505 } else {
506 deps += [
507 "//third_party/nss:nspr",
508 "//third_party/nss:nss",
509 ]
510 }
511 }
512 } else {
513 configs += [ "external_ssl_library" ]
514 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000515 sources += [
516 "nssidentity.cc",
517 "nssidentity.h",
518 "nssstreamadapter.cc",
519 "nssstreamadapter.h",
520 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000521 }
522
523 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000524 sources += [
525 "ifaddrs-android.cc",
526 "ifaddrs-android.h",
527 ]
528
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000529 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000530 "log",
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200531 "GLESv2",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000532 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000533 }
534
535 if (is_ios) {
536 all_dependent_configs += [ ":ios_config" ]
Yuriy Shevchuk02ff9112015-05-21 13:50:59 +0200537
538 sources += [
539 "macconversion.cc",
540 "macconversion.h",
541 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000542 }
543
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000544 if (use_x11) {
545 sources += [
546 "x11windowpicker.cc",
547 "x11windowpicker.h",
548 ]
549 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000550 "dl",
551 "rt",
552 "Xext",
553 "X11",
554 "Xcomposite",
555 "Xrender",
556 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000557 }
558
559 if (is_linux) {
560 libs += [
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000561 "dl",
562 "rt",
563 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000564 }
565
566 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000567 sources += [
568 "maccocoathreadhelper.h",
569 "maccocoathreadhelper.mm",
570 "macconversion.cc",
571 "macconversion.h",
572 "macutils.cc",
573 "macutils.h",
574 ]
575
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000576 all_dependent_configs = [ ":mac_config" ]
577
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000578 if (current_cpu == "x86") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000579 all_dependent_configs += [ ":mac_x86_config" ]
580 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000581 }
582
583 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000584 sources += [
585 "schanneladapter.cc",
586 "schanneladapter.h",
587 "win32.cc",
588 "win32.h",
589 "win32filesystem.cc",
590 "win32filesystem.h",
591 "win32securityerrors.cc",
592 "win32window.cc",
593 "win32window.h",
594 "win32windowpicker.cc",
595 "win32windowpicker.h",
596 "winfirewall.cc",
597 "winfirewall.h",
598 "winping.cc",
599 "winping.h",
600 ]
601
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000602 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000603 "crypt32.lib",
604 "iphlpapi.lib",
605 "secur32.lib",
606 ]
607
608 cflags += [
609 # Suppress warnings about WIN32_LEAN_AND_MEAN.
610 "/wd4005",
611 "/wd4703",
612 ]
613
614 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000615 }
616
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000617 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000618 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000619 # _except_ for ios & mac. We want it there as well, e.g.
620 # because ASSERT and friends trigger off of it.
621 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000622 }
623
kjellander@webrtc.org72273912015-02-23 19:08:31 +0000624 if (is_ios || (is_mac && current_cpu != "x86")) {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000625 defines += [ "CARBON_DEPRECATED=YES" ]
626 }
627
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000628 if (is_linux || is_android) {
629 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000630 "linux.cc",
631 "linux.h",
632 ]
633 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000634}