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