Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / libjingle / libjingle.gyp
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 {
6   'includes': [
7     '../../build/win_precompile.gypi',
8   ],
9   'variables': {
10     'enabled_libjingle_device_manager%': 0,
11     'libjingle_additional_deps%': [],
12     'libjingle_peerconnection_additional_deps%': [],
13     'libjingle_source%': "source",
14     'libpeer_target_type%': 'static_library',
15     'libpeer_allocator_shim%': 0,
16   },
17   'target_defaults': {
18     'defines': [
19       'EXPAT_RELATIVE_PATH',
20       'FEATURE_ENABLE_SSL',
21       'GTEST_RELATIVE_PATH',
22       'HAVE_SRTP',
23       'HAVE_WEBRTC_VIDEO',
24       'HAVE_WEBRTC_VOICE',
25       'LOGGING_INSIDE_WEBRTC',
26       'NO_MAIN_THREAD_WRAPPING',
27       'NO_SOUND_SYSTEM',
28       'SRTP_RELATIVE_PATH',
29       'USE_WEBRTC_DEV_BRANCH',
30       'ENABLE_EXTERNAL_AUTH',
31     ],
32     'configurations': {
33       'Debug': {
34         'defines': [
35           # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
36           # _DEBUG and remove this define. See below as well.
37           '_DEBUG',
38         ],
39       }
40     },
41     'include_dirs': [
42       './overrides',
43       '../../third_party/webrtc/overrides',
44       './<(libjingle_source)',
45       '../..',
46       '../../testing/gtest/include',
47       '../../third_party',
48       '../../third_party/libyuv/include',
49       '../../third_party/usrsctp',
50     ],
51     'dependencies': [
52       '<(DEPTH)/base/base.gyp:base',
53       '<(DEPTH)/net/net.gyp:net',
54       '<(DEPTH)/third_party/expat/expat.gyp:expat',
55     ],
56     'export_dependent_settings': [
57       '<(DEPTH)/third_party/expat/expat.gyp:expat',
58     ],
59     'direct_dependent_settings': {
60       'include_dirs': [
61         '../../third_party/webrtc/overrides',
62         './overrides',
63         './<(libjingle_source)',
64         '../..',
65         '../../testing/gtest/include',
66         '../../third_party',
67       ],
68       'defines': [
69         'FEATURE_ENABLE_SSL',
70         'FEATURE_ENABLE_VOICEMAIL',
71         'EXPAT_RELATIVE_PATH',
72         'GTEST_RELATIVE_PATH',
73         'NO_MAIN_THREAD_WRAPPING',
74         'NO_SOUND_SYSTEM',
75       ],
76       'conditions': [
77         ['OS=="win"', {
78           'link_settings': {
79             'libraries': [
80               '-lsecur32.lib',
81               '-lcrypt32.lib',
82               '-liphlpapi.lib',
83             ],
84           },
85         }],
86         ['OS=="win"', {
87           'include_dirs': [
88             '../third_party/platformsdk_win7/files/Include',
89           ],
90           'defines': [
91             '_CRT_SECURE_NO_WARNINGS',  # Suppres warnings about _vsnprinf
92           ],
93           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
94           'msvs_disabled_warnings': [ 4267 ],
95         }],
96         ['OS=="linux"', {
97           'defines': [
98             'LINUX',
99             'WEBRTC_LINUX',
100           ],
101         }],
102         ['OS=="mac"', {
103           'defines': [
104             'OSX',
105             'WEBRTC_MAC',
106           ],
107         }],
108         ['OS=="ios"', {
109           'defines': [
110             'IOS',
111             'WEBRTC_MAC',
112             'WEBRTC_IOS',
113           ],
114         }],
115         ['OS=="win"', {
116           'defines': [
117             'WEBRTC_WIN',
118           ],
119         }],
120         ['OS=="android"', {
121           'defines': [
122             'ANDROID',
123           ],
124         }],
125         ['os_posix==1', {
126           'defines': [
127             'POSIX',
128             'WEBRTC_POSIX',
129           ],
130         }],
131         ['os_bsd==1', {
132           'defines': [
133             'BSD',
134           ],
135         }],
136         ['OS=="openbsd"', {
137           'defines': [
138             'OPENBSD',
139           ],
140         }],
141         ['OS=="freebsd"', {
142           'defines': [
143             'FREEBSD',
144           ],
145         }],
146         ['chromeos==1', {
147           'defines': [
148             'CHROMEOS',
149           ],
150         }],
151       ],
152     },
153     'all_dependent_settings': {
154       'configurations': {
155         'Debug': {
156           'defines': [
157             # TODO(sergeyu): Fix libjingle to use NDEBUG instead of
158             # _DEBUG and remove this define. See above as well.
159             '_DEBUG',
160           ],
161         }
162       },
163     },
164     'variables': {
165       'clang_warning_flags_unset': [
166         # Don't warn about string->bool used in asserts.
167         '-Wstring-conversion',
168       ],
169     },
170     'conditions': [
171       ['"<(libpeer_target_type)"=="static_library"', {
172         'defines': [ 'LIBPEERCONNECTION_LIB=1' ],
173       }],
174       ['use_openssl==1', {
175         'defines': [
176           'SSL_USE_OPENSSL',
177           'HAVE_OPENSSL_SSL_H',
178         ],
179         'dependencies': [
180           '../../third_party/boringssl/boringssl.gyp:boringssl',
181         ],
182       }, {
183         'defines': [
184           'SSL_USE_NSS',
185           'HAVE_NSS_SSL_H',
186           'SSL_USE_NSS_RNG',
187         ],
188         'conditions': [
189           ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
190             'dependencies': [
191               '<(DEPTH)/build/linux/system.gyp:ssl',
192             ],
193           }],
194           ['OS == "mac" or OS == "ios" or OS == "win"', {
195             'dependencies': [
196               '<(DEPTH)/net/third_party/nss/ssl.gyp:libssl',
197               '<(DEPTH)/third_party/nss/nss.gyp:nspr',
198               '<(DEPTH)/third_party/nss/nss.gyp:nss',
199             ],
200           }],
201         ],
202       }],
203       ['OS=="win"', {
204         'include_dirs': [
205           '../third_party/platformsdk_win7/files/Include',
206         ],
207         'conditions' : [
208           ['target_arch == "ia32"', {
209             'defines': [
210               '_USE_32BIT_TIME_T',
211             ],
212           }],
213         ],
214       }],
215       ['OS=="linux"', {
216         'defines': [
217           'LINUX',
218           'WEBRTC_LINUX',
219         ],
220       }],
221       ['OS=="mac"', {
222         'defines': [
223           'OSX',
224           'WEBRTC_MAC',
225         ],
226       }],
227       ['OS=="win"', {
228         'defines': [
229           'WEBRTC_WIN',
230         ],
231       }],
232       ['OS=="ios"', {
233         'defines': [
234           'IOS',
235           'WEBRTC_MAC',
236           'WEBRTC_IOS',
237         ],
238       }],
239       ['os_posix == 1', {
240         'defines': [
241           'POSIX',
242           'WEBRTC_POSIX',
243         ],
244       }],
245       ['os_bsd==1', {
246         'defines': [
247           'BSD',
248         ],
249       }],
250       ['OS=="openbsd"', {
251         'defines': [
252           'OPENBSD',
253         ],
254       }],
255       ['OS=="freebsd"', {
256         'defines': [
257           'FREEBSD',
258         ],
259       }],
260     ],
261   },
262   'targets': [
263     {
264       'target_name': 'libjingle',
265       'type': 'static_library',
266       'includes': [ 'libjingle_common.gypi' ],
267       'sources!' : [
268         # Compiled as part of libjingle_p2p_constants.
269         '<(libjingle_source)/talk/p2p/base/constants.cc',
270         '<(libjingle_source)/talk/p2p/base/constants.h',
271       ],
272       'dependencies': [
273         '<(DEPTH)/third_party/webrtc/base/base.gyp:webrtc_base',
274         'libjingle_p2p_constants',
275         '<@(libjingle_additional_deps)',
276       ],
277     },  # target libjingle
278     # This has to be is a separate project due to a bug in MSVS 2008 and the
279     # current toolset on android.  The problem is that we have two files named
280     # "constants.cc" and MSVS/android doesn't handle this properly.
281     # GYP currently has guards to catch this, so if you want to remove it,
282     # run GYP and if GYP has removed the validation check, then we can assume
283     # that the toolchains have been fixed (we currently use VS2010 and later,
284     # so VS2008 isn't a concern anymore).
285     {
286       'target_name': 'libjingle_p2p_constants',
287       'type': 'static_library',
288       'sources': [
289         '<(libjingle_source)/talk/p2p/base/constants.cc',
290         '<(libjingle_source)/talk/p2p/base/constants.h',
291       ],
292     },  # target libjingle_p2p_constants
293     {
294       'target_name': 'peerconnection_server',
295       'type': 'executable',
296       'sources': [
297         '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.cc',
298         '<(libjingle_source)/talk/examples/peerconnection/server/data_socket.h',
299         '<(libjingle_source)/talk/examples/peerconnection/server/main.cc',
300         '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.cc',
301         '<(libjingle_source)/talk/examples/peerconnection/server/peer_channel.h',
302         '<(libjingle_source)/talk/examples/peerconnection/server/utils.cc',
303         '<(libjingle_source)/talk/examples/peerconnection/server/utils.h',
304       ],
305       'include_dirs': [
306         '<(libjingle_source)',
307       ],
308       'dependencies': [
309         'libjingle',
310       ],
311       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
312       'msvs_disabled_warnings': [ 4309, ],
313     }, # target peerconnection_server
314   ],
315   'conditions': [
316     ['enable_webrtc==1', {
317       'targets': [
318         {
319           'target_name': 'libjingle_webrtc_common',
320           'type': 'static_library',
321           'all_dependent_settings': {
322             'conditions': [
323               ['"<(libpeer_target_type)"=="static_library"', {
324                 'defines': [ 'LIBPEERCONNECTION_LIB=1' ],
325               }],
326             ],
327           },
328           'sources': [
329             'overrides/talk/media/webrtc/webrtcexport.h',
330
331             '<(libjingle_source)/talk/app/webrtc/audiotrack.cc',
332             '<(libjingle_source)/talk/app/webrtc/audiotrack.h',
333             '<(libjingle_source)/talk/app/webrtc/audiotrackrenderer.cc',
334             '<(libjingle_source)/talk/app/webrtc/audiotrackrenderer.h',
335             '<(libjingle_source)/talk/app/webrtc/datachannel.cc',
336             '<(libjingle_source)/talk/app/webrtc/datachannel.h',
337             '<(libjingle_source)/talk/app/webrtc/dtmfsender.cc',
338             '<(libjingle_source)/talk/app/webrtc/dtmfsender.h',
339             '<(libjingle_source)/talk/app/webrtc/jsep.h',
340             '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.cc',
341             '<(libjingle_source)/talk/app/webrtc/jsepicecandidate.h',
342             '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.cc',
343             '<(libjingle_source)/talk/app/webrtc/jsepsessiondescription.h',
344             '<(libjingle_source)/talk/app/webrtc/localaudiosource.cc',
345             '<(libjingle_source)/talk/app/webrtc/localaudiosource.h',
346             '<(libjingle_source)/talk/app/webrtc/mediaconstraintsinterface.cc',
347             '<(libjingle_source)/talk/app/webrtc/mediaconstraintsinterface.h',
348             '<(libjingle_source)/talk/app/webrtc/mediastream.cc',
349             '<(libjingle_source)/talk/app/webrtc/mediastream.h',
350             '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.cc',
351             '<(libjingle_source)/talk/app/webrtc/mediastreamhandler.h',
352             '<(libjingle_source)/talk/app/webrtc/mediastreaminterface.h',
353             '<(libjingle_source)/talk/app/webrtc/mediastreamprovider.h',
354             '<(libjingle_source)/talk/app/webrtc/mediastreamproxy.h',
355             '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.cc',
356             '<(libjingle_source)/talk/app/webrtc/mediastreamsignaling.h',
357             '<(libjingle_source)/talk/app/webrtc/mediastreamtrack.h',
358             '<(libjingle_source)/talk/app/webrtc/mediastreamtrackproxy.h',
359             '<(libjingle_source)/talk/app/webrtc/notifier.h',
360             '<(libjingle_source)/talk/app/webrtc/peerconnection.cc',
361             '<(libjingle_source)/talk/app/webrtc/peerconnection.h',
362             '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.cc',
363             '<(libjingle_source)/talk/app/webrtc/peerconnectionfactory.h',
364             '<(libjingle_source)/talk/app/webrtc/peerconnectioninterface.h',
365             '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.cc',
366             '<(libjingle_source)/talk/app/webrtc/portallocatorfactory.h',
367             '<(libjingle_source)/talk/app/webrtc/remoteaudiosource.cc',
368             '<(libjingle_source)/talk/app/webrtc/remoteaudiosource.h',
369             '<(libjingle_source)/talk/app/webrtc/remotevideocapturer.cc',
370             '<(libjingle_source)/talk/app/webrtc/remotevideocapturer.h',
371             '<(libjingle_source)/talk/app/webrtc/sctputils.cc',
372             '<(libjingle_source)/talk/app/webrtc/sctputils.h',
373             '<(libjingle_source)/talk/app/webrtc/statscollector.cc',
374             '<(libjingle_source)/talk/app/webrtc/statscollector.h',
375             '<(libjingle_source)/talk/app/webrtc/statstypes.h',
376             '<(libjingle_source)/talk/app/webrtc/streamcollection.h',
377             '<(libjingle_source)/talk/app/webrtc/umametrics.h',
378             '<(libjingle_source)/talk/app/webrtc/videosource.cc',
379             '<(libjingle_source)/talk/app/webrtc/videosource.h',
380             '<(libjingle_source)/talk/app/webrtc/videosourceinterface.h',
381             '<(libjingle_source)/talk/app/webrtc/videosourceproxy.h',
382             '<(libjingle_source)/talk/app/webrtc/videotrack.cc',
383             '<(libjingle_source)/talk/app/webrtc/videotrack.h',
384             '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.cc',
385             '<(libjingle_source)/talk/app/webrtc/videotrackrenderers.h',
386             '<(libjingle_source)/talk/app/webrtc/webrtcsdp.cc',
387             '<(libjingle_source)/talk/app/webrtc/webrtcsdp.h',
388             '<(libjingle_source)/talk/app/webrtc/webrtcsession.cc',
389             '<(libjingle_source)/talk/app/webrtc/webrtcsession.h',
390             '<(libjingle_source)/talk/app/webrtc/webrtcsessiondescriptionfactory.cc',
391             '<(libjingle_source)/talk/app/webrtc/webrtcsessiondescriptionfactory.h',
392             '<(libjingle_source)/talk/media/base/audiorenderer.h',
393             '<(libjingle_source)/talk/media/base/capturemanager.cc',
394             '<(libjingle_source)/talk/media/base/capturemanager.h',
395             '<(libjingle_source)/talk/media/base/capturerenderadapter.cc',
396             '<(libjingle_source)/talk/media/base/capturerenderadapter.h',
397             '<(libjingle_source)/talk/media/base/codec.cc',
398             '<(libjingle_source)/talk/media/base/codec.h',
399             '<(libjingle_source)/talk/media/base/constants.cc',
400             '<(libjingle_source)/talk/media/base/constants.h',
401             '<(libjingle_source)/talk/media/base/cryptoparams.h',
402             '<(libjingle_source)/talk/media/base/filemediaengine.cc',
403             '<(libjingle_source)/talk/media/base/filemediaengine.h',
404             '<(libjingle_source)/talk/media/base/hybriddataengine.h',
405             '<(libjingle_source)/talk/media/base/mediachannel.h',
406             '<(libjingle_source)/talk/media/base/mediaengine.cc',
407             '<(libjingle_source)/talk/media/base/mediaengine.h',
408             '<(libjingle_source)/talk/media/base/rtpdataengine.cc',
409             '<(libjingle_source)/talk/media/base/rtpdataengine.h',
410             '<(libjingle_source)/talk/media/base/rtpdump.cc',
411             '<(libjingle_source)/talk/media/base/rtpdump.h',
412             '<(libjingle_source)/talk/media/base/rtputils.cc',
413             '<(libjingle_source)/talk/media/base/rtputils.h',
414             '<(libjingle_source)/talk/media/base/streamparams.cc',
415             '<(libjingle_source)/talk/media/base/streamparams.h',
416             '<(libjingle_source)/talk/media/base/videoadapter.cc',
417             '<(libjingle_source)/talk/media/base/videoadapter.h',
418             '<(libjingle_source)/talk/media/base/videocapturer.cc',
419             '<(libjingle_source)/talk/media/base/videocapturer.h',
420             '<(libjingle_source)/talk/media/base/videocommon.cc',
421             '<(libjingle_source)/talk/media/base/videocommon.h',
422             '<(libjingle_source)/talk/media/base/videoframe.cc',
423             '<(libjingle_source)/talk/media/base/videoframe.h',
424             '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
425             '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
426             '<(libjingle_source)/talk/media/devices/filevideocapturer.cc',
427             '<(libjingle_source)/talk/media/devices/filevideocapturer.h',
428             '<(libjingle_source)/talk/media/webrtc/webrtccommon.h',
429             '<(libjingle_source)/talk/media/webrtc/webrtcpassthroughrender.cc',
430             '<(libjingle_source)/talk/media/webrtc/webrtcpassthroughrender.h',
431             '<(libjingle_source)/talk/media/webrtc/webrtctexturevideoframe.cc',
432             '<(libjingle_source)/talk/media/webrtc/webrtctexturevideoframe.h',
433             '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.cc',
434             '<(libjingle_source)/talk/media/webrtc/webrtcvideocapturer.h',
435             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.cc',
436             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframe.h',
437             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframefactory.cc',
438             '<(libjingle_source)/talk/media/webrtc/webrtcvideoframefactory.h',
439             '<(libjingle_source)/talk/media/webrtc/webrtcvie.h',
440             '<(libjingle_source)/talk/media/webrtc/webrtcvoe.h',
441             '<(libjingle_source)/talk/session/media/audiomonitor.cc',
442             '<(libjingle_source)/talk/session/media/audiomonitor.h',
443             '<(libjingle_source)/talk/session/media/bundlefilter.cc',
444             '<(libjingle_source)/talk/session/media/bundlefilter.h',
445             '<(libjingle_source)/talk/session/media/call.cc',
446             '<(libjingle_source)/talk/session/media/call.h',
447             '<(libjingle_source)/talk/session/media/channel.cc',
448             '<(libjingle_source)/talk/session/media/channel.h',
449             '<(libjingle_source)/talk/session/media/channelmanager.cc',
450             '<(libjingle_source)/talk/session/media/channelmanager.h',
451             '<(libjingle_source)/talk/session/media/currentspeakermonitor.cc',
452             '<(libjingle_source)/talk/session/media/currentspeakermonitor.h',
453             '<(libjingle_source)/talk/session/media/externalhmac.cc',
454             '<(libjingle_source)/talk/session/media/externalhmac.h',
455             '<(libjingle_source)/talk/session/media/mediamessages.cc',
456             '<(libjingle_source)/talk/session/media/mediamessages.h',
457             '<(libjingle_source)/talk/session/media/mediamonitor.cc',
458             '<(libjingle_source)/talk/session/media/mediamonitor.h',
459             '<(libjingle_source)/talk/session/media/mediasession.cc',
460             '<(libjingle_source)/talk/session/media/mediasession.h',
461             '<(libjingle_source)/talk/session/media/mediasessionclient.cc',
462             '<(libjingle_source)/talk/session/media/mediasessionclient.h',
463             '<(libjingle_source)/talk/session/media/mediasink.h',
464             '<(libjingle_source)/talk/session/media/rtcpmuxfilter.cc',
465             '<(libjingle_source)/talk/session/media/rtcpmuxfilter.h',
466             '<(libjingle_source)/talk/session/media/soundclip.cc',
467             '<(libjingle_source)/talk/session/media/soundclip.h',
468             '<(libjingle_source)/talk/session/media/srtpfilter.cc',
469             '<(libjingle_source)/talk/session/media/srtpfilter.h',
470             '<(libjingle_source)/talk/session/media/typingmonitor.cc',
471             '<(libjingle_source)/talk/session/media/typingmonitor.h',
472             '<(libjingle_source)/talk/session/media/voicechannel.h',
473             '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.cc',
474             '<(libjingle_source)/talk/session/tunnel/pseudotcpchannel.h',
475             '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.cc',
476             '<(libjingle_source)/talk/session/tunnel/tunnelsessionclient.h',
477           ],
478           'conditions': [
479             ['libpeer_allocator_shim==1 and '
480              'libpeer_target_type!="static_library" and OS!="mac"', {
481               'sources': [
482                 'overrides/allocator_shim/allocator_stub.cc',
483                 'overrides/allocator_shim/allocator_stub.h',
484               ],
485             }],
486             # TODO(mallinath) - Enable SCTP for iOS.
487             ['OS!="ios"', {
488               'defines': [
489                 'HAVE_SCTP',
490               ],
491               'sources': [
492                 '<(libjingle_source)/talk/media/sctp/sctpdataengine.cc',
493                 '<(libjingle_source)/talk/media/sctp/sctpdataengine.h',
494               ],
495               'dependencies': [
496                 '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib',
497               ],
498             }],
499             ['enabled_libjingle_device_manager==1', {
500               'sources!': [
501                 '<(libjingle_source)/talk/media/devices/dummydevicemanager.cc',
502                 '<(libjingle_source)/talk/media/devices/dummydevicemanager.h',
503               ],
504               'sources': [
505                 '<(libjingle_source)/talk/media/devices/devicemanager.cc',
506                 '<(libjingle_source)/talk/media/devices/devicemanager.h',
507                 '<(libjingle_source)/talk/sound/nullsoundsystem.cc',
508                 '<(libjingle_source)/talk/sound/nullsoundsystem.h',
509                 '<(libjingle_source)/talk/sound/nullsoundsystemfactory.cc',
510                 '<(libjingle_source)/talk/sound/nullsoundsystemfactory.h',
511                 '<(libjingle_source)/talk/sound/platformsoundsystem.cc',
512                 '<(libjingle_source)/talk/sound/platformsoundsystem.h',
513                 '<(libjingle_source)/talk/sound/platformsoundsystemfactory.cc',
514                 '<(libjingle_source)/talk/sound/platformsoundsystemfactory.h',
515                 '<(libjingle_source)/talk/sound/soundsysteminterface.cc',
516                 '<(libjingle_source)/talk/sound/soundsysteminterface.h',
517                 '<(libjingle_source)/talk/sound/soundsystemproxy.cc',
518                 '<(libjingle_source)/talk/sound/soundsystemproxy.h',
519               ],
520               'conditions': [
521                 ['OS=="win"', {
522                   'sources': [
523                     '<(libjingle_source)/talk/media/devices/win32deviceinfo.cc',
524                     '<(libjingle_source)/talk/media/devices/win32devicemanager.cc',
525                     '<(libjingle_source)/talk/media/devices/win32devicemanager.h',
526                   ],
527                 }],
528                 ['OS=="linux"', {
529                   'sources': [
530                     '<(libjingle_source)/talk/media/devices/libudevsymboltable.cc',
531                     '<(libjingle_source)/talk/media/devices/libudevsymboltable.h',
532                     '<(libjingle_source)/talk/media/devices/linuxdeviceinfo.cc',
533                     '<(libjingle_source)/talk/media/devices/linuxdevicemanager.cc',
534                     '<(libjingle_source)/talk/media/devices/linuxdevicemanager.h',
535                     '<(libjingle_source)/talk/media/devices/v4llookup.cc',
536                     '<(libjingle_source)/talk/media/devices/v4llookup.h',
537                     '<(libjingle_source)/talk/sound/alsasoundsystem.cc',
538                     '<(libjingle_source)/talk/sound/alsasoundsystem.h',
539                     '<(libjingle_source)/talk/sound/alsasymboltable.cc',
540                     '<(libjingle_source)/talk/sound/alsasymboltable.h',
541                     '<(libjingle_source)/talk/sound/linuxsoundsystem.cc',
542                     '<(libjingle_source)/talk/sound/linuxsoundsystem.h',
543                     '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.cc',
544                     '<(libjingle_source)/talk/sound/pulseaudiosoundsystem.h',
545                     '<(libjingle_source)/talk/sound/pulseaudiosymboltable.cc',
546                     '<(libjingle_source)/talk/sound/pulseaudiosymboltable.h',
547                   ],
548                 }],
549                 ['OS=="mac"', {
550                   'sources': [
551                     '<(libjingle_source)/talk/media/devices/macdeviceinfo.cc',
552                     '<(libjingle_source)/talk/media/devices/macdevicemanager.cc',
553                     '<(libjingle_source)/talk/media/devices/macdevicemanager.h',
554                     '<(libjingle_source)/talk/media/devices/macdevicemanagermm.mm',
555                   ],
556                   'xcode_settings': {
557                     'WARNING_CFLAGS': [
558                       # Suppres warnings about using deprecated functions in
559                       # macdevicemanager.cc.
560                       '-Wno-deprecated-declarations',
561                     ],
562                   },
563                 }],
564               ],
565             }],
566           ],
567           'dependencies': [
568             '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
569             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:media_file',
570             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_capture_module',
571             '<(DEPTH)/third_party/webrtc/modules/modules.gyp:video_render_module',
572             'libjingle',
573           ],
574         },  # target libjingle_webrtc_common
575         {
576           'target_name': 'libjingle_webrtc',
577           'type': 'static_library',
578           'sources': [
579             'overrides/init_webrtc.cc',
580             'overrides/init_webrtc.h',
581           ],
582           'dependencies': [
583             'libjingle_webrtc_common',
584           ],
585         },
586         {
587           'target_name': 'libpeerconnection',
588           'type': '<(libpeer_target_type)',
589           'sources': [
590             '<(libjingle_source)/talk/media/webrtc/webrtcmediaengine.cc',
591             '<(libjingle_source)/talk/media/webrtc/webrtcmediaengine.h',
592             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.cc',
593             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine.h',
594             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine2.cc',
595             '<(libjingle_source)/talk/media/webrtc/webrtcvideoengine2.h',
596             '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.cc',
597             '<(libjingle_source)/talk/media/webrtc/webrtcvoiceengine.h',
598           ],
599           'dependencies': [
600             '<(DEPTH)/third_party/webrtc/system_wrappers/source/system_wrappers.gyp:system_wrappers',
601             '<(DEPTH)/third_party/webrtc/voice_engine/voice_engine.gyp:voice_engine',
602             '<(DEPTH)/third_party/webrtc/webrtc.gyp:webrtc',
603             '<@(libjingle_peerconnection_additional_deps)',
604             'libjingle_webrtc_common',
605           ],
606           'conditions': [
607             ['libpeer_target_type!="static_library"', {
608               'sources': [
609                 'overrides/initialize_module.cc',
610               ],
611               'conditions': [
612                 ['OS!="mac" and OS!="android"', {
613                   'sources': [
614                     'overrides/allocator_shim/allocator_proxy.cc',
615                   ],
616                 }],
617               ],
618             }],
619             ['"<(libpeer_target_type)"!="static_library"', {
620               # Used to control symbol export/import.
621               'defines': [ 'LIBPEERCONNECTION_IMPLEMENTATION=1' ],
622             }],
623             ['OS=="win" and "<(libpeer_target_type)"!="static_library"', {
624               'link_settings': {
625                 'libraries': [
626                   '-lsecur32.lib',
627                   '-lcrypt32.lib',
628                   '-liphlpapi.lib',
629                 ],
630               },
631             }],
632             ['OS!="win" and "<(libpeer_target_type)"!="static_library"', {
633               'cflags': [
634                 # For compatibility with how we export symbols from this
635                 # target on Windows.  This also prevents the linker from
636                 # picking up symbols from this target that should be linked
637                 # in from other libjingle libs.
638                 '-fvisibility=hidden',
639               ],
640             }],
641             ['OS=="mac" and libpeer_target_type!="static_library"', {
642               'product_name': 'libpeerconnection',
643             }],
644             ['OS=="android" and "<(libpeer_target_type)"=="static_library"', {
645               'standalone_static_library': 1,
646             }],
647             ['OS=="linux" and libpeer_target_type!="static_library"', {
648               # The installer and various tools depend on finding the .so
649               # in this directory and not lib.target as will otherwise be
650               # the case with make builds.
651               'product_dir': '<(PRODUCT_DIR)/lib',
652             }],
653           ],
654         },  # target libpeerconnection
655       ],
656     }],
657   ],
658 }