blob: 09e4316c1a39580af8fe8068696586e5ccf8c1e1 [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001#
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
31 'conditions': [
32 ['os_posix == 1 and OS != "mac" and OS != "ios"', {
33 'conditions': [
34 ['sysroot!=""', {
35 'variables': {
36 'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
37 },
38 }, {
39 'variables': {
40 'pkg-config': 'pkg-config'
41 },
42 }],
43 ],
44 }],
45
46 ['OS=="linux" or OS=="android"', {
47 'targets': [
48 {
49 'target_name': 'libjingle_peerconnection_so',
50 'type': 'loadable_module',
51 'dependencies': [
52 'libjingle_peerconnection',
53 '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
54 ],
55 'sources': [
56 'app/webrtc/java/jni/peerconnection_jni.cc'
57 ],
58 'conditions': [
59 ['OS=="linux"', {
60 'defines': [
61 'HAVE_GTK',
62 ],
63 'include_dirs': [
64 '<(java_home)/include',
65 '<(java_home)/include/linux',
66 ],
67 'link_settings': {
68 'libraries': [
69 '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
70 ' gtk+-2.0)',
71 ],
72 },
73 }],
74 ],
75 },
76 {
77 'target_name': 'libjingle_peerconnection_jar',
78 'type': 'none',
79 'actions': [
80 {
81 'variables': {
82 'java_src_dir': 'app/webrtc/java/src',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +000083 'webrtc_modules_dir': '<(webrtc_root)/modules',
henrike@webrtc.org28e20752013-07-10 00:45:36 +000084 'peerconnection_java_files': [
85 'app/webrtc/java/src/org/webrtc/AudioSource.java',
86 'app/webrtc/java/src/org/webrtc/AudioTrack.java',
henrike@webrtc.org723d6832013-07-12 16:04:50 +000087 'app/webrtc/java/src/org/webrtc/DataChannel.java',
henrike@webrtc.org28e20752013-07-10 00:45:36 +000088 'app/webrtc/java/src/org/webrtc/IceCandidate.java',
89 'app/webrtc/java/src/org/webrtc/MediaConstraints.java',
90 'app/webrtc/java/src/org/webrtc/MediaSource.java',
91 'app/webrtc/java/src/org/webrtc/MediaStream.java',
92 'app/webrtc/java/src/org/webrtc/MediaStreamTrack.java',
93 'app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java',
94 'app/webrtc/java/src/org/webrtc/PeerConnection.java',
95 'app/webrtc/java/src/org/webrtc/SdpObserver.java',
96 'app/webrtc/java/src/org/webrtc/StatsObserver.java',
97 'app/webrtc/java/src/org/webrtc/StatsReport.java',
98 'app/webrtc/java/src/org/webrtc/SessionDescription.java',
99 'app/webrtc/java/src/org/webrtc/VideoCapturer.java',
100 'app/webrtc/java/src/org/webrtc/VideoRenderer.java',
101 'app/webrtc/java/src/org/webrtc/VideoSource.java',
102 'app/webrtc/java/src/org/webrtc/VideoTrack.java',
103 ],
104 # TODO(fischman): extract this into a webrtc gyp var that can be
105 # included here, or better yet, build a proper .jar in webrtc
106 # and include it here.
107 'android_java_files': [
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000108 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRTCAudioDevice.java',
109 '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/CaptureCapabilityAndroid.java',
110 '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java',
111 '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java',
112 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java',
113 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java',
114 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000115 ],
116 },
117 'action_name': 'create_jar',
118 'inputs': [
119 'build/build_jar.sh',
120 '<@(java_files)',
121 ],
122 'outputs': [
123 '<(PRODUCT_DIR)/libjingle_peerconnection.jar',
124 ],
125 'conditions': [
126 ['OS=="android"', {
127 'variables': {
128 'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'],
129 'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar',
130 },
131 }, {
132 'variables': {
133 'java_files': ['<@(peerconnection_java_files)'],
134 'build_classpath': '<(java_src_dir)',
135 },
136 }],
137 ],
138 'action': [
139 'build/build_jar.sh', '<(java_home)', '<@(_outputs)',
140 '<(INTERMEDIATE_DIR)',
141 '<(build_classpath)',
142 '<@(java_files)'
143 ],
144 },
145 ],
146 'dependencies': [
147 'libjingle_peerconnection_so',
148 ],
149 },
150 ],
151 }],
152 ['libjingle_objc == 1', {
153 'targets': [
154 {
155 'target_name': 'libjingle_peerconnection_objc',
156 'type': 'static_library',
157 'dependencies': [
158 'libjingle_peerconnection',
159 ],
160 'sources': [
161 'app/webrtc/objc/RTCAudioTrack+Internal.h',
162 'app/webrtc/objc/RTCAudioTrack.mm',
163 'app/webrtc/objc/RTCEnumConverter.h',
164 'app/webrtc/objc/RTCEnumConverter.mm',
165 'app/webrtc/objc/RTCI420Frame.mm',
166 'app/webrtc/objc/RTCIceCandidate+Internal.h',
167 'app/webrtc/objc/RTCIceCandidate.mm',
168 'app/webrtc/objc/RTCIceServer+Internal.h',
169 'app/webrtc/objc/RTCIceServer.mm',
170 'app/webrtc/objc/RTCMediaConstraints+Internal.h',
171 'app/webrtc/objc/RTCMediaConstraints.mm',
172 'app/webrtc/objc/RTCMediaConstraintsNative.cc',
173 'app/webrtc/objc/RTCMediaConstraintsNative.h',
174 'app/webrtc/objc/RTCMediaSource+Internal.h',
175 'app/webrtc/objc/RTCMediaSource.mm',
176 'app/webrtc/objc/RTCMediaStream+Internal.h',
177 'app/webrtc/objc/RTCMediaStream.mm',
178 'app/webrtc/objc/RTCMediaStreamTrack+Internal.h',
179 'app/webrtc/objc/RTCMediaStreamTrack.mm',
180 'app/webrtc/objc/RTCPair.m',
181 'app/webrtc/objc/RTCPeerConnection+Internal.h',
182 'app/webrtc/objc/RTCPeerConnection.mm',
183 'app/webrtc/objc/RTCPeerConnectionFactory.mm',
184 'app/webrtc/objc/RTCPeerConnectionObserver.h',
185 'app/webrtc/objc/RTCPeerConnectionObserver.mm',
186 'app/webrtc/objc/RTCSessionDescription+Internal.h',
187 'app/webrtc/objc/RTCSessionDescription.mm',
188 'app/webrtc/objc/RTCVideoCapturer+Internal.h',
189 'app/webrtc/objc/RTCVideoCapturer.mm',
190 'app/webrtc/objc/RTCVideoRenderer+Internal.h',
191 'app/webrtc/objc/RTCVideoRenderer.mm',
192 'app/webrtc/objc/RTCVideoSource+Internal.h',
193 'app/webrtc/objc/RTCVideoSource.mm',
194 'app/webrtc/objc/RTCVideoTrack+Internal.h',
195 'app/webrtc/objc/RTCVideoTrack.mm',
196 'app/webrtc/objc/public/RTCAudioSource.h',
197 'app/webrtc/objc/public/RTCAudioTrack.h',
198 'app/webrtc/objc/public/RTCI420Frame.h',
199 'app/webrtc/objc/public/RTCIceCandidate.h',
200 'app/webrtc/objc/public/RTCIceServer.h',
201 'app/webrtc/objc/public/RTCMediaConstraints.h',
202 'app/webrtc/objc/public/RTCMediaSource.h',
203 'app/webrtc/objc/public/RTCMediaStream.h',
204 'app/webrtc/objc/public/RTCMediaStreamTrack.h',
205 'app/webrtc/objc/public/RTCPair.h',
206 'app/webrtc/objc/public/RTCPeerConnection.h',
207 'app/webrtc/objc/public/RTCPeerConnectionDelegate.h',
208 'app/webrtc/objc/public/RTCPeerConnectionFactory.h',
209 'app/webrtc/objc/public/RTCSessionDescription.h',
210 'app/webrtc/objc/public/RTCSessionDescriptonDelegate.h',
211 'app/webrtc/objc/public/RTCTypes.h',
212 'app/webrtc/objc/public/RTCVideoCapturer.h',
213 'app/webrtc/objc/public/RTCVideoRenderer.h',
214 'app/webrtc/objc/public/RTCVideoRendererDelegate.h',
215 'app/webrtc/objc/public/RTCVideoSource.h',
216 'app/webrtc/objc/public/RTCVideoTrack.h',
217 ],
218 'include_dirs': [
219 '<(DEPTH)/talk/app/webrtc',
220 '<(DEPTH)/talk/app/webrtc/objc',
221 '<(DEPTH)/talk/app/webrtc/objc/public',
222 ],
223 'link_settings': {
224 'libraries': [
225 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
226 ],
227 },
228 'xcode_settings': {
229 'CLANG_ENABLE_OBJC_ARC': 'YES',
230 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
231 'CLANG_LINK_OBJC_RUNTIME': 'YES',
232 },
233 }
234 ]
235 }],
236 ],
237
238 'targets': [
239 {
240 'target_name': 'libjingle',
241 'type': 'static_library',
242 'dependencies': [
243 '<(DEPTH)/third_party/expat/expat.gyp:expat',
244 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
245 ],
246 'export_dependent_settings': [
247 '<(DEPTH)/third_party/expat/expat.gyp:expat',
248 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
249 ],
250 'sources': [
251 'base/asyncfile.cc',
252 'base/asyncfile.h',
253 'base/asynchttprequest.cc',
254 'base/asynchttprequest.h',
255 'base/asyncpacketsocket.h',
256 'base/asyncsocket.cc',
257 'base/asyncsocket.h',
258 'base/asynctcpsocket.cc',
259 'base/asynctcpsocket.h',
260 'base/asyncudpsocket.cc',
261 'base/asyncudpsocket.h',
262 'base/atomicops.h',
263 'base/autodetectproxy.cc',
264 'base/autodetectproxy.h',
265 'base/bandwidthsmoother.cc',
266 'base/bandwidthsmoother.h',
267 'base/base64.cc',
268 'base/base64.h',
269 'base/basicdefs.h',
270 'base/basictypes.h',
271 'base/bind.h',
272 'base/buffer.h',
273 'base/bytebuffer.cc',
274 'base/bytebuffer.h',
275 'base/byteorder.h',
276 'base/checks.cc',
277 'base/checks.h',
278 'base/common.cc',
279 'base/common.h',
280 'base/constructormagic.h',
281 'base/cpumonitor.cc',
282 'base/cpumonitor.h',
283 'base/crc32.cc',
284 'base/crc32.h',
285 'base/criticalsection.h',
286 'base/cryptstring.h',
287 'base/diskcache.cc',
288 'base/diskcache.h',
289 'base/event.cc',
290 'base/event.h',
291 'base/filelock.cc',
292 'base/filelock.h',
293 'base/fileutils.cc',
294 'base/fileutils.h',
295 'base/fileutils_mock.h',
296 'base/firewallsocketserver.cc',
297 'base/firewallsocketserver.h',
298 'base/flags.cc',
299 'base/flags.h',
300 'base/gunit_prod.h',
301 'base/helpers.cc',
302 'base/helpers.h',
303 'base/host.cc',
304 'base/host.h',
305 'base/httpbase.cc',
306 'base/httpbase.h',
307 'base/httpclient.cc',
308 'base/httpclient.h',
309 'base/httpcommon-inl.h',
310 'base/httpcommon.cc',
311 'base/httpcommon.h',
312 'base/httprequest.cc',
313 'base/httprequest.h',
314 'base/httpserver.cc',
315 'base/httpserver.h',
316 'base/ifaddrs-android.cc',
317 'base/ifaddrs-android.h',
318 'base/ipaddress.cc',
319 'base/ipaddress.h',
320 'base/json.cc',
321 'base/json.h',
322 'base/linked_ptr.h',
323 'base/linuxfdwalk.h',
324 'base/logging.cc',
325 'base/logging.h',
326 'base/maccocoathreadhelper.h',
327 'base/maccocoathreadhelper.mm',
328 'base/mathutils.h',
329 'base/md5.cc',
330 'base/md5.h',
331 'base/md5digest.h',
332 'base/messagedigest.cc',
333 'base/messagedigest.h',
334 'base/messagehandler.cc',
335 'base/messagehandler.h',
336 'base/messagequeue.cc',
337 'base/messagequeue.h',
338 'base/multipart.cc',
339 'base/multipart.h',
340 'base/natserver.cc',
341 'base/natserver.h',
342 'base/natsocketfactory.cc',
343 'base/natsocketfactory.h',
344 'base/nattypes.cc',
345 'base/nattypes.h',
346 'base/nethelpers.cc',
347 'base/nethelpers.h',
348 'base/network.cc',
349 'base/network.h',
350 'base/nssidentity.cc',
351 'base/nssidentity.h',
352 'base/nssstreamadapter.cc',
353 'base/nssstreamadapter.h',
354 'base/nullsocketserver.h',
355 'base/optionsfile.cc',
356 'base/optionsfile.h',
357 'base/pathutils.cc',
358 'base/pathutils.h',
359 'base/physicalsocketserver.cc',
360 'base/physicalsocketserver.h',
361 'base/profiler.cc',
362 'base/profiler.h',
363 'base/proxydetect.cc',
364 'base/proxydetect.h',
365 'base/proxyinfo.cc',
366 'base/proxyinfo.h',
367 'base/proxyserver.cc',
368 'base/proxyserver.h',
369 'base/ratelimiter.cc',
370 'base/ratelimiter.h',
371 'base/ratetracker.cc',
372 'base/ratetracker.h',
373 'base/refcount.h',
374 'base/referencecountedsingletonfactory.h',
375 'base/rollingaccumulator.h',
376 'base/scoped_autorelease_pool.h',
377 'base/scoped_ptr.h',
378 'base/scoped_ref_ptr.h',
379 'base/sec_buffer.h',
380 'base/sha1.cc',
381 'base/sha1.h',
382 'base/sha1digest.h',
383 'base/sharedexclusivelock.cc',
384 'base/sharedexclusivelock.h',
385 'base/signalthread.cc',
386 'base/signalthread.h',
387 'base/sigslot.h',
388 'base/sigslotrepeater.h',
389 'base/socket.h',
390 'base/socketadapters.cc',
391 'base/socketadapters.h',
392 'base/socketaddress.cc',
393 'base/socketaddress.h',
394 'base/socketaddresspair.cc',
395 'base/socketaddresspair.h',
396 'base/socketfactory.h',
397 'base/socketpool.cc',
398 'base/socketpool.h',
399 'base/socketserver.h',
400 'base/socketstream.cc',
401 'base/socketstream.h',
402 'base/ssladapter.cc',
403 'base/ssladapter.h',
404 'base/sslconfig.h',
405 'base/sslfingerprint.h',
406 'base/sslidentity.cc',
407 'base/sslidentity.h',
408 'base/sslroots.h',
409 'base/sslsocketfactory.cc',
410 'base/sslsocketfactory.h',
411 'base/sslstreamadapter.cc',
412 'base/sslstreamadapter.h',
413 'base/sslstreamadapterhelper.cc',
414 'base/sslstreamadapterhelper.h',
415 'base/stream.cc',
416 'base/stream.h',
417 'base/stringdigest.h',
418 'base/stringencode.cc',
419 'base/stringencode.h',
420 'base/stringutils.cc',
421 'base/stringutils.h',
422 'base/systeminfo.cc',
423 'base/systeminfo.h',
424 'base/task.cc',
425 'base/task.h',
426 'base/taskparent.cc',
427 'base/taskparent.h',
428 'base/taskrunner.cc',
429 'base/taskrunner.h',
430 'base/testclient.cc',
431 'base/testclient.h',
432 'base/thread.cc',
433 'base/thread.h',
434 'base/timeutils.cc',
435 'base/timeutils.h',
436 'base/timing.cc',
437 'base/timing.h',
438 'base/transformadapter.cc',
439 'base/transformadapter.h',
440 'base/urlencode.cc',
441 'base/urlencode.h',
442 'base/versionparsing.cc',
443 'base/versionparsing.h',
444 'base/virtualsocketserver.cc',
445 'base/virtualsocketserver.h',
446 'base/window.h',
447 'base/windowpicker.h',
448 'base/windowpickerfactory.h',
449 'base/worker.cc',
450 'base/worker.h',
451 'xmllite/qname.cc',
452 'xmllite/qname.h',
453 'xmllite/xmlbuilder.cc',
454 'xmllite/xmlbuilder.h',
455 'xmllite/xmlconstants.cc',
456 'xmllite/xmlconstants.h',
457 'xmllite/xmlelement.cc',
458 'xmllite/xmlelement.h',
459 'xmllite/xmlnsstack.cc',
460 'xmllite/xmlnsstack.h',
461 'xmllite/xmlparser.cc',
462 'xmllite/xmlparser.h',
463 'xmllite/xmlprinter.cc',
464 'xmllite/xmlprinter.h',
465 'xmpp/asyncsocket.h',
466 'xmpp/chatroommodule.h',
467 'xmpp/chatroommoduleimpl.cc',
468 'xmpp/constants.cc',
469 'xmpp/constants.h',
470 'xmpp/discoitemsquerytask.cc',
471 'xmpp/discoitemsquerytask.h',
472 'xmpp/hangoutpubsubclient.cc',
473 'xmpp/hangoutpubsubclient.h',
474 'xmpp/iqtask.cc',
475 'xmpp/iqtask.h',
476 'xmpp/jid.cc',
477 'xmpp/jid.h',
478 'xmpp/module.h',
479 'xmpp/moduleimpl.cc',
480 'xmpp/moduleimpl.h',
481 'xmpp/mucroomconfigtask.cc',
482 'xmpp/mucroomconfigtask.h',
483 'xmpp/mucroomdiscoverytask.cc',
484 'xmpp/mucroomdiscoverytask.h',
485 'xmpp/mucroomlookuptask.cc',
486 'xmpp/mucroomlookuptask.h',
487 'xmpp/mucroomuniquehangoutidtask.cc',
488 'xmpp/mucroomuniquehangoutidtask.h',
489 'xmpp/pingtask.cc',
490 'xmpp/pingtask.h',
491 'xmpp/plainsaslhandler.h',
492 'xmpp/presenceouttask.cc',
493 'xmpp/presenceouttask.h',
494 'xmpp/presencereceivetask.cc',
495 'xmpp/presencereceivetask.h',
496 'xmpp/presencestatus.cc',
497 'xmpp/presencestatus.h',
498 'xmpp/prexmppauth.h',
499 'xmpp/pubsub_task.cc',
500 'xmpp/pubsub_task.h',
501 'xmpp/pubsubclient.cc',
502 'xmpp/pubsubclient.h',
503 'xmpp/pubsubtasks.cc',
504 'xmpp/pubsubtasks.h',
505 'xmpp/receivetask.cc',
506 'xmpp/receivetask.h',
507 'xmpp/rostermodule.h',
508 'xmpp/rostermoduleimpl.cc',
509 'xmpp/rostermoduleimpl.h',
510 'xmpp/saslcookiemechanism.h',
511 'xmpp/saslhandler.h',
512 'xmpp/saslmechanism.cc',
513 'xmpp/saslmechanism.h',
514 'xmpp/saslplainmechanism.h',
515 'xmpp/xmppauth.cc',
516 'xmpp/xmppauth.h',
517 'xmpp/xmppclient.cc',
518 'xmpp/xmppclient.h',
519 'xmpp/xmppclientsettings.h',
520 'xmpp/xmppengine.h',
521 'xmpp/xmppengineimpl.cc',
522 'xmpp/xmppengineimpl.h',
523 'xmpp/xmppengineimpl_iq.cc',
524 'xmpp/xmpplogintask.cc',
525 'xmpp/xmpplogintask.h',
526 'xmpp/xmpppump.cc',
527 'xmpp/xmpppump.h',
528 'xmpp/xmppsocket.cc',
529 'xmpp/xmppsocket.h',
530 'xmpp/xmppstanzaparser.cc',
531 'xmpp/xmppstanzaparser.h',
532 'xmpp/xmpptask.cc',
533 'xmpp/xmpptask.h',
534 'xmpp/xmppthread.cc',
535 'xmpp/xmppthread.h',
536 ],
537 'conditions': [
538 ['OS=="mac" or OS=="ios" or OS=="win"', {
539 'dependencies': [
540 # The chromium copy of nss should NOT be used on platforms that
541 # have NSS as system libraries, such as linux.
542 '<(DEPTH)/third_party/nss/nss.gyp:nss',
543 ],
544 }],
545 ['OS=="android"', {
546 'sources': [
547 'base/ifaddrs-android.cc',
548 ],
549 'link_settings': {
550 'libraries': [
551 '-llog',
552 '-lGLESv2',
553 ],
554 },
555 }],
556 ['OS=="linux" or OS=="android"', {
557 'sources': [
558 'base/linux.cc',
559 'base/linux.h',
560 ],
561 }],
562 ['OS=="linux"', {
563 'sources': [
564 'base/dbus.cc',
565 'base/dbus.h',
566 'base/libdbusglibsymboltable.cc',
567 'base/libdbusglibsymboltable.h',
568 'base/linuxfdwalk.c',
569 'base/linuxwindowpicker.cc',
570 'base/linuxwindowpicker.h',
571 ],
572 'link_settings': {
573 'libraries': [
574 '-lcrypto',
575 '-ldl',
576 '-lrt',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000577 '-lXext',
578 '-lX11',
579 '-lXcomposite',
580 '-lXrender',
581 '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")',
582 ],
583 },
584 'cflags': [
585 '<!@(<(pkg-config) --cflags nss)',
586 ],
587 'ldflags': [
588 '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)',
589 ],
590 }],
591 ['OS=="mac"', {
592 'conditions': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000593 ['libjingle_objc != 1', {
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000594 'link_settings' :{
595 'xcode_settings': {
596 'OTHER_LDFLAGS': [
597 '-framework Carbon',
598 ],
599 },
600 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000601 }],
602 ],
603 'sources': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000604 'base/macasyncsocket.cc',
605 'base/macasyncsocket.h',
606 'base/maccocoasocketserver.h',
607 'base/maccocoasocketserver.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000608 'base/macconversion.cc',
609 'base/macconversion.h',
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000610 'base/macsocketserver.cc',
611 'base/macsocketserver.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000612 'base/macutils.cc',
613 'base/macutils.h',
614 'base/macwindowpicker.cc',
615 'base/macwindowpicker.h',
616 'base/scoped_autorelease_pool.mm',
617 ],
618 'link_settings': {
619 'libraries': [
620 '$(SDKROOT)/usr/lib/libcrypto.dylib',
621 '$(SDKROOT)/usr/lib/libssl.dylib',
622 ],
623 'xcode_settings': {
624 'OTHER_LDFLAGS': [
625 '-framework Cocoa',
626 '-framework IOKit',
627 '-framework Security',
628 '-framework SystemConfiguration',
629 ],
630 },
631 },
632 }],
633 ['OS=="ios"', {
634 # 'dependencies': [
635 # '<(DEPTH)/third_party/openssl/openssl.gyp:openssl',
636 # ],
637 # 'include_dirs': [
638 # '<(DEPTH)/third_party/openssl/openssl/include',
639 # ],
640 'sources': [
641 'base/scoped_autorelease_pool.mm',
642 ],
643 'xcode_settings': {
644 'OTHER_LDFLAGS': [
645 '-framework IOKit',
646 '-framework Security',
647 '-framework SystemConfiguration',
648 '-framework UIKit',
649 ],
650 },
651 'defines': [
wu@webrtc.org7fdbb1c2013-07-31 22:41:36 +0000652 'SSL_USE_NSS',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000653 ],
654 }],
655 ['OS=="win"', {
656 'sources': [
657 'base/diskcache_win32.cc',
658 'base/diskcache_win32.h',
659 'base/schanneladapter.cc',
660 'base/schanneladapter.h',
661 'base/win32.cc',
662 'base/win32.h',
663 'base/win32filesystem.cc',
664 'base/win32filesystem.h',
665 'base/win32regkey.cc',
666 'base/win32regkey.h',
667 'base/win32securityerrors.cc',
668 'base/win32socketinit.cc',
669 'base/win32socketinit.h',
670 'base/win32socketserver.cc',
671 'base/win32socketserver.h',
672 'base/win32window.cc',
673 'base/win32window.h',
674 'base/win32windowpicker.cc',
675 'base/win32windowpicker.h',
676 'base/winfirewall.cc',
677 'base/winfirewall.h',
678 'base/winping.cc',
679 'base/winping.h',
680 ],
henrike@webrtc.org28654cb2013-07-22 21:07:49 +0000681 'link_settings': {
682 'libraries': [
683 '-lcrypt32.lib',
684 '-liphlpapi.lib',
685 '-lsecur32.lib',
686 ],
687 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000688 # Suppress warnings about WIN32_LEAN_AND_MEAN.
689 'msvs_disabled_warnings': [4005],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000690 }],
691 ['os_posix==1', {
692 'sources': [
693 'base/latebindingsymboltable.cc',
694 'base/latebindingsymboltable.h',
695 'base/posix.cc',
696 'base/posix.h',
697 'base/unixfilesystem.cc',
698 'base/unixfilesystem.h',
699 ],
700 'conditions': [
701 ['OS=="linux" or OS=="android"', {
702 'dependencies': [
703 '<(DEPTH)/third_party/openssl/openssl.gyp:openssl',
704 ],
705 }],
706 ['OS!="ios"', {
707 'sources': [
708 'base/openssladapter.cc',
709 'base/openssladapter.h',
710 'base/openssldigest.cc',
711 'base/openssldigest.h',
712 'base/opensslidentity.cc',
713 'base/opensslidentity.h',
714 'base/opensslstreamadapter.cc',
715 'base/opensslstreamadapter.h',
716 ],
717 }],
718 ],
719 }],
720 ], # conditions
721 }, # target libjingle
722 {
723 'target_name': 'libjingle_sound',
724 'type': 'static_library',
725 'dependencies': [
726 'libjingle',
727 ],
728 'sources': [
729 'sound/automaticallychosensoundsystem.h',
730 'sound/nullsoundsystem.cc',
731 'sound/nullsoundsystem.h',
732 'sound/nullsoundsystemfactory.cc',
733 'sound/nullsoundsystemfactory.h',
734 'sound/platformsoundsystem.cc',
735 'sound/platformsoundsystem.h',
736 'sound/platformsoundsystemfactory.cc',
737 'sound/platformsoundsystemfactory.h',
738 'sound/sounddevicelocator.h',
739 'sound/soundinputstreaminterface.h',
740 'sound/soundoutputstreaminterface.h',
741 'sound/soundsystemfactory.h',
742 'sound/soundsysteminterface.cc',
743 'sound/soundsysteminterface.h',
744 'sound/soundsystemproxy.cc',
745 'sound/soundsystemproxy.h',
746 ],
747 'conditions': [
748 ['OS=="linux"', {
749 'sources': [
750 'sound/alsasoundsystem.cc',
751 'sound/alsasoundsystem.h',
752 'sound/alsasymboltable.cc',
753 'sound/alsasymboltable.h',
754 'sound/linuxsoundsystem.cc',
755 'sound/linuxsoundsystem.h',
756 'sound/pulseaudiosoundsystem.cc',
757 'sound/pulseaudiosoundsystem.h',
758 'sound/pulseaudiosymboltable.cc',
759 'sound/pulseaudiosymboltable.h',
760 ],
761 }],
762 ],
763 }, # target libjingle_sound
764 {
765 'target_name': 'libjingle_media',
766 'type': 'static_library',
767 'dependencies': [
768 '<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000769 '<(webrtc_root)/modules/modules.gyp:video_capture_module',
770 '<(webrtc_root)/modules/modules.gyp:video_render_module',
771 '<(webrtc_root)/video_engine/video_engine.gyp:video_engine_core',
772 '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
773 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000774 'libjingle',
775 'libjingle_sound',
776 ],
777 'direct_dependent_settings': {
778 'include_dirs': [
779 '<(DEPTH)/third_party/libyuv/include',
780 ],
781 },
782 'sources': [
783 'media/base/audioframe.h',
784 'media/base/audiorenderer.h',
785 'media/base/capturemanager.cc',
786 'media/base/capturemanager.h',
787 'media/base/capturerenderadapter.cc',
788 'media/base/capturerenderadapter.h',
789 'media/base/codec.cc',
790 'media/base/codec.h',
791 'media/base/constants.cc',
792 'media/base/constants.h',
793 'media/base/cpuid.cc',
794 'media/base/cpuid.h',
795 'media/base/cryptoparams.h',
796 'media/base/filemediaengine.cc',
797 'media/base/filemediaengine.h',
798 'media/base/hybriddataengine.h',
799 'media/base/hybridvideoengine.cc',
800 'media/base/hybridvideoengine.h',
801 'media/base/mediachannel.h',
802 'media/base/mediacommon.h',
803 'media/base/mediaengine.cc',
804 'media/base/mediaengine.h',
805 'media/base/mutedvideocapturer.cc',
806 'media/base/mutedvideocapturer.h',
807 'media/base/rtpdataengine.cc',
808 'media/base/rtpdataengine.h',
809 'media/base/rtpdump.cc',
810 'media/base/rtpdump.h',
811 'media/base/rtputils.cc',
812 'media/base/rtputils.h',
813 'media/base/screencastid.h',
814 'media/base/streamparams.cc',
815 'media/base/streamparams.h',
816 'media/base/videoadapter.cc',
817 'media/base/videoadapter.h',
818 'media/base/videocapturer.cc',
819 'media/base/videocapturer.h',
820 'media/base/videocommon.cc',
821 'media/base/videocommon.h',
822 'media/base/videoframe.cc',
823 'media/base/videoframe.h',
824 'media/base/videoprocessor.h',
825 'media/base/videorenderer.h',
826 'media/base/voiceprocessor.h',
827 'media/devices/deviceinfo.h',
828 'media/devices/devicemanager.cc',
829 'media/devices/devicemanager.h',
830 'media/devices/dummydevicemanager.h',
831 'media/devices/filevideocapturer.cc',
832 'media/devices/filevideocapturer.h',
833 'media/devices/videorendererfactory.h',
834 'media/other/linphonemediaengine.h',
835 # TODO(ronghuawu): Enable when SCTP is ready.
836 # 'media/sctp/sctpdataengine.cc',
837 # 'media/sctp/sctpdataengine.h',
838 'media/webrtc/webrtccommon.h',
839 'media/webrtc/webrtcexport.h',
840 'media/webrtc/webrtcmediaengine.h',
841 'media/webrtc/webrtcpassthroughrender.cc',
842 'media/webrtc/webrtcpassthroughrender.h',
843 'media/webrtc/webrtcvideocapturer.cc',
844 'media/webrtc/webrtcvideocapturer.h',
845 'media/webrtc/webrtcvideodecoderfactory.h',
846 'media/webrtc/webrtcvideoencoderfactory.h',
847 'media/webrtc/webrtcvideoengine.cc',
848 'media/webrtc/webrtcvideoengine.h',
849 'media/webrtc/webrtcvideoframe.cc',
850 'media/webrtc/webrtcvideoframe.h',
851 'media/webrtc/webrtcvie.h',
852 'media/webrtc/webrtcvoe.h',
853 'media/webrtc/webrtcvoiceengine.cc',
854 'media/webrtc/webrtcvoiceengine.h',
855 ],
856 'conditions': [
857 ['OS=="linux"', {
858 'sources': [
859 'media/devices/gtkvideorenderer.cc',
860 'media/devices/gtkvideorenderer.h',
861 'media/devices/libudevsymboltable.cc',
862 'media/devices/libudevsymboltable.h',
863 'media/devices/linuxdeviceinfo.cc',
864 'media/devices/linuxdevicemanager.cc',
865 'media/devices/linuxdevicemanager.h',
866 'media/devices/v4llookup.cc',
867 'media/devices/v4llookup.h',
868 ],
869 'include_dirs': [
870 'third_party/libudev'
871 ],
872 'cflags': [
873 '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)',
874 ],
875 'libraries': [
876 '-lrt',
877 '-lXext',
878 '-lX11',
879 ],
880 }],
881 ['OS=="win"', {
882 'sources': [
883 'media/devices/gdivideorenderer.cc',
884 'media/devices/gdivideorenderer.h',
885 'media/devices/win32deviceinfo.cc',
886 'media/devices/win32devicemanager.cc',
887 'media/devices/win32devicemanager.h',
888 ],
889 'msvs_settings': {
890 'VCLibrarianTool': {
891 'AdditionalDependencies': [
892 'd3d9.lib',
893 'gdi32.lib',
894 'strmiids.lib',
895 'winmm.lib',
896 ],
897 },
898 },
899 }],
900 ['OS=="mac"', {
901 'sources': [
902 'media/devices/macdeviceinfo.cc',
903 'media/devices/macdevicemanager.cc',
904 'media/devices/macdevicemanager.h',
905 'media/devices/macdevicemanagermm.mm',
906 ],
907 'conditions': [
908 # TODO(hughv): Investigate if this is needed.
909 [ 'libjingle_objc != 1', {
910 'sources': [
911 'media/devices/carbonvideorenderer.cc',
912 'media/devices/carbonvideorenderer.h',
913 ],
914 }],
915 ],
916 'xcode_settings': {
917 'WARNING_CFLAGS': [
918 # TODO(ronghuawu): Update macdevicemanager.cc to stop using
919 # deprecated functions and remove this flag.
920 '-Wno-deprecated-declarations',
921 ],
922 },
923 'link_settings': {
924 'xcode_settings': {
925 'OTHER_LDFLAGS': [
926 '-framework Cocoa',
927 '-framework CoreAudio',
928 '-framework CoreVideo',
929 '-framework OpenGL',
930 '-framework QTKit',
931 ],
932 },
933 },
934 }],
935 ['OS=="ios"', {
936 'sources': [
937 'media/devices/iosdeviceinfo.cc',
938 'media/devices/mobiledevicemanager.cc',
939 ],
940 'include_dirs': [
941 # TODO(sjlee) Remove when vp8 is building for iOS. vp8 pulls in
942 # libjpeg which pulls in libyuv which currently disabled.
943 '../third_party/libyuv/include',
944 ],
945 }],
946 ['OS=="android"', {
947 'sources': [
948 'media/devices/mobiledevicemanager.cc',
949 ],
950 }],
951 ],
952 }, # target libjingle_media
953 {
954 'target_name': 'libjingle_p2p',
955 'type': 'static_library',
956 'dependencies': [
957 '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
958 'libjingle',
959 'libjingle_media',
960 ],
961 'include_dirs': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000962 '<(DEPTH)/testing/gtest/include',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000963 ],
964 'direct_dependent_settings': {
965 'include_dirs': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000966 '<(DEPTH)/testing/gtest/include',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000967 ],
968 },
969 'defines': [
970 # TODO(ronghuawu): enable SCTP when it's ready.
971 # 'HAVE_SCTP',
972 ],
973 'sources': [
974 'p2p/base/asyncstuntcpsocket.cc',
975 'p2p/base/asyncstuntcpsocket.h',
976 'p2p/base/basicpacketsocketfactory.cc',
977 'p2p/base/basicpacketsocketfactory.h',
978 'p2p/base/candidate.h',
979 'p2p/base/common.h',
980 'p2p/base/constants.cc',
981 'p2p/base/constants.h',
982 'p2p/base/dtlstransportchannel.cc',
983 'p2p/base/dtlstransportchannel.h',
984 'p2p/base/p2ptransport.cc',
985 'p2p/base/p2ptransport.h',
986 'p2p/base/p2ptransportchannel.cc',
987 'p2p/base/p2ptransportchannel.h',
988 'p2p/base/packetsocketfactory.h',
989 'p2p/base/parsing.cc',
990 'p2p/base/parsing.h',
991 'p2p/base/port.cc',
992 'p2p/base/port.h',
993 'p2p/base/portallocator.cc',
994 'p2p/base/portallocator.h',
995 'p2p/base/portallocatorsessionproxy.cc',
996 'p2p/base/portallocatorsessionproxy.h',
997 'p2p/base/portinterface.h',
998 'p2p/base/portproxy.cc',
999 'p2p/base/portproxy.h',
1000 'p2p/base/pseudotcp.cc',
1001 'p2p/base/pseudotcp.h',
1002 'p2p/base/rawtransport.cc',
1003 'p2p/base/rawtransport.h',
1004 'p2p/base/rawtransportchannel.cc',
1005 'p2p/base/rawtransportchannel.h',
1006 'p2p/base/relayport.cc',
1007 'p2p/base/relayport.h',
1008 'p2p/base/relayserver.cc',
1009 'p2p/base/relayserver.h',
1010 'p2p/base/session.cc',
1011 'p2p/base/session.h',
1012 'p2p/base/sessionclient.h',
1013 'p2p/base/sessiondescription.cc',
1014 'p2p/base/sessiondescription.h',
1015 'p2p/base/sessionid.h',
1016 'p2p/base/sessionmanager.cc',
1017 'p2p/base/sessionmanager.h',
1018 'p2p/base/sessionmessages.cc',
1019 'p2p/base/sessionmessages.h',
1020 'p2p/base/stun.cc',
1021 'p2p/base/stun.h',
1022 'p2p/base/stunport.cc',
1023 'p2p/base/stunport.h',
1024 'p2p/base/stunrequest.cc',
1025 'p2p/base/stunrequest.h',
1026 'p2p/base/stunserver.cc',
1027 'p2p/base/stunserver.h',
1028 'p2p/base/tcpport.cc',
1029 'p2p/base/tcpport.h',
1030 'p2p/base/transport.cc',
1031 'p2p/base/transport.h',
1032 'p2p/base/transportchannel.cc',
1033 'p2p/base/transportchannel.h',
1034 'p2p/base/transportchannelimpl.h',
1035 'p2p/base/transportchannelproxy.cc',
1036 'p2p/base/transportchannelproxy.h',
1037 'p2p/base/transportdescription.h',
1038 'p2p/base/transportdescriptionfactory.cc',
1039 'p2p/base/transportdescriptionfactory.h',
1040 'p2p/base/transportinfo.h',
1041 'p2p/base/turnport.cc',
1042 'p2p/base/turnport.h',
1043 'p2p/base/turnserver.cc',
1044 'p2p/base/turnserver.h',
1045 'p2p/base/udpport.h',
1046 'p2p/client/autoportallocator.h',
1047 'p2p/client/basicportallocator.cc',
1048 'p2p/client/basicportallocator.h',
1049 'p2p/client/connectivitychecker.cc',
1050 'p2p/client/connectivitychecker.h',
1051 'p2p/client/httpportallocator.cc',
1052 'p2p/client/httpportallocator.h',
1053 'p2p/client/sessionmanagertask.h',
1054 'p2p/client/sessionsendtask.h',
1055 'p2p/client/socketmonitor.cc',
1056 'p2p/client/socketmonitor.h',
1057 'session/tunnel/pseudotcpchannel.cc',
1058 'session/tunnel/pseudotcpchannel.h',
1059 'session/tunnel/tunnelsessionclient.cc',
1060 'session/tunnel/tunnelsessionclient.h',
1061 'session/tunnel/securetunnelsessionclient.cc',
1062 'session/tunnel/securetunnelsessionclient.h',
1063 'session/media/audiomonitor.cc',
1064 'session/media/audiomonitor.h',
1065 'session/media/call.cc',
1066 'session/media/call.h',
1067 'session/media/channel.cc',
1068 'session/media/channel.h',
1069 'session/media/channelmanager.cc',
1070 'session/media/channelmanager.h',
1071 'session/media/currentspeakermonitor.cc',
1072 'session/media/currentspeakermonitor.h',
1073 'session/media/mediamessages.cc',
1074 'session/media/mediamessages.h',
1075 'session/media/mediamonitor.cc',
1076 'session/media/mediamonitor.h',
1077 'session/media/mediarecorder.cc',
1078 'session/media/mediarecorder.h',
1079 'session/media/mediasession.cc',
1080 'session/media/mediasession.h',
1081 'session/media/mediasessionclient.cc',
1082 'session/media/mediasessionclient.h',
1083 'session/media/mediasink.h',
1084 'session/media/rtcpmuxfilter.cc',
1085 'session/media/rtcpmuxfilter.h',
1086 'session/media/soundclip.cc',
1087 'session/media/soundclip.h',
1088 'session/media/srtpfilter.cc',
1089 'session/media/srtpfilter.h',
1090 'session/media/ssrcmuxfilter.cc',
1091 'session/media/ssrcmuxfilter.h',
1092 'session/media/typingmonitor.cc',
1093 'session/media/typingmonitor.h',
1094 'session/media/voicechannel.h',
1095 ],
1096 }, # target libjingle_p2p
1097 {
1098 'target_name': 'libjingle_peerconnection',
1099 'type': 'static_library',
1100 'dependencies': [
1101 'libjingle',
1102 'libjingle_media',
1103 'libjingle_p2p',
1104 ],
1105 'sources': [
1106 'app/webrtc/audiotrack.cc',
1107 'app/webrtc/audiotrack.h',
1108 'app/webrtc/audiotrackrenderer.cc',
1109 'app/webrtc/audiotrackrenderer.h',
1110 'app/webrtc/datachannel.cc',
1111 'app/webrtc/datachannel.h',
1112 'app/webrtc/datachannelinterface.h',
1113 'app/webrtc/dtmfsender.cc',
1114 'app/webrtc/dtmfsender.h',
1115 'app/webrtc/dtmfsenderinterface.h',
1116 'app/webrtc/fakeportallocatorfactory.h',
1117 'app/webrtc/jsep.h',
1118 'app/webrtc/jsepicecandidate.cc',
1119 'app/webrtc/jsepicecandidate.h',
1120 'app/webrtc/jsepsessiondescription.cc',
1121 'app/webrtc/jsepsessiondescription.h',
1122 'app/webrtc/localaudiosource.cc',
1123 'app/webrtc/localaudiosource.h',
1124 'app/webrtc/localvideosource.cc',
1125 'app/webrtc/localvideosource.h',
1126 'app/webrtc/mediaconstraintsinterface.cc',
1127 'app/webrtc/mediaconstraintsinterface.h',
1128 'app/webrtc/mediastream.cc',
1129 'app/webrtc/mediastream.h',
1130 'app/webrtc/mediastreamhandler.cc',
1131 'app/webrtc/mediastreamhandler.h',
1132 'app/webrtc/mediastreaminterface.h',
1133 'app/webrtc/mediastreamprovider.h',
1134 'app/webrtc/mediastreamproxy.h',
1135 'app/webrtc/mediastreamsignaling.cc',
1136 'app/webrtc/mediastreamsignaling.h',
1137 'app/webrtc/mediastreamtrack.h',
1138 'app/webrtc/mediastreamtrackproxy.h',
1139 'app/webrtc/notifier.h',
1140 'app/webrtc/peerconnection.cc',
1141 'app/webrtc/peerconnection.h',
1142 'app/webrtc/peerconnectionfactory.cc',
1143 'app/webrtc/peerconnectionfactory.h',
1144 'app/webrtc/peerconnectioninterface.h',
1145 'app/webrtc/peerconnectionproxy.h',
1146 'app/webrtc/portallocatorfactory.cc',
1147 'app/webrtc/portallocatorfactory.h',
1148 'app/webrtc/proxy.h',
1149 'app/webrtc/statscollector.cc',
1150 'app/webrtc/statscollector.h',
1151 'app/webrtc/statstypes.h',
1152 'app/webrtc/streamcollection.h',
1153 'app/webrtc/videosourceinterface.h',
1154 'app/webrtc/videosourceproxy.h',
1155 'app/webrtc/videotrack.cc',
1156 'app/webrtc/videotrack.h',
1157 'app/webrtc/videotrackrenderers.cc',
1158 'app/webrtc/videotrackrenderers.h',
1159 'app/webrtc/webrtcsdp.cc',
1160 'app/webrtc/webrtcsdp.h',
1161 'app/webrtc/webrtcsession.cc',
1162 'app/webrtc/webrtcsession.h',
1163 ],
1164 }, # target libjingle_peerconnection
1165 ],
1166}