blob: 3be8a3aeca2763ed340d3822f37393c785f74e63 [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
13config("webrtc_base_config") {
14 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",
22 "USE_WEBRTC_DEV_BRANCH",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000023 ]
24
25 # TODO(henrike): issue 3307, make webrtc_base build without disabling
26 # these flags.
27 cflags_cc = [ "-Wno-non-virtual-dtor" ]
28}
29
30config("webrtc_base_chromium_config") {
31 defines = [
32 "NO_MAIN_THREAD_WRAPPING",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000033 ]
34}
35
36config("openssl_config") {
37 defines = [
38 "SSL_USE_OPENSSL",
39 "HAVE_OPENSSL_SSL_H",
40 ]
41}
42
pbos@webrtc.org77d5a572014-10-07 11:43:03 +000043config("no_openssl_config") {
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000044 defines = [
45 "SSL_USE_NSS",
46 "HAVE_NSS_SSL_H",
47 "SSL_USE_NSS_RNG",
48 ]
49}
50
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000051config("ios_config") {
52 ldflags = [
53 #"Foundation.framework", # Already included in //build/config:default_libs.
54 "Security.framework",
55 "SystemConfiguration.framework",
56 #"UIKit.framework", # Already included in //build/config:default_libs.
57 ]
58}
59
60config("mac_config") {
61 ldflags = [
62 "Cocoa.framework",
63 #"Foundation.framework", # Already included in //build/config:default_libs.
64 #"IOKit.framework", # Already included in //build/config:default_libs.
65 #"Security.framework", # Already included in //build/config:default_libs.
66 "SystemConfiguration.framework",
67 ]
68}
69
70config("mac_x86_config") {
71 libs = [
72 #"Carbon.framework", # Already included in //build/config:default_libs.
73 ]
74}
75
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000076if (is_linux && !build_with_chromium) {
77 # Provides the same functionality as the //crypto:platform target, which
78 # WebRTC cannot use as we don't sync src/crypto from Chromium.
79 group("linux_system_ssl") {
80 if (use_openssl) {
81 deps = [ "//third_party/boringssl" ]
82 } else {
83 deps = [ "//net/third_party/nss/ssl:libssl" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000084
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000085 public_configs = [
kjellander@webrtc.org4a251992014-08-18 17:56:28 +000086 "//net/third_party/nss/ssl:ssl_config",
87 "//third_party/nss:system_nss_no_ssl_config",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +000088 ]
89 }
90 }
91}
92
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000093if (rtc_build_ssl == 0) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000094 config("external_ssl_library") {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +000095 assert(rtc_ssl_root != "",
96 "You must specify rtc_ssl_root when rtc_build_ssl==0.")
97 include_dirs = [ rtc_ssl_root ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +000098 }
99}
kjellander@webrtc.org4a251992014-08-18 17:56:28 +0000100
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000101# The subset of rtc_base approved for use outside of libjingle.
102static_library("rtc_base_approved") {
103 configs += [ "..:common_config" ]
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000104 public_configs = [ "..:common_inherited_config" ]
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000105
106 sources = [
107 "checks.cc",
108 "checks.h",
109 "exp_filter.cc",
110 "exp_filter.h",
111 "md5.cc",
112 "md5.h",
113 "md5digest.h",
114 "stringencode.cc",
115 "stringencode.h",
116 "stringutils.cc",
117 "stringutils.h",
pbos@webrtc.org38344ed2014-09-24 06:05:00 +0000118 "thread_annotations.h",
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000119 "timeutils.cc",
120 "timeutils.h",
121 ]
122}
123
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000124static_library("webrtc_base") {
125 cflags = []
126 cflags_cc = []
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000127 libs = []
andrew@webrtc.org6ae5a6d2014-09-16 01:03:29 +0000128 deps = [
129 ":rtc_base_approved",
130 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000131
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000132 configs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000133 "..:common_config",
134 ":webrtc_base_config",
135 ]
136
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000137 public_configs = [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000138 "..:common_inherited_config",
139 ":webrtc_base_config",
140 ]
141
142 defines = [
143 "LOGGING=1",
144 "USE_WEBRTC_DEV_BRANCH",
145 ]
146
147 sources = [
148 "asyncfile.cc",
149 "asyncfile.h",
150 "asynchttprequest.cc",
151 "asynchttprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000152 "asyncpacketsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000153 "asyncsocket.cc",
154 "asyncsocket.h",
155 "asynctcpsocket.cc",
156 "asynctcpsocket.h",
157 "asyncudpsocket.cc",
158 "asyncudpsocket.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000159 "autodetectproxy.cc",
160 "autodetectproxy.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000161 "base64.cc",
162 "base64.h",
163 "basicdefs.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000164 "bytebuffer.cc",
165 "bytebuffer.h",
166 "byteorder.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000167 "common.cc",
168 "common.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000169 "cpumonitor.cc",
170 "cpumonitor.h",
171 "crc32.cc",
172 "crc32.h",
173 "criticalsection.h",
174 "cryptstring.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000175 "diskcache.cc",
176 "diskcache.h",
177 "event.cc",
178 "event.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000179 "fileutils.cc",
180 "fileutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000181 "firewallsocketserver.cc",
182 "firewallsocketserver.h",
183 "flags.cc",
184 "flags.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000185 "gunit_prod.h",
186 "helpers.cc",
187 "helpers.h",
188 "httpbase.cc",
189 "httpbase.h",
190 "httpclient.cc",
191 "httpclient.h",
192 "httpcommon-inl.h",
193 "httpcommon.cc",
194 "httpcommon.h",
195 "httprequest.cc",
196 "httprequest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000197 "iosfilesystem.mm",
198 "ipaddress.cc",
199 "ipaddress.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000200 "linked_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000201 "mathutils.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000202 "messagedigest.cc",
203 "messagedigest.h",
204 "messagehandler.cc",
205 "messagehandler.h",
206 "messagequeue.cc",
207 "messagequeue.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000208 "nethelpers.cc",
209 "nethelpers.h",
210 "network.cc",
211 "network.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000212 "nullsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000213 "pathutils.cc",
214 "pathutils.h",
215 "physicalsocketserver.cc",
216 "physicalsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000217 "proxydetect.cc",
218 "proxydetect.h",
219 "proxyinfo.cc",
220 "proxyinfo.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000221 "ratelimiter.cc",
222 "ratelimiter.h",
223 "ratetracker.cc",
224 "ratetracker.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000225 "safe_conversions.h",
226 "safe_conversions_impl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000227 "scoped_autorelease_pool.h",
228 "scoped_autorelease_pool.mm",
229 "scoped_ptr.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000230 "sha1.cc",
231 "sha1.h",
232 "sha1digest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000233 "signalthread.cc",
234 "signalthread.h",
235 "sigslot.h",
236 "sigslotrepeater.h",
237 "socket.h",
238 "socketadapters.cc",
239 "socketadapters.h",
240 "socketaddress.cc",
241 "socketaddress.h",
242 "socketaddresspair.cc",
243 "socketaddresspair.h",
244 "socketfactory.h",
245 "socketpool.cc",
246 "socketpool.h",
247 "socketserver.h",
248 "socketstream.cc",
249 "socketstream.h",
250 "ssladapter.cc",
251 "ssladapter.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000252 "sslfingerprint.cc",
253 "sslfingerprint.h",
254 "sslidentity.cc",
255 "sslidentity.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000256 "sslsocketfactory.cc",
257 "sslsocketfactory.h",
258 "sslstreamadapter.cc",
259 "sslstreamadapter.h",
260 "sslstreamadapterhelper.cc",
261 "sslstreamadapterhelper.h",
262 "stream.cc",
263 "stream.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000264 "systeminfo.cc",
265 "systeminfo.h",
266 "task.cc",
267 "task.h",
268 "taskparent.cc",
269 "taskparent.h",
270 "taskrunner.cc",
271 "taskrunner.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000272 "thread.cc",
273 "thread.h",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000274 "thread_checker.h",
275 "thread_checker_impl.cc",
276 "thread_checker_impl.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000277 "timing.cc",
278 "timing.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000279 "urlencode.cc",
280 "urlencode.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000281 "worker.cc",
282 "worker.h",
283 ]
284
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000285 if (is_posix) {
286 sources += [
287 "unixfilesystem.cc",
288 "unixfilesystem.h",
289 ]
290 }
291
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000292 if (build_with_chromium) {
293 sources += [
294 "../overrides/webrtc/base/basictypes.h",
295 "../overrides/webrtc/base/constructormagic.h",
296 "../overrides/webrtc/base/logging.cc",
297 "../overrides/webrtc/base/logging.h",
298 ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000299
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000300 if (is_win) {
301 sources += [ "../overrides/webrtc/base/win32socketinit.cc" ]
302 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000303
304 include_dirs = [
305 "../overrides",
henrike@webrtc.org6ac22e62014-08-11 21:06:30 +0000306 "../../boringssl/src/include",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000307 ]
308
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000309 public_configs += [ ":webrtc_base_chromium_config" ]
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000310 } else {
311 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000312 "asyncinvoker.cc",
313 "asyncinvoker.h",
314 "asyncinvoker-inl.h",
315 "asyncresolverinterface.h",
316 "atomicops.h",
317 "bandwidthsmoother.cc",
318 "bandwidthsmoother.h",
319 "basictypes.h",
320 "bind.h",
321 "bind.h.pump",
322 "buffer.h",
323 "callback.h",
324 "callback.h.pump",
325 "constructormagic.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000326 "filelock.cc",
327 "filelock.h",
328 "fileutils_mock.h",
329 "genericslot.h",
330 "genericslot.h.pump",
331 "httpserver.cc",
332 "httpserver.h",
333 "json.cc",
334 "json.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000335 "logging.cc",
336 "logging.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000337 "mathutils.h",
338 "multipart.cc",
339 "multipart.h",
340 "natserver.cc",
341 "natserver.h",
342 "natsocketfactory.cc",
343 "natsocketfactory.h",
344 "nattypes.cc",
345 "nattypes.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000346 "optionsfile.cc",
347 "optionsfile.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000348 "profiler.cc",
349 "profiler.h",
350 "proxyserver.cc",
351 "proxyserver.h",
352 "refcount.h",
353 "referencecountedsingletonfactory.h",
354 "rollingaccumulator.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000355 "scopedptrcollection.h",
356 "scoped_ref_ptr.h",
357 "sec_buffer.h",
358 "sharedexclusivelock.cc",
359 "sharedexclusivelock.h",
360 "sslconfig.h",
361 "sslroots.h",
362 "stringdigest.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000363 "testclient.cc",
364 "testclient.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000365 "transformadapter.cc",
366 "transformadapter.h",
367 "versionparsing.cc",
368 "versionparsing.h",
369 "virtualsocketserver.cc",
370 "virtualsocketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000371 "window.h",
372 "windowpickerfactory.h",
373 "windowpicker.h",
374 ]
375
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000376 if (is_posix) {
377 sources += [
378 "latebindingsymboltable.cc",
379 "latebindingsymboltable.cc.def",
380 "latebindingsymboltable.h",
381 "latebindingsymboltable.h.def",
382 "posix.cc",
383 "posix.h",
384 ]
385 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000386
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000387 if (is_linux) {
388 sources += [
389 "dbus.cc",
390 "dbus.h",
391 "libdbusglibsymboltable.cc",
392 "libdbusglibsymboltable.h",
393 "linuxfdwalk.c",
394 "linuxfdwalk.h",
henrike@webrtc.orgfb1eb432014-08-15 14:44:13 +0000395 ]
396 }
397
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000398 if (is_mac) {
399 sources += [
400 "macasyncsocket.cc",
401 "macasyncsocket.h",
402 "maccocoasocketserver.h",
403 "maccocoasocketserver.mm",
404 "macsocketserver.cc",
405 "macsocketserver.h",
406 "macwindowpicker.cc",
407 "macwindowpicker.h",
408 ]
409 }
410
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000411 if (is_win) {
412 sources += [
413 "diskcache_win32.cc",
414 "diskcache_win32.h",
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000415 "win32regkey.cc",
416 "win32regkey.h",
417 "win32socketinit.cc",
418 "win32socketinit.h",
419 "win32socketserver.cc",
420 "win32socketserver.h",
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000421 ]
422 }
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000423 if (rtc_build_json) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000424 deps += [ "//third_party/jsoncpp" ]
425 } else {
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000426 include_dirs += [ rtc_jsoncpp_root ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000427
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000428 # When defined changes the include path for json.h to where it is
429 # expected to be when building json outside of the standalone build.
430 defines += [ "WEBRTC_EXTERNAL_JSON" ]
431 }
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000432 } # !build_with_chromium
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000433
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000434 if (is_clang) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000435 # Suppress warnings from the Chrome Clang plugins.
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000436 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
437 configs -= [ "//build/config/clang:find_bad_constructs" ]
438 }
439
kjellander@webrtc.org62711f82014-06-29 13:37:08 +0000440 # TODO(henrike): issue 3307, make webrtc_base build with the Chromium default
441 # compiler settings.
442 configs -= [ "//build/config/compiler:chromium_code" ]
443 configs += [ "//build/config/compiler:no_chromium_code" ]
444 cflags += [ "-Wno-uninitialized" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000445 cflags_cc += [ "-Wno-non-virtual-dtor" ]
446
447 if (use_openssl) {
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000448 public_configs += [ ":openssl_config" ]
kjellander@webrtc.org6d08ca62014-09-07 17:36:10 +0000449 if (rtc_build_ssl) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000450 deps += [ "//third_party/boringssl" ]
451 } else {
452 configs += [ "external_ssl_library" ]
453 }
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000454 sources += [
455 "openssl.h",
456 "openssladapter.cc",
457 "openssladapter.h",
458 "openssldigest.cc",
459 "openssldigest.h",
460 "opensslidentity.cc",
461 "opensslidentity.h",
462 "opensslstreamadapter.cc",
463 "opensslstreamadapter.h",
464 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000465 } else {
pbos@webrtc.org77d5a572014-10-07 11:43:03 +0000466 public_configs += [ ":no_openssl_config" ]
pthatcher@webrtc.org5d0071f2014-09-26 18:53:40 +0000467 sources += [
468 "nssidentity.cc",
469 "nssidentity.h",
470 "nssstreamadapter.cc",
471 "nssstreamadapter.h",
472 ]
pbos@webrtc.org77d5a572014-10-07 11:43:03 +0000473 if (is_mac || is_ios || is_win) {
474 if (rtc_build_ssl) {
475 deps += [
476 "//net/third_party/nss/ssl:libssl",
477 "//third_party/nss:nspr",
478 "//third_party/nss:nss",
479 ]
480 } else {
481 configs += [ "external_ssl_library" ]
482 }
483 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000484 }
485
486 if (is_android) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000487 sources += [
488 "ifaddrs-android.cc",
489 "ifaddrs-android.h",
490 ]
491
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000492 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000493 "log",
494 "GLESv2"
495 ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000496 }
497
498 if (is_ios) {
499 all_dependent_configs += [ ":ios_config" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000500 }
501
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000502 if (use_x11) {
503 sources += [
504 "x11windowpicker.cc",
505 "x11windowpicker.h",
506 ]
507 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000508 "dl",
509 "rt",
510 "Xext",
511 "X11",
512 "Xcomposite",
513 "Xrender",
514 ]
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000515 }
516
517 if (is_linux) {
518 libs += [
pbos@webrtc.org77d5a572014-10-07 11:43:03 +0000519 "crypto",
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000520 "dl",
521 "rt",
522 ]
pbos@webrtc.org77d5a572014-10-07 11:43:03 +0000523 if (rtc_build_ssl) {
524 configs += [ "//third_party/nss:system_nss_no_ssl_config" ]
525 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000526 }
527
528 if (is_mac) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000529 sources += [
530 "maccocoathreadhelper.h",
531 "maccocoathreadhelper.mm",
532 "macconversion.cc",
533 "macconversion.h",
534 "macutils.cc",
535 "macutils.h",
536 ]
537
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000538 all_dependent_configs = [ ":mac_config" ]
539
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000540 if (cpu_arch == "x86") {
541 all_dependent_configs += [ ":mac_x86_config" ]
542 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000543 }
544
545 if (is_win) {
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000546 sources += [
547 "schanneladapter.cc",
548 "schanneladapter.h",
549 "win32.cc",
550 "win32.h",
551 "win32filesystem.cc",
552 "win32filesystem.h",
553 "win32securityerrors.cc",
554 "win32window.cc",
555 "win32window.h",
556 "win32windowpicker.cc",
557 "win32windowpicker.h",
558 "winfirewall.cc",
559 "winfirewall.h",
560 "winping.cc",
561 "winping.h",
562 ]
563
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000564 libs += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000565 "crypt32.lib",
566 "iphlpapi.lib",
567 "secur32.lib",
568 ]
569
570 cflags += [
571 # Suppress warnings about WIN32_LEAN_AND_MEAN.
572 "/wd4005",
573 "/wd4703",
574 ]
575
576 defines += [ "_CRT_NONSTDC_NO_DEPRECATE" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000577 }
578
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000579 if (is_posix && is_debug) {
kjellander@webrtc.orge281f7f2014-09-02 11:22:06 +0000580 # The Chromium build/common.gypi defines this for all posix
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000581 # _except_ for ios & mac. We want it there as well, e.g.
582 # because ASSERT and friends trigger off of it.
583 defines += [ "_DEBUG" ]
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000584 }
585
586 if (is_ios || (is_mac && cpu_arch != "x86")) {
587 defines += [ "CARBON_DEPRECATED=YES" ]
588 }
589
kjellander@webrtc.org7497fa72014-06-28 18:05:22 +0000590 if (is_linux || is_android) {
591 sources += [
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000592 "linux.cc",
593 "linux.h",
594 ]
595 }
pbos@webrtc.org77d5a572014-10-07 11:43:03 +0000596
597 if (is_posix && !is_mac && !is_ios && !is_android) {
598 if (build_with_chromium) {
599 deps += [ "//crypto:platform" ]
600 } else {
601 if (rtc_build_ssl) {
602 deps += [ ":linux_system_ssl" ]
603 } else {
604 configs += [ "external_ssl_library" ]
605 }
606 }
607 }
kjellander@webrtc.org851a09e2014-06-17 08:54:03 +0000608}