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