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/system_wrappers/source/system_wrappers.gyp:system_wrappers',
593            '<(DEPTH)/third_party/webrtc/voice_engine/voice_engine.gyp:voice_engine',
594            '<(DEPTH)/third_party/webrtc/webrtc.gyp:webrtc',
595            '<@(libjingle_peerconnection_additional_deps)',
596            'libjingle_webrtc_common',
597          ],
598          'conditions': [
599            ['libpeer_target_type!="static_library"', {
600              'sources': [
601                'overrides/initialize_module.cc',
602              ],
603              'conditions': [
604                ['OS!="mac" and OS!="android"', {
605                  'sources': [
606                    'overrides/allocator_shim/allocator_proxy.cc',
607                  ],
608                }],
609              ],
610            }],
611            ['"<(libpeer_target_type)"!="static_library"', {
612              # Used to control symbol export/import.
613              'defines': [ 'LIBPEERCONNECTION_IMPLEMENTATION=1' ],
614            }],
615            ['OS=="win" and "<(libpeer_target_type)"!="static_library"', {
616              'link_settings': {
617                'libraries': [
618                  '-lsecur32.lib',
619                  '-lcrypt32.lib',
620                  '-liphlpapi.lib',
621                ],
622              },
623            }],
624            ['OS!="win" and "<(libpeer_target_type)"!="static_library"', {
625              'cflags': [
626                # For compatibility with how we export symbols from this
627                # target on Windows.  This also prevents the linker from
628                # picking up symbols from this target that should be linked
629                # in from other libjingle libs.
630                '-fvisibility=hidden',
631              ],
632            }],
633            ['OS=="mac" and libpeer_target_type!="static_library"', {
634              'product_name': 'libpeerconnection',
635            }],
636            ['OS=="android" and "<(libpeer_target_type)"=="static_library"', {
637              'standalone_static_library': 1,
638            }],
639            ['OS=="linux" and libpeer_target_type!="static_library"', {
640              # The installer and various tools depend on finding the .so
641              # in this directory and not lib.target as will otherwise be
642              # the case with make builds.
643              'product_dir': '<(PRODUCT_DIR)/lib',
644            }],
645          ],
646        },  # target libpeerconnection
647      ],
648    }],
649  ],
650}
651