# # libjingle # Copyright 2012, Google Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # { 'includes': ['build/common.gypi'], 'conditions': [ ['os_posix == 1 and OS != "mac" and OS != "ios"', { 'conditions': [ ['sysroot!=""', { 'variables': { 'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"', }, }, { 'variables': { 'pkg-config': 'pkg-config' }, }], ], }], ['OS=="linux" or OS=="android"', { 'targets': [ { 'target_name': 'libjingle_peerconnection_so', 'type': 'loadable_module', 'dependencies': [ 'libjingle_peerconnection', '<(DEPTH)/third_party/icu/icu.gyp:icuuc', ], 'sources': [ 'app/webrtc/java/jni/peerconnection_jni.cc' ], 'include_dirs': [ '<(DEPTH)/third_party/libyuv/include', ], 'conditions': [ ['OS=="linux"', { 'defines': [ 'HAVE_GTK', ], 'include_dirs': [ '<(java_home)/include', '<(java_home)/include/linux', ], 'link_settings': { 'libraries': [ '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0' ' gtk+-2.0)', ], }, }], ], }, { 'target_name': 'libjingle_peerconnection_jar', 'type': 'none', 'actions': [ { 'variables': { 'java_src_dir': 'app/webrtc/java/src', 'webrtc_modules_dir': '<(webrtc_root)/modules', 'build_jar_log': '<(INTERMEDIATE_DIR)/build_jar.log', 'peerconnection_java_files': [ 'app/webrtc/java/src/org/webrtc/AudioSource.java', 'app/webrtc/java/src/org/webrtc/AudioTrack.java', 'app/webrtc/java/src/org/webrtc/DataChannel.java', 'app/webrtc/java/src/org/webrtc/IceCandidate.java', 'app/webrtc/java/src/org/webrtc/Logging.java', 'app/webrtc/java/src/org/webrtc/MediaConstraints.java', 'app/webrtc/java/src/org/webrtc/MediaSource.java', 'app/webrtc/java/src/org/webrtc/MediaStream.java', 'app/webrtc/java/src/org/webrtc/MediaStreamTrack.java', 'app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java', 'app/webrtc/java/src/org/webrtc/PeerConnection.java', 'app/webrtc/java/src/org/webrtc/SdpObserver.java', 'app/webrtc/java/src/org/webrtc/StatsObserver.java', 'app/webrtc/java/src/org/webrtc/StatsReport.java', 'app/webrtc/java/src/org/webrtc/SessionDescription.java', 'app/webrtc/java/src/org/webrtc/VideoCapturer.java', 'app/webrtc/java/src/org/webrtc/VideoRenderer.java', 'app/webrtc/java/src/org/webrtc/VideoSource.java', 'app/webrtc/java/src/org/webrtc/VideoTrack.java', ], # TODO(fischman): extract this into a webrtc gyp var that can be # included here, or better yet, build a proper .jar in webrtc # and include it here. 'android_java_files': [ 'app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java', '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/AudioManagerAndroid.java', '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureAndroid.java', '<(webrtc_modules_dir)/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java', '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java', '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java', '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java', ], }, 'action_name': 'create_jar', 'inputs': [ 'build/build_jar.sh', '<@(java_files)', ], 'outputs': [ '<(PRODUCT_DIR)/libjingle_peerconnection.jar', ], 'conditions': [ ['OS=="android"', { 'variables': { 'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'], 'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar', }, }, { 'variables': { 'java_files': ['<@(peerconnection_java_files)'], 'build_classpath': '<(java_src_dir)', }, }], ], 'action': [ 'bash', '-ec', 'mkdir -p <(INTERMEDIATE_DIR) && ' '{ build/build_jar.sh <(java_home) <@(_outputs) ' ' <(INTERMEDIATE_DIR)/build_jar.tmp ' ' <(build_classpath) <@(java_files) ' ' > <(build_jar_log) 2>&1 || ' ' { cat <(build_jar_log) ; exit 1; } }' ], }, ], 'dependencies': [ 'libjingle_peerconnection_so', ], }, ], }], ['OS=="ios" or (OS=="mac" and target_arch!="ia32" and mac_sdk>="10.7")', { # The >= 10.7 above is required for ARC. 'targets': [ { 'target_name': 'libjingle_peerconnection_objc', 'type': 'static_library', 'dependencies': [ 'libjingle_peerconnection', ], 'sources': [ 'app/webrtc/objc/RTCAudioTrack+Internal.h', 'app/webrtc/objc/RTCAudioTrack.mm', 'app/webrtc/objc/RTCDataChannel+Internal.h', 'app/webrtc/objc/RTCDataChannel.mm', 'app/webrtc/objc/RTCEnumConverter.h', 'app/webrtc/objc/RTCEnumConverter.mm', 'app/webrtc/objc/RTCI420Frame.mm', 'app/webrtc/objc/RTCICECandidate+Internal.h', 'app/webrtc/objc/RTCICECandidate.mm', 'app/webrtc/objc/RTCICEServer+Internal.h', 'app/webrtc/objc/RTCICEServer.mm', 'app/webrtc/objc/RTCMediaConstraints+Internal.h', 'app/webrtc/objc/RTCMediaConstraints.mm', 'app/webrtc/objc/RTCMediaConstraintsNative.cc', 'app/webrtc/objc/RTCMediaConstraintsNative.h', 'app/webrtc/objc/RTCMediaSource+Internal.h', 'app/webrtc/objc/RTCMediaSource.mm', 'app/webrtc/objc/RTCMediaStream+Internal.h', 'app/webrtc/objc/RTCMediaStream.mm', 'app/webrtc/objc/RTCMediaStreamTrack+Internal.h', 'app/webrtc/objc/RTCMediaStreamTrack.mm', 'app/webrtc/objc/RTCPair.m', 'app/webrtc/objc/RTCPeerConnection+Internal.h', 'app/webrtc/objc/RTCPeerConnection.mm', 'app/webrtc/objc/RTCPeerConnectionFactory.mm', 'app/webrtc/objc/RTCPeerConnectionObserver.h', 'app/webrtc/objc/RTCPeerConnectionObserver.mm', 'app/webrtc/objc/RTCSessionDescription+Internal.h', 'app/webrtc/objc/RTCSessionDescription.mm', 'app/webrtc/objc/RTCStatsReport+Internal.h', 'app/webrtc/objc/RTCStatsReport.mm', 'app/webrtc/objc/RTCVideoCapturer+Internal.h', 'app/webrtc/objc/RTCVideoCapturer.mm', 'app/webrtc/objc/RTCVideoRenderer+Internal.h', 'app/webrtc/objc/RTCVideoRenderer.mm', 'app/webrtc/objc/RTCVideoSource+Internal.h', 'app/webrtc/objc/RTCVideoSource.mm', 'app/webrtc/objc/RTCVideoTrack+Internal.h', 'app/webrtc/objc/RTCVideoTrack.mm', 'app/webrtc/objc/public/RTCAudioSource.h', 'app/webrtc/objc/public/RTCAudioTrack.h', 'app/webrtc/objc/public/RTCDataChannel.h', 'app/webrtc/objc/public/RTCI420Frame.h', 'app/webrtc/objc/public/RTCICECandidate.h', 'app/webrtc/objc/public/RTCICEServer.h', 'app/webrtc/objc/public/RTCMediaConstraints.h', 'app/webrtc/objc/public/RTCMediaSource.h', 'app/webrtc/objc/public/RTCMediaStream.h', 'app/webrtc/objc/public/RTCMediaStreamTrack.h', 'app/webrtc/objc/public/RTCPair.h', 'app/webrtc/objc/public/RTCPeerConnection.h', 'app/webrtc/objc/public/RTCPeerConnectionDelegate.h', 'app/webrtc/objc/public/RTCPeerConnectionFactory.h', 'app/webrtc/objc/public/RTCSessionDescription.h', 'app/webrtc/objc/public/RTCSessionDescriptionDelegate.h', 'app/webrtc/objc/public/RTCStatsDelegate.h', 'app/webrtc/objc/public/RTCStatsReport.h', 'app/webrtc/objc/public/RTCTypes.h', 'app/webrtc/objc/public/RTCVideoCapturer.h', 'app/webrtc/objc/public/RTCVideoRenderer.h', 'app/webrtc/objc/public/RTCVideoRendererDelegate.h', 'app/webrtc/objc/public/RTCVideoSource.h', 'app/webrtc/objc/public/RTCVideoTrack.h', ], 'direct_dependent_settings': { 'include_dirs': [ '<(DEPTH)/talk/app/webrtc/objc/public', ], }, 'include_dirs': [ '<(DEPTH)/talk/app/webrtc', '<(DEPTH)/talk/app/webrtc/objc', '<(DEPTH)/talk/app/webrtc/objc/public', ], 'link_settings': { 'libraries': [ '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', '-lstdc++', ], }, 'xcode_settings': { 'CLANG_ENABLE_OBJC_ARC': 'YES', # common.gypi enables this for mac but we want this to be disabled # like it is for ios. 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO', }, 'conditions': [ ['OS=="mac"', { 'xcode_settings': { # Need to build against 10.7 framework for full ARC support # on OSX. 'MACOSX_DEPLOYMENT_TARGET' : '10.7', }, }], ], }, # target libjingle_peerconnection_objc ], }], ], 'targets': [ { 'target_name': 'libjingle', 'type': 'static_library', 'dependencies': [ '<(DEPTH)/third_party/expat/expat.gyp:expat', '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', ], 'export_dependent_settings': [ '<(DEPTH)/third_party/expat/expat.gyp:expat', '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', ], 'sources': [ 'base/asyncfile.cc', 'base/asyncfile.h', 'base/asynchttprequest.cc', 'base/asynchttprequest.h', 'base/asyncinvoker.cc', 'base/asyncinvoker.h', 'base/asyncpacketsocket.h', 'base/asyncresolverinterface.h', 'base/asyncsocket.cc', 'base/asyncsocket.h', 'base/asynctcpsocket.cc', 'base/asynctcpsocket.h', 'base/asyncudpsocket.cc', 'base/asyncudpsocket.h', 'base/atomicops.h', 'base/autodetectproxy.cc', 'base/autodetectproxy.h', 'base/bandwidthsmoother.cc', 'base/bandwidthsmoother.h', 'base/base64.cc', 'base/base64.h', 'base/basicdefs.h', 'base/basictypes.h', 'base/bind.h', 'base/buffer.h', 'base/bytebuffer.cc', 'base/bytebuffer.h', 'base/byteorder.h', 'base/callback.h', 'base/checks.cc', 'base/checks.h', 'base/common.cc', 'base/common.h', 'base/constructormagic.h', 'base/cpumonitor.cc', 'base/cpumonitor.h', 'base/crc32.cc', 'base/crc32.h', 'base/criticalsection.h', 'base/cryptstring.h', 'base/diskcache.cc', 'base/diskcache.h', 'base/event.cc', 'base/event.h', 'base/filelock.cc', 'base/filelock.h', 'base/fileutils.cc', 'base/fileutils.h', 'base/fileutils_mock.h', 'base/firewallsocketserver.cc', 'base/firewallsocketserver.h', 'base/flags.cc', 'base/flags.h', 'base/gunit_prod.h', 'base/helpers.cc', 'base/helpers.h', 'base/httpbase.cc', 'base/httpbase.h', 'base/httpclient.cc', 'base/httpclient.h', 'base/httpcommon-inl.h', 'base/httpcommon.cc', 'base/httpcommon.h', 'base/httprequest.cc', 'base/httprequest.h', 'base/httpserver.cc', 'base/httpserver.h', 'base/ifaddrs-android.cc', 'base/ifaddrs-android.h', 'base/ipaddress.cc', 'base/ipaddress.h', 'base/json.cc', 'base/json.h', 'base/linked_ptr.h', 'base/linuxfdwalk.h', 'base/logging.cc', 'base/logging.h', 'base/maccocoathreadhelper.h', 'base/maccocoathreadhelper.mm', 'base/mathutils.h', 'base/md5.cc', 'base/md5.h', 'base/md5digest.h', 'base/messagedigest.cc', 'base/messagedigest.h', 'base/messagehandler.cc', 'base/messagehandler.h', 'base/messagequeue.cc', 'base/messagequeue.h', 'base/multipart.cc', 'base/multipart.h', 'base/natserver.cc', 'base/natserver.h', 'base/natsocketfactory.cc', 'base/natsocketfactory.h', 'base/nattypes.cc', 'base/nattypes.h', 'base/nethelpers.cc', 'base/nethelpers.h', 'base/network.cc', 'base/network.h', 'base/nssidentity.cc', 'base/nssidentity.h', 'base/nssstreamadapter.cc', 'base/nssstreamadapter.h', 'base/nullsocketserver.h', 'base/optionsfile.cc', 'base/optionsfile.h', 'base/pathutils.cc', 'base/pathutils.h', 'base/physicalsocketserver.cc', 'base/physicalsocketserver.h', 'base/profiler.cc', 'base/profiler.h', 'base/proxydetect.cc', 'base/proxydetect.h', 'base/proxyinfo.cc', 'base/proxyinfo.h', 'base/proxyserver.cc', 'base/proxyserver.h', 'base/ratelimiter.cc', 'base/ratelimiter.h', 'base/ratetracker.cc', 'base/ratetracker.h', 'base/refcount.h', 'base/referencecountedsingletonfactory.h', 'base/rollingaccumulator.h', 'base/scoped_autorelease_pool.h', 'base/scoped_ptr.h', 'base/scoped_ref_ptr.h', 'base/scopedptrcollection.h', 'base/sec_buffer.h', 'base/sha1.cc', 'base/sha1.h', 'base/sha1digest.h', 'base/sharedexclusivelock.cc', 'base/sharedexclusivelock.h', 'base/signalthread.cc', 'base/signalthread.h', 'base/sigslot.h', 'base/sigslotrepeater.h', 'base/socket.h', 'base/socketadapters.cc', 'base/socketadapters.h', 'base/socketaddress.cc', 'base/socketaddress.h', 'base/socketaddresspair.cc', 'base/socketaddresspair.h', 'base/socketfactory.h', 'base/socketpool.cc', 'base/socketpool.h', 'base/socketserver.h', 'base/socketstream.cc', 'base/socketstream.h', 'base/ssladapter.cc', 'base/ssladapter.h', 'base/sslconfig.h', 'base/sslfingerprint.cc', 'base/sslfingerprint.h', 'base/sslidentity.cc', 'base/sslidentity.h', 'base/sslroots.h', 'base/sslsocketfactory.cc', 'base/sslsocketfactory.h', 'base/sslstreamadapter.cc', 'base/sslstreamadapter.h', 'base/sslstreamadapterhelper.cc', 'base/sslstreamadapterhelper.h', 'base/stream.cc', 'base/stream.h', 'base/stringdigest.h', 'base/stringencode.cc', 'base/stringencode.h', 'base/stringutils.cc', 'base/stringutils.h', 'base/systeminfo.cc', 'base/systeminfo.h', 'base/task.cc', 'base/task.h', 'base/taskparent.cc', 'base/taskparent.h', 'base/taskrunner.cc', 'base/taskrunner.h', 'base/testclient.cc', 'base/testclient.h', 'base/thread.cc', 'base/thread.h', 'base/timeutils.cc', 'base/timeutils.h', 'base/timing.cc', 'base/timing.h', 'base/transformadapter.cc', 'base/transformadapter.h', 'base/urlencode.cc', 'base/urlencode.h', 'base/versionparsing.cc', 'base/versionparsing.h', 'base/virtualsocketserver.cc', 'base/virtualsocketserver.h', 'base/window.h', 'base/windowpicker.h', 'base/windowpickerfactory.h', 'base/worker.cc', 'base/worker.h', 'xmllite/qname.cc', 'xmllite/qname.h', 'xmllite/xmlbuilder.cc', 'xmllite/xmlbuilder.h', 'xmllite/xmlconstants.cc', 'xmllite/xmlconstants.h', 'xmllite/xmlelement.cc', 'xmllite/xmlelement.h', 'xmllite/xmlnsstack.cc', 'xmllite/xmlnsstack.h', 'xmllite/xmlparser.cc', 'xmllite/xmlparser.h', 'xmllite/xmlprinter.cc', 'xmllite/xmlprinter.h', 'xmpp/asyncsocket.h', 'xmpp/chatroommodule.h', 'xmpp/chatroommoduleimpl.cc', 'xmpp/constants.cc', 'xmpp/constants.h', 'xmpp/discoitemsquerytask.cc', 'xmpp/discoitemsquerytask.h', 'xmpp/hangoutpubsubclient.cc', 'xmpp/hangoutpubsubclient.h', 'xmpp/iqtask.cc', 'xmpp/iqtask.h', 'xmpp/jid.cc', 'xmpp/jid.h', 'xmpp/module.h', 'xmpp/moduleimpl.cc', 'xmpp/moduleimpl.h', 'xmpp/mucroomconfigtask.cc', 'xmpp/mucroomconfigtask.h', 'xmpp/mucroomdiscoverytask.cc', 'xmpp/mucroomdiscoverytask.h', 'xmpp/mucroomlookuptask.cc', 'xmpp/mucroomlookuptask.h', 'xmpp/mucroomuniquehangoutidtask.cc', 'xmpp/mucroomuniquehangoutidtask.h', 'xmpp/pingtask.cc', 'xmpp/pingtask.h', 'xmpp/plainsaslhandler.h', 'xmpp/presenceouttask.cc', 'xmpp/presenceouttask.h', 'xmpp/presencereceivetask.cc', 'xmpp/presencereceivetask.h', 'xmpp/presencestatus.cc', 'xmpp/presencestatus.h', 'xmpp/prexmppauth.h', 'xmpp/pubsub_task.cc', 'xmpp/pubsub_task.h', 'xmpp/pubsubclient.cc', 'xmpp/pubsubclient.h', 'xmpp/pubsubstateclient.cc', 'xmpp/pubsubstateclient.h', 'xmpp/pubsubtasks.cc', 'xmpp/pubsubtasks.h', 'xmpp/receivetask.cc', 'xmpp/receivetask.h', 'xmpp/rostermodule.h', 'xmpp/rostermoduleimpl.cc', 'xmpp/rostermoduleimpl.h', 'xmpp/saslcookiemechanism.h', 'xmpp/saslhandler.h', 'xmpp/saslmechanism.cc', 'xmpp/saslmechanism.h', 'xmpp/saslplainmechanism.h', 'xmpp/xmppauth.cc', 'xmpp/xmppauth.h', 'xmpp/xmppclient.cc', 'xmpp/xmppclient.h', 'xmpp/xmppclientsettings.h', 'xmpp/xmppengine.h', 'xmpp/xmppengineimpl.cc', 'xmpp/xmppengineimpl.h', 'xmpp/xmppengineimpl_iq.cc', 'xmpp/xmpplogintask.cc', 'xmpp/xmpplogintask.h', 'xmpp/xmpppump.cc', 'xmpp/xmpppump.h', 'xmpp/xmppsocket.cc', 'xmpp/xmppsocket.h', 'xmpp/xmppstanzaparser.cc', 'xmpp/xmppstanzaparser.h', 'xmpp/xmpptask.cc', 'xmpp/xmpptask.h', 'xmpp/xmppthread.cc', 'xmpp/xmppthread.h', ], 'conditions': [ ['OS=="android"', { 'sources': [ 'base/ifaddrs-android.cc', ], 'link_settings': { 'libraries': [ '-llog', '-lGLESv2', ], }, }], ['OS=="linux" or OS=="android"', { 'sources': [ 'base/linux.cc', 'base/linux.h', ], }], ['OS=="linux"', { 'sources': [ 'base/dbus.cc', 'base/dbus.h', 'base/libdbusglibsymboltable.cc', 'base/libdbusglibsymboltable.h', 'base/linuxfdwalk.c', 'base/linuxwindowpicker.cc', 'base/linuxwindowpicker.h', ], 'link_settings': { 'libraries': [ '-lcrypto', '-ldl', '-lrt', '-lXext', '-lX11', '-lXcomposite', '-lXrender', '<!@(<(pkg-config) --libs-only-l nss | sed -e "s/-lssl3//")', ], }, 'cflags': [ '<!@(<(pkg-config) --cflags nss)', ], 'ldflags': [ '<!@(<(pkg-config) --libs-only-L --libs-only-other nss)', ], }], ['OS=="mac"', { 'sources': [ 'base/macasyncsocket.cc', 'base/macasyncsocket.h', 'base/maccocoasocketserver.h', 'base/maccocoasocketserver.mm', 'base/macconversion.cc', 'base/macconversion.h', 'base/macsocketserver.cc', 'base/macsocketserver.h', 'base/macutils.cc', 'base/macutils.h', 'base/macwindowpicker.cc', 'base/macwindowpicker.h', 'base/scoped_autorelease_pool.mm', ], 'link_settings': { 'libraries': [ '$(SDKROOT)/usr/lib/libcrypto.dylib', '$(SDKROOT)/usr/lib/libssl.dylib', ], }, 'all_dependent_settings': { 'link_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Cocoa', '-framework Foundation', '-framework IOKit', '-framework Security', '-framework SystemConfiguration', ], }, }, }, 'conditions': [ ['target_arch=="ia32"', { 'all_dependent_settings': { 'link_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Carbon', ], }, }, }, }], ], }], ['OS=="ios"', { 'sources': [ 'base/iosfilesystem.mm', 'base/scoped_autorelease_pool.mm', ], 'dependencies': [ '../net/third_party/nss/ssl.gyp:libssl', ], 'all_dependent_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Foundation', '-framework IOKit', '-framework Security', '-framework SystemConfiguration', '-framework UIKit', ], }, }, }], ['OS=="win"', { 'sources': [ 'base/diskcache_win32.cc', 'base/diskcache_win32.h', 'base/schanneladapter.cc', 'base/schanneladapter.h', 'base/win32.cc', 'base/win32.h', 'base/win32filesystem.cc', 'base/win32filesystem.h', 'base/win32regkey.cc', 'base/win32regkey.h', 'base/win32securityerrors.cc', 'base/win32socketinit.cc', 'base/win32socketinit.h', 'base/win32socketserver.cc', 'base/win32socketserver.h', 'base/win32window.cc', 'base/win32window.h', 'base/win32windowpicker.cc', 'base/win32windowpicker.h', 'base/winfirewall.cc', 'base/winfirewall.h', 'base/winping.cc', 'base/winping.h', ], 'link_settings': { 'libraries': [ '-lcrypt32.lib', '-liphlpapi.lib', '-lsecur32.lib', ], }, # Suppress warnings about WIN32_LEAN_AND_MEAN. 'msvs_disabled_warnings': [4005], }], ['os_posix==1', { 'sources': [ 'base/latebindingsymboltable.cc', 'base/latebindingsymboltable.h', 'base/posix.cc', 'base/posix.h', 'base/unixfilesystem.cc', 'base/unixfilesystem.h', ], 'conditions': [ ['OS!="ios"', { 'sources': [ 'base/openssl.h', 'base/openssladapter.cc', 'base/openssladapter.h', 'base/openssldigest.cc', 'base/openssldigest.h', 'base/opensslidentity.cc', 'base/opensslidentity.h', 'base/opensslstreamadapter.cc', 'base/opensslstreamadapter.h', ], }], ], }], ], # conditions }, # target libjingle { 'target_name': 'libjingle_sound', 'type': 'static_library', 'dependencies': [ 'libjingle', ], 'sources': [ 'sound/automaticallychosensoundsystem.h', 'sound/nullsoundsystem.cc', 'sound/nullsoundsystem.h', 'sound/nullsoundsystemfactory.cc', 'sound/nullsoundsystemfactory.h', 'sound/platformsoundsystem.cc', 'sound/platformsoundsystem.h', 'sound/platformsoundsystemfactory.cc', 'sound/platformsoundsystemfactory.h', 'sound/sounddevicelocator.h', 'sound/soundinputstreaminterface.h', 'sound/soundoutputstreaminterface.h', 'sound/soundsystemfactory.h', 'sound/soundsysteminterface.cc', 'sound/soundsysteminterface.h', 'sound/soundsystemproxy.cc', 'sound/soundsystemproxy.h', ], 'conditions': [ ['OS=="linux"', { 'sources': [ 'sound/alsasoundsystem.cc', 'sound/alsasoundsystem.h', 'sound/alsasymboltable.cc', 'sound/alsasymboltable.h', 'sound/linuxsoundsystem.cc', 'sound/linuxsoundsystem.h', 'sound/pulseaudiosoundsystem.cc', 'sound/pulseaudiosoundsystem.h', 'sound/pulseaudiosymboltable.cc', 'sound/pulseaudiosymboltable.h', ], }], ], }, # target libjingle_sound { 'target_name': 'libjingle_media', 'type': 'static_library', 'include_dirs': [ # TODO(jiayl): move this into the direct_dependent_settings of # usrsctp.gyp. '<(DEPTH)/third_party/usrsctp', ], 'dependencies': [ '<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv', '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib', '<(webrtc_root)/modules/modules.gyp:video_capture_module', '<(webrtc_root)/modules/modules.gyp:video_render_module', '<(webrtc_root)/webrtc.gyp:webrtc', '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine', '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', 'libjingle', 'libjingle_sound', ], 'direct_dependent_settings': { 'include_dirs': [ '<(DEPTH)/third_party/libyuv/include', ], }, 'sources': [ 'media/base/audioframe.h', 'media/base/audiorenderer.h', 'media/base/capturemanager.cc', 'media/base/capturemanager.h', 'media/base/capturerenderadapter.cc', 'media/base/capturerenderadapter.h', 'media/base/codec.cc', 'media/base/codec.h', 'media/base/constants.cc', 'media/base/constants.h', 'media/base/cpuid.cc', 'media/base/cpuid.h', 'media/base/cryptoparams.h', 'media/base/filemediaengine.cc', 'media/base/filemediaengine.h', 'media/base/hybriddataengine.h', 'media/base/hybridvideoengine.cc', 'media/base/hybridvideoengine.h', 'media/base/mediachannel.h', 'media/base/mediacommon.h', 'media/base/mediaengine.cc', 'media/base/mediaengine.h', 'media/base/mutedvideocapturer.cc', 'media/base/mutedvideocapturer.h', 'media/base/rtpdataengine.cc', 'media/base/rtpdataengine.h', 'media/base/rtpdump.cc', 'media/base/rtpdump.h', 'media/base/rtputils.cc', 'media/base/rtputils.h', 'media/base/screencastid.h', 'media/base/streamparams.cc', 'media/base/streamparams.h', 'media/base/videoadapter.cc', 'media/base/videoadapter.h', 'media/base/videocapturer.cc', 'media/base/videocapturer.h', 'media/base/videocommon.cc', 'media/base/videocommon.h', 'media/base/videoframe.cc', 'media/base/videoframe.h', 'media/base/videoprocessor.h', 'media/base/videorenderer.h', 'media/base/voiceprocessor.h', 'media/base/yuvframegenerator.cc', 'media/base/yuvframegenerator.h', 'media/devices/deviceinfo.h', 'media/devices/devicemanager.cc', 'media/devices/devicemanager.h', 'media/devices/dummydevicemanager.h', 'media/devices/filevideocapturer.cc', 'media/devices/filevideocapturer.h', 'media/devices/videorendererfactory.h', 'media/devices/yuvframescapturer.cc', 'media/devices/yuvframescapturer.h', 'media/other/linphonemediaengine.h', 'media/sctp/sctpdataengine.cc', 'media/sctp/sctpdataengine.h', 'media/webrtc/webrtccommon.h', 'media/webrtc/webrtcexport.h', 'media/webrtc/webrtcmediaengine.h', 'media/webrtc/webrtcpassthroughrender.cc', 'media/webrtc/webrtcpassthroughrender.h', 'media/webrtc/webrtctexturevideoframe.cc', 'media/webrtc/webrtctexturevideoframe.h', 'media/webrtc/webrtcvideocapturer.cc', 'media/webrtc/webrtcvideocapturer.h', 'media/webrtc/webrtcvideodecoderfactory.h', 'media/webrtc/webrtcvideoencoderfactory.h', 'media/webrtc/webrtcvideoengine.cc', 'media/webrtc/webrtcvideoengine.h', 'media/webrtc/webrtcvideoengine2.cc', 'media/webrtc/webrtcvideoengine2.h', 'media/webrtc/webrtcvideoframe.cc', 'media/webrtc/webrtcvideoframe.h', 'media/webrtc/webrtcvie.h', 'media/webrtc/webrtcvoe.h', 'media/webrtc/webrtcvoiceengine.cc', 'media/webrtc/webrtcvoiceengine.h', ], 'conditions': [ ['OS=="linux"', { 'sources': [ 'media/devices/gtkvideorenderer.cc', 'media/devices/gtkvideorenderer.h', 'media/devices/libudevsymboltable.cc', 'media/devices/libudevsymboltable.h', 'media/devices/linuxdeviceinfo.cc', 'media/devices/linuxdevicemanager.cc', 'media/devices/linuxdevicemanager.h', 'media/devices/v4llookup.cc', 'media/devices/v4llookup.h', ], 'include_dirs': [ 'third_party/libudev' ], 'cflags': [ '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)', ], 'libraries': [ '-lrt', '-lXext', '-lX11', ], }], ['OS=="win"', { 'sources': [ 'media/devices/gdivideorenderer.cc', 'media/devices/gdivideorenderer.h', 'media/devices/win32deviceinfo.cc', 'media/devices/win32devicemanager.cc', 'media/devices/win32devicemanager.h', ], 'msvs_settings': { 'VCLibrarianTool': { 'AdditionalDependencies': [ 'd3d9.lib', 'gdi32.lib', 'strmiids.lib', 'winmm.lib', ], }, }, }], ['OS=="mac"', { 'sources': [ 'media/devices/macdeviceinfo.cc', 'media/devices/macdevicemanager.cc', 'media/devices/macdevicemanager.h', 'media/devices/macdevicemanagermm.mm', ], 'conditions': [ ['target_arch=="ia32"', { 'sources': [ 'media/devices/carbonvideorenderer.cc', 'media/devices/carbonvideorenderer.h', ], 'link_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Carbon', ], }, }, }], ], 'xcode_settings': { 'WARNING_CFLAGS': [ # TODO(ronghuawu): Update macdevicemanager.cc to stop using # deprecated functions and remove this flag. '-Wno-deprecated-declarations', ], }, 'link_settings': { 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Cocoa', '-framework CoreAudio', '-framework CoreVideo', '-framework OpenGL', '-framework QTKit', ], }, }, }], ['OS=="ios"', { 'sources': [ 'media/devices/mobiledevicemanager.cc', ], 'include_dirs': [ # TODO(sjlee) Remove when vp8 is building for iOS. vp8 pulls in # libjpeg which pulls in libyuv which currently disabled. '../third_party/libyuv/include', ], 'dependencies!': [ '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib', ], 'sources!': [ 'media/sctp/sctpdataengine.cc', 'media/sctp/sctpdataengine.h', ], }], ['OS=="android"', { 'sources': [ 'media/devices/mobiledevicemanager.cc', ], }], ], }, # target libjingle_media { 'target_name': 'libjingle_p2p', 'type': 'static_library', 'dependencies': [ '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp', 'libjingle', 'libjingle_media', ], 'include_dirs': [ '<(DEPTH)/testing/gtest/include', ], 'direct_dependent_settings': { 'include_dirs': [ '<(DEPTH)/testing/gtest/include', ], }, 'sources': [ 'p2p/base/asyncstuntcpsocket.cc', 'p2p/base/asyncstuntcpsocket.h', 'p2p/base/basicpacketsocketfactory.cc', 'p2p/base/basicpacketsocketfactory.h', 'p2p/base/candidate.h', 'p2p/base/common.h', 'p2p/base/constants.cc', 'p2p/base/constants.h', 'p2p/base/dtlstransportchannel.cc', 'p2p/base/dtlstransportchannel.h', 'p2p/base/p2ptransport.cc', 'p2p/base/p2ptransport.h', 'p2p/base/p2ptransportchannel.cc', 'p2p/base/p2ptransportchannel.h', 'p2p/base/packetsocketfactory.h', 'p2p/base/parsing.cc', 'p2p/base/parsing.h', 'p2p/base/port.cc', 'p2p/base/port.h', 'p2p/base/portallocator.cc', 'p2p/base/portallocator.h', 'p2p/base/portallocatorsessionproxy.cc', 'p2p/base/portallocatorsessionproxy.h', 'p2p/base/portinterface.h', 'p2p/base/portproxy.cc', 'p2p/base/portproxy.h', 'p2p/base/pseudotcp.cc', 'p2p/base/pseudotcp.h', 'p2p/base/rawtransport.cc', 'p2p/base/rawtransport.h', 'p2p/base/rawtransportchannel.cc', 'p2p/base/rawtransportchannel.h', 'p2p/base/relayport.cc', 'p2p/base/relayport.h', 'p2p/base/relayserver.cc', 'p2p/base/relayserver.h', 'p2p/base/session.cc', 'p2p/base/session.h', 'p2p/base/sessionclient.h', 'p2p/base/sessiondescription.cc', 'p2p/base/sessiondescription.h', 'p2p/base/sessionid.h', 'p2p/base/sessionmanager.cc', 'p2p/base/sessionmanager.h', 'p2p/base/sessionmessages.cc', 'p2p/base/sessionmessages.h', 'p2p/base/stun.cc', 'p2p/base/stun.h', 'p2p/base/stunport.cc', 'p2p/base/stunport.h', 'p2p/base/stunrequest.cc', 'p2p/base/stunrequest.h', 'p2p/base/stunserver.cc', 'p2p/base/stunserver.h', 'p2p/base/tcpport.cc', 'p2p/base/tcpport.h', 'p2p/base/transport.cc', 'p2p/base/transport.h', 'p2p/base/transportchannel.cc', 'p2p/base/transportchannel.h', 'p2p/base/transportchannelimpl.h', 'p2p/base/transportchannelproxy.cc', 'p2p/base/transportchannelproxy.h', 'p2p/base/transportdescription.cc', 'p2p/base/transportdescription.h', 'p2p/base/transportdescriptionfactory.cc', 'p2p/base/transportdescriptionfactory.h', 'p2p/base/transportinfo.h', 'p2p/base/turnport.cc', 'p2p/base/turnport.h', 'p2p/base/turnserver.cc', 'p2p/base/turnserver.h', 'p2p/base/udpport.h', 'p2p/client/autoportallocator.h', 'p2p/client/basicportallocator.cc', 'p2p/client/basicportallocator.h', 'p2p/client/connectivitychecker.cc', 'p2p/client/connectivitychecker.h', 'p2p/client/httpportallocator.cc', 'p2p/client/httpportallocator.h', 'p2p/client/sessionmanagertask.h', 'p2p/client/sessionsendtask.h', 'p2p/client/socketmonitor.cc', 'p2p/client/socketmonitor.h', 'session/tunnel/pseudotcpchannel.cc', 'session/tunnel/pseudotcpchannel.h', 'session/tunnel/tunnelsessionclient.cc', 'session/tunnel/tunnelsessionclient.h', 'session/tunnel/securetunnelsessionclient.cc', 'session/tunnel/securetunnelsessionclient.h', 'session/media/audiomonitor.cc', 'session/media/audiomonitor.h', 'session/media/bundlefilter.cc', 'session/media/bundlefilter.h', 'session/media/call.cc', 'session/media/call.h', 'session/media/channel.cc', 'session/media/channel.h', 'session/media/channelmanager.cc', 'session/media/channelmanager.h', 'session/media/currentspeakermonitor.cc', 'session/media/currentspeakermonitor.h', 'session/media/mediamessages.cc', 'session/media/mediamessages.h', 'session/media/mediamonitor.cc', 'session/media/mediamonitor.h', 'session/media/mediarecorder.cc', 'session/media/mediarecorder.h', 'session/media/mediasession.cc', 'session/media/mediasession.h', 'session/media/mediasessionclient.cc', 'session/media/mediasessionclient.h', 'session/media/mediasink.h', 'session/media/rtcpmuxfilter.cc', 'session/media/rtcpmuxfilter.h', 'session/media/soundclip.cc', 'session/media/soundclip.h', 'session/media/srtpfilter.cc', 'session/media/srtpfilter.h', 'session/media/typingmonitor.cc', 'session/media/typingmonitor.h', 'session/media/voicechannel.h', ], }, # target libjingle_p2p { 'target_name': 'libjingle_peerconnection', 'type': 'static_library', 'dependencies': [ 'libjingle', 'libjingle_media', 'libjingle_p2p', ], 'sources': [ 'app/webrtc/audiotrack.cc', 'app/webrtc/audiotrack.h', 'app/webrtc/audiotrackrenderer.cc', 'app/webrtc/audiotrackrenderer.h', 'app/webrtc/datachannel.cc', 'app/webrtc/datachannel.h', 'app/webrtc/datachannelinterface.h', 'app/webrtc/dtmfsender.cc', 'app/webrtc/dtmfsender.h', 'app/webrtc/dtmfsenderinterface.h', 'app/webrtc/fakeportallocatorfactory.h', 'app/webrtc/jsep.h', 'app/webrtc/jsepicecandidate.cc', 'app/webrtc/jsepicecandidate.h', 'app/webrtc/jsepsessiondescription.cc', 'app/webrtc/jsepsessiondescription.h', 'app/webrtc/localaudiosource.cc', 'app/webrtc/localaudiosource.h', 'app/webrtc/mediaconstraintsinterface.cc', 'app/webrtc/mediaconstraintsinterface.h', 'app/webrtc/mediastream.cc', 'app/webrtc/mediastream.h', 'app/webrtc/mediastreamhandler.cc', 'app/webrtc/mediastreamhandler.h', 'app/webrtc/mediastreaminterface.h', 'app/webrtc/mediastreamprovider.h', 'app/webrtc/mediastreamproxy.h', 'app/webrtc/mediastreamsignaling.cc', 'app/webrtc/mediastreamsignaling.h', 'app/webrtc/mediastreamtrack.h', 'app/webrtc/mediastreamtrackproxy.h', 'app/webrtc/notifier.h', 'app/webrtc/peerconnection.cc', 'app/webrtc/peerconnection.h', 'app/webrtc/peerconnectionfactory.cc', 'app/webrtc/peerconnectionfactory.h', 'app/webrtc/peerconnectioninterface.h', 'app/webrtc/peerconnectionproxy.h', 'app/webrtc/portallocatorfactory.cc', 'app/webrtc/portallocatorfactory.h', 'app/webrtc/proxy.h', 'app/webrtc/remoteaudiosource.cc', 'app/webrtc/remoteaudiosource.h', 'app/webrtc/remotevideocapturer.cc', 'app/webrtc/remotevideocapturer.h', 'app/webrtc/sctputils.cc', 'app/webrtc/sctputils.h', 'app/webrtc/statscollector.cc', 'app/webrtc/statscollector.h', 'app/webrtc/statstypes.h', 'app/webrtc/streamcollection.h', 'app/webrtc/videosource.cc', 'app/webrtc/videosource.h', 'app/webrtc/videosourceinterface.h', 'app/webrtc/videosourceproxy.h', 'app/webrtc/videotrack.cc', 'app/webrtc/videotrack.h', 'app/webrtc/videotrackrenderers.cc', 'app/webrtc/videotrackrenderers.h', 'app/webrtc/webrtcsdp.cc', 'app/webrtc/webrtcsdp.h', 'app/webrtc/webrtcsession.cc', 'app/webrtc/webrtcsession.h', 'app/webrtc/webrtcsessiondescriptionfactory.cc', 'app/webrtc/webrtcsessiondescriptionfactory.h', ], }, # target libjingle_peerconnection ], }