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