Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / libjingle / source / talk / libjingle.gyp
1 #
2 # libjingle
3 # Copyright 2012, Google Inc.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are met:
7 #
8 #  1. Redistributions of source code must retain the above copyright notice,
9 #     this list of conditions and the following disclaimer.
10 #  2. Redistributions in binary form must reproduce the above copyright notice,
11 #     this list of conditions and the following disclaimer in the documentation
12 #     and/or other materials provided with the distribution.
13 #  3. The name of the author may not be used to endorse or promote products
14 #     derived from this software without specific prior written permission.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19 # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 #
27
28 {
29   'includes': ['build/common.gypi'],
30   'conditions': [
31     ['os_posix == 1 and OS != "mac" and OS != "ios"', {
32      'conditions': [
33        ['sysroot!=""', {
34          'variables': {
35            'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
36          },
37        }, {
38          'variables': {
39            'pkg-config': 'pkg-config'
40          },
41        }],
42      ],
43     }],
44     ['OS=="linux" or OS=="android"', {
45       'targets': [
46         {
47           'target_name': 'libjingle_peerconnection_so',
48           'type': 'loadable_module',
49           'dependencies': [
50             'libjingle_peerconnection',
51             '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
52           ],
53           'sources': [
54             'app/webrtc/java/jni/peerconnection_jni.cc'
55           ],
56           'include_dirs': [
57             '<(DEPTH)/third_party/libyuv/include',
58           ],
59           'conditions': [
60             ['OS=="linux"', {
61               'defines': [
62                 'HAVE_GTK',
63               ],
64               'include_dirs': [
65                 '<(java_home)/include',
66                 '<(java_home)/include/linux',
67               ],
68               'link_settings': {
69                 'libraries': [
70                   '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
71                       ' gtk+-2.0)',
72                 ],
73               },
74             }],
75           ],
76         },
77         {
78           'target_name': 'libjingle_peerconnection_jar',
79           'type': 'none',
80           'actions': [
81             {
82               'variables': {
83                 'java_src_dir': 'app/webrtc/java/src',
84                 'webrtc_modules_dir': '<(webrtc_root)/modules',
85                 'build_jar_log': '<(INTERMEDIATE_DIR)/build_jar.log',
86                 'peerconnection_java_files': [
87                   'app/webrtc/java/src/org/webrtc/AudioSource.java',
88                   'app/webrtc/java/src/org/webrtc/AudioTrack.java',
89                   'app/webrtc/java/src/org/webrtc/DataChannel.java',
90                   'app/webrtc/java/src/org/webrtc/IceCandidate.java',
91                   'app/webrtc/java/src/org/webrtc/Logging.java',
92                   'app/webrtc/java/src/org/webrtc/MediaConstraints.java',
93                   'app/webrtc/java/src/org/webrtc/MediaSource.java',
94                   'app/webrtc/java/src/org/webrtc/MediaStream.java',
95                   'app/webrtc/java/src/org/webrtc/MediaStreamTrack.java',
96                   'app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java',
97                   'app/webrtc/java/src/org/webrtc/PeerConnection.java',
98                   'app/webrtc/java/src/org/webrtc/SdpObserver.java',
99                   'app/webrtc/java/src/org/webrtc/StatsObserver.java',
100                   'app/webrtc/java/src/org/webrtc/StatsReport.java',
101                   'app/webrtc/java/src/org/webrtc/SessionDescription.java',
102                   'app/webrtc/java/src/org/webrtc/VideoCapturer.java',
103                   'app/webrtc/java/src/org/webrtc/VideoRenderer.java',
104                   'app/webrtc/java/src/org/webrtc/VideoSource.java',
105                   'app/webrtc/java/src/org/webrtc/VideoTrack.java',
106                 ],
107                 # TODO(fischman): extract this into a webrtc gyp var that can be
108                 # included here, or better yet, build a proper .jar in webrtc
109                 # and include it here.
110                 'android_java_files': [
111                   'app/webrtc/java/android/org/webrtc/VideoRendererGui.java',
112                   'app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java',
113                   'app/webrtc/java/src/org/webrtc/MediaCodecVideoDecoder.java',
114                   '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/AudioManagerAndroid.java',
115                   '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java',
116                   '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java',
117                   '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java',
118                   '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java',
119                   '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java',
120                   '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java',
121                   '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java',
122                 ],
123               },
124               'action_name': 'create_jar',
125               'inputs': [
126                 'build/build_jar.sh',
127                 '<@(java_files)',
128               ],
129               'outputs': [
130                 '<(PRODUCT_DIR)/libjingle_peerconnection.jar',
131               ],
132               'conditions': [
133                 ['OS=="android"', {
134                   'variables': {
135                     'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'],
136                     'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar',
137                   },
138                 }, {
139                   'variables': {
140                     'java_files': ['<@(peerconnection_java_files)'],
141                     'build_classpath': '<(java_src_dir)',
142                   },
143                 }],
144               ],
145               'action': [
146                 'bash', '-ec',
147                 'mkdir -p <(INTERMEDIATE_DIR) && '
148                 '{ build/build_jar.sh <(java_home) <@(_outputs) '
149                 '      <(INTERMEDIATE_DIR)/build_jar.tmp '
150                 '      <(build_classpath) <@(java_files) '
151                 '      > <(build_jar_log) 2>&1 || '
152                 '  { cat <(build_jar_log) ; exit 1; } }'
153               ],
154             },
155           ],
156           'dependencies': [
157             'libjingle_peerconnection_so',
158           ],
159         },
160       ],
161     }],
162     ['OS=="ios" or (OS=="mac" and target_arch!="ia32" and mac_sdk>="10.7")', {
163       # The >= 10.7 above is required for ARC.
164       'targets': [
165         {
166           'target_name': 'libjingle_peerconnection_objc',
167           'type': 'static_library',
168           'dependencies': [
169             'libjingle_peerconnection',
170           ],
171           'sources': [
172             'app/webrtc/objc/RTCAudioTrack+Internal.h',
173             'app/webrtc/objc/RTCAudioTrack.mm',
174             'app/webrtc/objc/RTCDataChannel+Internal.h',
175             'app/webrtc/objc/RTCDataChannel.mm',
176             'app/webrtc/objc/RTCEnumConverter.h',
177             'app/webrtc/objc/RTCEnumConverter.mm',
178             'app/webrtc/objc/RTCI420Frame+Internal.h',
179             'app/webrtc/objc/RTCI420Frame.mm',
180             'app/webrtc/objc/RTCICECandidate+Internal.h',
181             'app/webrtc/objc/RTCICECandidate.mm',
182             'app/webrtc/objc/RTCICEServer+Internal.h',
183             'app/webrtc/objc/RTCICEServer.mm',
184             'app/webrtc/objc/RTCMediaConstraints+Internal.h',
185             'app/webrtc/objc/RTCMediaConstraints.mm',
186             'app/webrtc/objc/RTCMediaConstraintsNative.cc',
187             'app/webrtc/objc/RTCMediaConstraintsNative.h',
188             'app/webrtc/objc/RTCMediaSource+Internal.h',
189             'app/webrtc/objc/RTCMediaSource.mm',
190             'app/webrtc/objc/RTCMediaStream+Internal.h',
191             'app/webrtc/objc/RTCMediaStream.mm',
192             'app/webrtc/objc/RTCMediaStreamTrack+Internal.h',
193             'app/webrtc/objc/RTCMediaStreamTrack.mm',
194             'app/webrtc/objc/RTCOpenGLVideoRenderer.mm',
195             'app/webrtc/objc/RTCPair.m',
196             'app/webrtc/objc/RTCPeerConnection+Internal.h',
197             'app/webrtc/objc/RTCPeerConnection.mm',
198             'app/webrtc/objc/RTCPeerConnectionFactory.mm',
199             'app/webrtc/objc/RTCPeerConnectionObserver.h',
200             'app/webrtc/objc/RTCPeerConnectionObserver.mm',
201             'app/webrtc/objc/RTCSessionDescription+Internal.h',
202             'app/webrtc/objc/RTCSessionDescription.mm',
203             'app/webrtc/objc/RTCStatsReport+Internal.h',
204             'app/webrtc/objc/RTCStatsReport.mm',
205             'app/webrtc/objc/RTCVideoCapturer+Internal.h',
206             'app/webrtc/objc/RTCVideoCapturer.mm',
207             'app/webrtc/objc/RTCVideoRenderer+Internal.h',
208             'app/webrtc/objc/RTCVideoRenderer.mm',
209             'app/webrtc/objc/RTCVideoSource+Internal.h',
210             'app/webrtc/objc/RTCVideoSource.mm',
211             'app/webrtc/objc/RTCVideoTrack+Internal.h',
212             'app/webrtc/objc/RTCVideoTrack.mm',
213             'app/webrtc/objc/public/RTCAudioSource.h',
214             'app/webrtc/objc/public/RTCAudioTrack.h',
215             'app/webrtc/objc/public/RTCDataChannel.h',
216             'app/webrtc/objc/public/RTCI420Frame.h',
217             'app/webrtc/objc/public/RTCICECandidate.h',
218             'app/webrtc/objc/public/RTCICEServer.h',
219             'app/webrtc/objc/public/RTCMediaConstraints.h',
220             'app/webrtc/objc/public/RTCMediaSource.h',
221             'app/webrtc/objc/public/RTCMediaStream.h',
222             'app/webrtc/objc/public/RTCMediaStreamTrack.h',
223             'app/webrtc/objc/public/RTCOpenGLVideoRenderer.h',
224             'app/webrtc/objc/public/RTCPair.h',
225             'app/webrtc/objc/public/RTCPeerConnection.h',
226             'app/webrtc/objc/public/RTCPeerConnectionDelegate.h',
227             'app/webrtc/objc/public/RTCPeerConnectionFactory.h',
228             'app/webrtc/objc/public/RTCSessionDescription.h',
229             'app/webrtc/objc/public/RTCSessionDescriptionDelegate.h',
230             'app/webrtc/objc/public/RTCStatsDelegate.h',
231             'app/webrtc/objc/public/RTCStatsReport.h',
232             'app/webrtc/objc/public/RTCTypes.h',
233             'app/webrtc/objc/public/RTCVideoCapturer.h',
234             'app/webrtc/objc/public/RTCVideoRenderer.h',
235             'app/webrtc/objc/public/RTCVideoSource.h',
236             'app/webrtc/objc/public/RTCVideoTrack.h',
237           ],
238           'direct_dependent_settings': {
239             'include_dirs': [
240               '<(DEPTH)/talk/app/webrtc/objc/public',
241             ],
242           },
243           'include_dirs': [
244             '<(DEPTH)/talk/app/webrtc',
245             '<(DEPTH)/talk/app/webrtc/objc',
246             '<(DEPTH)/talk/app/webrtc/objc/public',
247           ],
248           'link_settings': {
249             'libraries': [
250               '-lstdc++',
251             ],
252           },
253           'xcode_settings': {
254             'CLANG_ENABLE_OBJC_ARC': 'YES',
255             # common.gypi enables this for mac but we want this to be disabled
256             # like it is for ios.
257             'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
258           },
259           'conditions': [
260             ['OS=="ios"', {
261               'sources': [
262                 'app/webrtc/objc/RTCEAGLVideoView+Internal.h',
263                 'app/webrtc/objc/RTCEAGLVideoView.m',
264                 'app/webrtc/objc/public/RTCEAGLVideoView.h',
265               ],
266               'link_settings': {
267                 'xcode_settings': {
268                   'OTHER_LDFLAGS': [
269                     '-framework CoreGraphics',
270                     '-framework GLKit',
271                   ],
272                 },
273               },
274             }],
275             ['OS=="mac"', {
276               'sources': [
277                 'app/webrtc/objc/RTCNSGLVideoView.m',
278                 'app/webrtc/objc/public/RTCNSGLVideoView.h',
279               ],
280               'xcode_settings': {
281                 # Need to build against 10.7 framework for full ARC support
282                 # on OSX.
283                 'MACOSX_DEPLOYMENT_TARGET' : '10.7',
284               },
285               'link_settings': {
286                 'xcode_settings': {
287                   'OTHER_LDFLAGS': [
288                     '-framework Cocoa',
289                   ],
290                 },
291               },
292             }],
293           ],
294         },  # target libjingle_peerconnection_objc
295       ],
296     }],
297   ],
298
299   'targets': [
300     {
301       'target_name': 'libjingle',
302       'type': 'static_library',
303       'dependencies': [
304         '<(DEPTH)/third_party/expat/expat.gyp:expat',
305         '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
306         '<(webrtc_root)/base/base.gyp:webrtc_base',
307       ],
308       'export_dependent_settings': [
309         '<(DEPTH)/third_party/expat/expat.gyp:expat',
310         '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
311       ],
312       'sources': [
313         'xmllite/qname.cc',
314         'xmllite/qname.h',
315         'xmllite/xmlbuilder.cc',
316         'xmllite/xmlbuilder.h',
317         'xmllite/xmlconstants.cc',
318         'xmllite/xmlconstants.h',
319         'xmllite/xmlelement.cc',
320         'xmllite/xmlelement.h',
321         'xmllite/xmlnsstack.cc',
322         'xmllite/xmlnsstack.h',
323         'xmllite/xmlparser.cc',
324         'xmllite/xmlparser.h',
325         'xmllite/xmlprinter.cc',
326         'xmllite/xmlprinter.h',
327         'xmpp/asyncsocket.h',
328         'xmpp/chatroommodule.h',
329         'xmpp/chatroommoduleimpl.cc',
330         'xmpp/constants.cc',
331         'xmpp/constants.h',
332         'xmpp/discoitemsquerytask.cc',
333         'xmpp/discoitemsquerytask.h',
334         'xmpp/hangoutpubsubclient.cc',
335         'xmpp/hangoutpubsubclient.h',
336         'xmpp/iqtask.cc',
337         'xmpp/iqtask.h',
338         'xmpp/jid.cc',
339         'xmpp/jid.h',
340         'xmpp/module.h',
341         'xmpp/moduleimpl.cc',
342         'xmpp/moduleimpl.h',
343         'xmpp/mucroomconfigtask.cc',
344         'xmpp/mucroomconfigtask.h',
345         'xmpp/mucroomdiscoverytask.cc',
346         'xmpp/mucroomdiscoverytask.h',
347         'xmpp/mucroomlookuptask.cc',
348         'xmpp/mucroomlookuptask.h',
349         'xmpp/mucroomuniquehangoutidtask.cc',
350         'xmpp/mucroomuniquehangoutidtask.h',
351         'xmpp/pingtask.cc',
352         'xmpp/pingtask.h',
353         'xmpp/plainsaslhandler.h',
354         'xmpp/presenceouttask.cc',
355         'xmpp/presenceouttask.h',
356         'xmpp/presencereceivetask.cc',
357         'xmpp/presencereceivetask.h',
358         'xmpp/presencestatus.cc',
359         'xmpp/presencestatus.h',
360         'xmpp/prexmppauth.h',
361         'xmpp/pubsub_task.cc',
362         'xmpp/pubsub_task.h',
363         'xmpp/pubsubclient.cc',
364         'xmpp/pubsubclient.h',
365         'xmpp/pubsubstateclient.cc',
366         'xmpp/pubsubstateclient.h',
367         'xmpp/pubsubtasks.cc',
368         'xmpp/pubsubtasks.h',
369         'xmpp/receivetask.cc',
370         'xmpp/receivetask.h',
371         'xmpp/rostermodule.h',
372         'xmpp/rostermoduleimpl.cc',
373         'xmpp/rostermoduleimpl.h',
374         'xmpp/saslcookiemechanism.h',
375         'xmpp/saslhandler.h',
376         'xmpp/saslmechanism.cc',
377         'xmpp/saslmechanism.h',
378         'xmpp/saslplainmechanism.h',
379         'xmpp/xmppauth.cc',
380         'xmpp/xmppauth.h',
381         'xmpp/xmppclient.cc',
382         'xmpp/xmppclient.h',
383         'xmpp/xmppclientsettings.h',
384         'xmpp/xmppengine.h',
385         'xmpp/xmppengineimpl.cc',
386         'xmpp/xmppengineimpl.h',
387         'xmpp/xmppengineimpl_iq.cc',
388         'xmpp/xmpplogintask.cc',
389         'xmpp/xmpplogintask.h',
390         'xmpp/xmpppump.cc',
391         'xmpp/xmpppump.h',
392         'xmpp/xmppsocket.cc',
393         'xmpp/xmppsocket.h',
394         'xmpp/xmppstanzaparser.cc',
395         'xmpp/xmppstanzaparser.h',
396         'xmpp/xmpptask.cc',
397         'xmpp/xmpptask.h',
398         'xmpp/xmppthread.cc',
399         'xmpp/xmppthread.h',
400       ],
401     },  # target libjingle
402     {
403       'target_name': 'libjingle_sound',
404       'type': 'static_library',
405       'dependencies': [
406         'libjingle',
407       ],
408       'sources': [
409         'sound/automaticallychosensoundsystem.h',
410         'sound/nullsoundsystem.cc',
411         'sound/nullsoundsystem.h',
412         'sound/nullsoundsystemfactory.cc',
413         'sound/nullsoundsystemfactory.h',
414         'sound/platformsoundsystem.cc',
415         'sound/platformsoundsystem.h',
416         'sound/platformsoundsystemfactory.cc',
417         'sound/platformsoundsystemfactory.h',
418         'sound/sounddevicelocator.h',
419         'sound/soundinputstreaminterface.h',
420         'sound/soundoutputstreaminterface.h',
421         'sound/soundsystemfactory.h',
422         'sound/soundsysteminterface.cc',
423         'sound/soundsysteminterface.h',
424         'sound/soundsystemproxy.cc',
425         'sound/soundsystemproxy.h',
426       ],
427       'conditions': [
428         ['OS=="linux"', {
429           'sources': [
430             'sound/alsasoundsystem.cc',
431             'sound/alsasoundsystem.h',
432             'sound/alsasymboltable.cc',
433             'sound/alsasymboltable.h',
434             'sound/linuxsoundsystem.cc',
435             'sound/linuxsoundsystem.h',
436             'sound/pulseaudiosoundsystem.cc',
437             'sound/pulseaudiosoundsystem.h',
438             'sound/pulseaudiosymboltable.cc',
439             'sound/pulseaudiosymboltable.h',
440           ],
441         }],
442       ],
443     },  # target libjingle_sound
444     {
445       'target_name': 'libjingle_media',
446       'type': 'static_library',
447       'include_dirs': [
448         # TODO(jiayl): move this into the direct_dependent_settings of
449         # usrsctp.gyp.
450         '<(DEPTH)/third_party/usrsctp',
451       ],
452       'dependencies': [
453         '<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv',
454         '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib',
455         '<(webrtc_root)/modules/modules.gyp:video_capture_module',
456         '<(webrtc_root)/modules/modules.gyp:video_render_module',
457         '<(webrtc_root)/webrtc.gyp:webrtc',
458         '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
459         '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
460         '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:field_trial_default',
461         'libjingle',
462         'libjingle_sound',
463       ],
464       'direct_dependent_settings': {
465         'include_dirs': [
466           '<(DEPTH)/third_party/libyuv/include',
467         ],
468       },
469       'sources': [
470         'media/base/audioframe.h',
471         'media/base/audiorenderer.h',
472         'media/base/capturemanager.cc',
473         'media/base/capturemanager.h',
474         'media/base/capturerenderadapter.cc',
475         'media/base/capturerenderadapter.h',
476         'media/base/codec.cc',
477         'media/base/codec.h',
478         'media/base/constants.cc',
479         'media/base/constants.h',
480         'media/base/cpuid.cc',
481         'media/base/cpuid.h',
482         'media/base/cryptoparams.h',
483         'media/base/device.h',
484         'media/base/fakescreencapturerfactory.h',
485         'media/base/filemediaengine.cc',
486         'media/base/filemediaengine.h',
487         'media/base/hybriddataengine.h',
488         'media/base/hybridvideoengine.cc',
489         'media/base/hybridvideoengine.h',
490         'media/base/mediachannel.h',
491         'media/base/mediacommon.h',
492         'media/base/mediaengine.cc',
493         'media/base/mediaengine.h',
494         'media/base/rtpdataengine.cc',
495         'media/base/rtpdataengine.h',
496         'media/base/rtpdump.cc',
497         'media/base/rtpdump.h',
498         'media/base/rtputils.cc',
499         'media/base/rtputils.h',
500         'media/base/screencastid.h',
501         'media/base/streamparams.cc',
502         'media/base/streamparams.h',
503         'media/base/videoadapter.cc',
504         'media/base/videoadapter.h',
505         'media/base/videocapturer.cc',
506         'media/base/videocapturer.h',
507         'media/base/videocapturerfactory.h',
508         'media/base/videocommon.cc',
509         'media/base/videocommon.h',
510         'media/base/videoframe.cc',
511         'media/base/videoframe.h',
512         'media/base/videoframefactory.h',
513         'media/base/videoprocessor.h',
514         'media/base/videorenderer.h',
515         'media/base/voiceprocessor.h',
516         'media/base/yuvframegenerator.cc',
517         'media/base/yuvframegenerator.h',
518         'media/devices/deviceinfo.h',
519         'media/devices/devicemanager.cc',
520         'media/devices/devicemanager.h',
521         'media/devices/dummydevicemanager.h',
522         'media/devices/filevideocapturer.cc',
523         'media/devices/filevideocapturer.h',
524         'media/devices/videorendererfactory.h',
525         'media/devices/yuvframescapturer.cc',
526         'media/devices/yuvframescapturer.h',
527         'media/other/linphonemediaengine.h',
528         'media/sctp/sctpdataengine.cc',
529         'media/sctp/sctpdataengine.h',
530         'media/webrtc/webrtccommon.h',
531         'media/webrtc/webrtcexport.h',
532         'media/webrtc/webrtcmediaengine.cc',
533         'media/webrtc/webrtcmediaengine.h',
534         'media/webrtc/webrtcpassthroughrender.cc',
535         'media/webrtc/webrtcpassthroughrender.h',
536         'media/webrtc/webrtctexturevideoframe.cc',
537         'media/webrtc/webrtctexturevideoframe.h',
538         'media/webrtc/webrtcvideocapturer.cc',
539         'media/webrtc/webrtcvideocapturerfactory.h',
540         'media/webrtc/webrtcvideocapturerfactory.cc',
541         'media/webrtc/webrtcvideocapturer.h',
542         'media/webrtc/webrtcvideodecoderfactory.h',
543         'media/webrtc/webrtcvideoencoderfactory.h',
544         'media/webrtc/webrtcvideoengine.cc',
545         'media/webrtc/webrtcvideoengine.h',
546         'media/webrtc/webrtcvideoengine2.cc',
547         'media/webrtc/webrtcvideoengine2.h',
548         'media/webrtc/webrtcvideoframe.cc',
549         'media/webrtc/webrtcvideoframe.h',
550         'media/webrtc/webrtcvideoframefactory.cc',
551         'media/webrtc/webrtcvideoframefactory.h',
552         'media/webrtc/webrtcvie.h',
553         'media/webrtc/webrtcvoe.h',
554         'media/webrtc/webrtcvoiceengine.cc',
555         'media/webrtc/webrtcvoiceengine.h',
556       ],
557       'conditions': [
558         ['OS=="linux"', {
559           'sources': [
560             'media/devices/gtkvideorenderer.cc',
561             'media/devices/gtkvideorenderer.h',
562             'media/devices/libudevsymboltable.cc',
563             'media/devices/libudevsymboltable.h',
564             'media/devices/linuxdeviceinfo.cc',
565             'media/devices/linuxdevicemanager.cc',
566             'media/devices/linuxdevicemanager.h',
567             'media/devices/v4llookup.cc',
568             'media/devices/v4llookup.h',
569           ],
570           'include_dirs': [
571             'third_party/libudev'
572           ],
573           'cflags': [
574             '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)',
575           ],
576           'libraries': [
577             '-lrt',
578             '-lXext',
579             '-lX11',
580           ],
581         }],
582         ['OS=="win"', {
583           'sources': [
584             'media/devices/gdivideorenderer.cc',
585             'media/devices/gdivideorenderer.h',
586             'media/devices/win32deviceinfo.cc',
587             'media/devices/win32devicemanager.cc',
588             'media/devices/win32devicemanager.h',
589           ],
590           'msvs_settings': {
591             'VCLibrarianTool': {
592               'AdditionalDependencies': [
593                 'd3d9.lib',
594                 'gdi32.lib',
595                 'strmiids.lib',
596                 'winmm.lib',
597               ],
598             },
599           },
600         }],
601         ['OS=="mac"', {
602           'sources': [
603             'media/devices/macdeviceinfo.cc',
604             'media/devices/macdevicemanager.cc',
605             'media/devices/macdevicemanager.h',
606             'media/devices/macdevicemanagermm.mm',
607           ],
608           'conditions': [
609             ['target_arch=="ia32"', {
610               'sources': [
611                 'media/devices/carbonvideorenderer.cc',
612                 'media/devices/carbonvideorenderer.h',
613               ],
614               'link_settings': {
615                 'xcode_settings': {
616                   'OTHER_LDFLAGS': [
617                     '-framework Carbon',
618                   ],
619                 },
620               },
621             }],
622           ],
623           'xcode_settings': {
624             'WARNING_CFLAGS': [
625               # TODO(ronghuawu): Update macdevicemanager.cc to stop using
626               # deprecated functions and remove this flag.
627               '-Wno-deprecated-declarations',
628             ],
629           },
630           'link_settings': {
631             'xcode_settings': {
632               'OTHER_LDFLAGS': [
633                 '-framework Cocoa',
634                 '-framework CoreAudio',
635                 '-framework CoreVideo',
636                 '-framework OpenGL',
637                 '-framework QTKit',
638               ],
639             },
640           },
641         }],
642         ['OS=="ios"', {
643           'sources': [
644             'media/devices/mobiledevicemanager.cc',
645           ],
646           'include_dirs': [
647             # TODO(sjlee) Remove when vp8 is building for iOS.  vp8 pulls in
648             # libjpeg which pulls in libyuv which currently disabled.
649             '../third_party/libyuv/include',
650           ],
651         }],
652         ['OS=="android"', {
653           'sources': [
654             'media/devices/mobiledevicemanager.cc',
655           ],
656         }],
657       ],
658     },  # target libjingle_media
659     {
660       'target_name': 'libjingle_p2p',
661       'type': 'static_library',
662       'dependencies': [
663         '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
664         'libjingle',
665         'libjingle_media',
666       ],
667       'include_dirs': [
668         '<(DEPTH)/testing/gtest/include',
669       ],
670       'direct_dependent_settings': {
671         'include_dirs': [
672           '<(DEPTH)/testing/gtest/include',
673         ],
674       },
675       'sources': [
676         'p2p/base/asyncstuntcpsocket.cc',
677         'p2p/base/asyncstuntcpsocket.h',
678         'p2p/base/basicpacketsocketfactory.cc',
679         'p2p/base/basicpacketsocketfactory.h',
680         'p2p/base/candidate.h',
681         'p2p/base/common.h',
682         'p2p/base/constants.cc',
683         'p2p/base/constants.h',
684         'p2p/base/dtlstransportchannel.cc',
685         'p2p/base/dtlstransportchannel.h',
686         'p2p/base/p2ptransport.cc',
687         'p2p/base/p2ptransport.h',
688         'p2p/base/p2ptransportchannel.cc',
689         'p2p/base/p2ptransportchannel.h',
690         'p2p/base/packetsocketfactory.h',
691         'p2p/base/parsing.cc',
692         'p2p/base/parsing.h',
693         'p2p/base/port.cc',
694         'p2p/base/port.h',
695         'p2p/base/portallocator.cc',
696         'p2p/base/portallocator.h',
697         'p2p/base/portallocatorsessionproxy.cc',
698         'p2p/base/portallocatorsessionproxy.h',
699         'p2p/base/portinterface.h',
700         'p2p/base/portproxy.cc',
701         'p2p/base/portproxy.h',
702         'p2p/base/pseudotcp.cc',
703         'p2p/base/pseudotcp.h',
704         'p2p/base/rawtransport.cc',
705         'p2p/base/rawtransport.h',
706         'p2p/base/rawtransportchannel.cc',
707         'p2p/base/rawtransportchannel.h',
708         'p2p/base/relayport.cc',
709         'p2p/base/relayport.h',
710         'p2p/base/relayserver.cc',
711         'p2p/base/relayserver.h',
712         'p2p/base/session.cc',
713         'p2p/base/session.h',
714         'p2p/base/sessionclient.h',
715         'p2p/base/sessiondescription.cc',
716         'p2p/base/sessiondescription.h',
717         'p2p/base/sessionid.h',
718         'p2p/base/sessionmanager.cc',
719         'p2p/base/sessionmanager.h',
720         'p2p/base/sessionmessages.cc',
721         'p2p/base/sessionmessages.h',
722         'p2p/base/stun.cc',
723         'p2p/base/stun.h',
724         'p2p/base/stunport.cc',
725         'p2p/base/stunport.h',
726         'p2p/base/stunrequest.cc',
727         'p2p/base/stunrequest.h',
728         'p2p/base/stunserver.cc',
729         'p2p/base/stunserver.h',
730         'p2p/base/tcpport.cc',
731         'p2p/base/tcpport.h',
732         'p2p/base/transport.cc',
733         'p2p/base/transport.h',
734         'p2p/base/transportchannel.cc',
735         'p2p/base/transportchannel.h',
736         'p2p/base/transportchannelimpl.h',
737         'p2p/base/transportchannelproxy.cc',
738         'p2p/base/transportchannelproxy.h',
739         'p2p/base/transportdescription.cc',
740         'p2p/base/transportdescription.h',
741         'p2p/base/transportdescriptionfactory.cc',
742         'p2p/base/transportdescriptionfactory.h',
743         'p2p/base/transportinfo.h',
744         'p2p/base/turnport.cc',
745         'p2p/base/turnport.h',
746         'p2p/base/turnserver.cc',
747         'p2p/base/turnserver.h',
748         'p2p/base/udpport.h',
749         'p2p/client/autoportallocator.h',
750         'p2p/client/basicportallocator.cc',
751         'p2p/client/basicportallocator.h',
752         'p2p/client/connectivitychecker.cc',
753         'p2p/client/connectivitychecker.h',
754         'p2p/client/httpportallocator.cc',
755         'p2p/client/httpportallocator.h',
756         'p2p/client/sessionmanagertask.h',
757         'p2p/client/sessionsendtask.h',
758         'p2p/client/socketmonitor.cc',
759         'p2p/client/socketmonitor.h',
760         'session/tunnel/pseudotcpchannel.cc',
761         'session/tunnel/pseudotcpchannel.h',
762         'session/tunnel/tunnelsessionclient.cc',
763         'session/tunnel/tunnelsessionclient.h',
764         'session/tunnel/securetunnelsessionclient.cc',
765         'session/tunnel/securetunnelsessionclient.h',
766         'session/media/audiomonitor.cc',
767         'session/media/audiomonitor.h',
768         'session/media/bundlefilter.cc',
769         'session/media/bundlefilter.h',
770         'session/media/call.cc',
771         'session/media/call.h',
772         'session/media/channel.cc',
773         'session/media/channel.h',
774         'session/media/channelmanager.cc',
775         'session/media/channelmanager.h',
776         'session/media/currentspeakermonitor.cc',
777         'session/media/currentspeakermonitor.h',
778         'session/media/mediamessages.cc',
779         'session/media/mediamessages.h',
780         'session/media/mediamonitor.cc',
781         'session/media/mediamonitor.h',
782         'session/media/mediarecorder.cc',
783         'session/media/mediarecorder.h',
784         'session/media/mediasession.cc',
785         'session/media/mediasession.h',
786         'session/media/mediasessionclient.cc',
787         'session/media/mediasessionclient.h',
788         'session/media/mediasink.h',
789         'session/media/rtcpmuxfilter.cc',
790         'session/media/rtcpmuxfilter.h',
791         'session/media/soundclip.cc',
792         'session/media/soundclip.h',
793         'session/media/srtpfilter.cc',
794         'session/media/srtpfilter.h',
795         'session/media/typingmonitor.cc',
796         'session/media/typingmonitor.h',
797         'session/media/voicechannel.h',
798       ],
799     },  # target libjingle_p2p
800     {
801       'target_name': 'libjingle_peerconnection',
802       'type': 'static_library',
803       'dependencies': [
804         'libjingle',
805         'libjingle_media',
806         'libjingle_p2p',
807       ],
808       'sources': [
809         'app/webrtc/audiotrack.cc',
810         'app/webrtc/audiotrack.h',
811         'app/webrtc/audiotrackrenderer.cc',
812         'app/webrtc/audiotrackrenderer.h',
813         'app/webrtc/datachannel.cc',
814         'app/webrtc/datachannel.h',
815         'app/webrtc/datachannelinterface.h',
816         'app/webrtc/dtmfsender.cc',
817         'app/webrtc/dtmfsender.h',
818         'app/webrtc/dtmfsenderinterface.h',
819         'app/webrtc/fakeportallocatorfactory.h',
820         'app/webrtc/jsep.h',
821         'app/webrtc/jsepicecandidate.cc',
822         'app/webrtc/jsepicecandidate.h',
823         'app/webrtc/jsepsessiondescription.cc',
824         'app/webrtc/jsepsessiondescription.h',
825         'app/webrtc/localaudiosource.cc',
826         'app/webrtc/localaudiosource.h',
827         'app/webrtc/mediaconstraintsinterface.cc',
828         'app/webrtc/mediaconstraintsinterface.h',
829         'app/webrtc/mediastream.cc',
830         'app/webrtc/mediastream.h',
831         'app/webrtc/mediastreamhandler.cc',
832         'app/webrtc/mediastreamhandler.h',
833         'app/webrtc/mediastreaminterface.h',
834         'app/webrtc/mediastreamprovider.h',
835         'app/webrtc/mediastreamproxy.h',
836         'app/webrtc/mediastreamsignaling.cc',
837         'app/webrtc/mediastreamsignaling.h',
838         'app/webrtc/mediastreamtrack.h',
839         'app/webrtc/mediastreamtrackproxy.h',
840         'app/webrtc/notifier.h',
841         'app/webrtc/peerconnection.cc',
842         'app/webrtc/peerconnection.h',
843         'app/webrtc/peerconnectionfactory.cc',
844         'app/webrtc/peerconnectionfactory.h',
845         'app/webrtc/peerconnectioninterface.h',
846         'app/webrtc/peerconnectionproxy.h',
847         'app/webrtc/portallocatorfactory.cc',
848         'app/webrtc/portallocatorfactory.h',
849         'app/webrtc/proxy.h',
850         'app/webrtc/remoteaudiosource.cc',
851         'app/webrtc/remoteaudiosource.h',
852         'app/webrtc/remotevideocapturer.cc',
853         'app/webrtc/remotevideocapturer.h',
854         'app/webrtc/sctputils.cc',
855         'app/webrtc/sctputils.h',
856         'app/webrtc/statscollector.cc',
857         'app/webrtc/statscollector.h',
858         'app/webrtc/statstypes.h',
859         'app/webrtc/streamcollection.h',
860         'app/webrtc/videosource.cc',
861         'app/webrtc/videosource.h',
862         'app/webrtc/videosourceinterface.h',
863         'app/webrtc/videosourceproxy.h',
864         'app/webrtc/videotrack.cc',
865         'app/webrtc/videotrack.h',
866         'app/webrtc/videotrackrenderers.cc',
867         'app/webrtc/videotrackrenderers.h',
868         'app/webrtc/webrtcsdp.cc',
869         'app/webrtc/webrtcsdp.h',
870         'app/webrtc/webrtcsession.cc',
871         'app/webrtc/webrtcsession.h',
872         'app/webrtc/webrtcsessiondescriptionfactory.cc',
873         'app/webrtc/webrtcsessiondescriptionfactory.h',
874       ],
875     },  # target libjingle_peerconnection
876   ],
877 }