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