blob: c55e74c29d3878bd50d2876e27620813399e467a [file] [log] [blame]
#
# 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=="ios" or (OS=="mac" and target_arch!="ia32")', {
# The >= 10.7 above is required for ARC.
'targets': [
{
'target_name': 'libjingle_peerconnection_objc',
'type': 'static_library',
'dependencies': [
'<(webrtc_root)/api/api.gyp:libjingle_peerconnection',
],
'sources': [
'objc/RTCAudioTrack+Internal.h',
'objc/RTCAudioTrack.mm',
'objc/RTCDataChannel+Internal.h',
'objc/RTCDataChannel.mm',
'objc/RTCEnumConverter.h',
'objc/RTCEnumConverter.mm',
'objc/RTCI420Frame+Internal.h',
'objc/RTCI420Frame.mm',
'objc/RTCICECandidate+Internal.h',
'objc/RTCICECandidate.mm',
'objc/RTCICEServer+Internal.h',
'objc/RTCICEServer.mm',
'objc/RTCLogging.mm',
'objc/RTCMediaConstraints+Internal.h',
'objc/RTCMediaConstraints.mm',
'objc/RTCMediaConstraintsNative.cc',
'objc/RTCMediaConstraintsNative.h',
'objc/RTCMediaSource+Internal.h',
'objc/RTCMediaSource.mm',
'objc/RTCMediaStream+Internal.h',
'objc/RTCMediaStream.mm',
'objc/RTCMediaStreamTrack+Internal.h',
'objc/RTCMediaStreamTrack.mm',
'objc/RTCOpenGLVideoRenderer.mm',
'objc/RTCPair.m',
'objc/RTCPeerConnection+Internal.h',
'objc/RTCPeerConnection.mm',
'objc/RTCPeerConnectionFactory.mm',
'objc/RTCPeerConnectionInterface+Internal.h',
'objc/RTCPeerConnectionInterface.mm',
'objc/RTCPeerConnectionObserver.h',
'objc/RTCPeerConnectionObserver.mm',
'objc/RTCSessionDescription+Internal.h',
'objc/RTCSessionDescription.mm',
'objc/RTCStatsReport+Internal.h',
'objc/RTCStatsReport.mm',
'objc/RTCVideoCapturer+Internal.h',
'objc/RTCVideoCapturer.mm',
'objc/RTCVideoRendererAdapter.h',
'objc/RTCVideoRendererAdapter.mm',
'objc/RTCVideoSource+Internal.h',
'objc/RTCVideoSource.mm',
'objc/RTCVideoTrack+Internal.h',
'objc/RTCVideoTrack.mm',
'objc/public/RTCAudioSource.h',
'objc/public/RTCAudioTrack.h',
'objc/public/RTCDataChannel.h',
'objc/public/RTCFileLogger.h',
'objc/public/RTCI420Frame.h',
'objc/public/RTCICECandidate.h',
'objc/public/RTCICEServer.h',
'objc/public/RTCLogging.h',
'objc/public/RTCMediaConstraints.h',
'objc/public/RTCMediaSource.h',
'objc/public/RTCMediaStream.h',
'objc/public/RTCMediaStreamTrack.h',
'objc/public/RTCOpenGLVideoRenderer.h',
'objc/public/RTCPair.h',
'objc/public/RTCPeerConnection.h',
'objc/public/RTCPeerConnectionDelegate.h',
'objc/public/RTCPeerConnectionFactory.h',
'objc/public/RTCPeerConnectionInterface.h',
'objc/public/RTCSessionDescription.h',
'objc/public/RTCSessionDescriptionDelegate.h',
'objc/public/RTCStatsDelegate.h',
'objc/public/RTCStatsReport.h',
'objc/public/RTCTypes.h',
'objc/public/RTCVideoCapturer.h',
'objc/public/RTCVideoRenderer.h',
'objc/public/RTCVideoSource.h',
'objc/public/RTCVideoTrack.h',
],
'direct_dependent_settings': {
'include_dirs': [
'<(DEPTH)/talk/app/webrtc/objc/public',
],
},
'include_dirs': [
'<(webrtc_root)/webrtc/api',
'<(DEPTH)/talk/app/webrtc/objc',
'<(DEPTH)/talk/app/webrtc/objc/public',
],
'link_settings': {
'libraries': [
'-lstdc++',
],
},
'all_dependent_settings': {
'xcode_settings': {
'CLANG_ENABLE_OBJC_ARC': 'YES',
},
},
'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',
# Disabled due to failing when compiled with -Wall, see
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5397
'WARNING_CFLAGS': ['-Wno-unused-property-ivar'],
},
'conditions': [
['OS=="ios"', {
'sources': [
'objc/avfoundationvideocapturer.h',
'objc/avfoundationvideocapturer.mm',
'objc/RTCAVFoundationVideoSource+Internal.h',
'objc/RTCAVFoundationVideoSource.mm',
'objc/RTCEAGLVideoView.m',
'objc/public/RTCEAGLVideoView.h',
'objc/public/RTCAVFoundationVideoSource.h',
],
'dependencies': [
'<(webrtc_root)/sdk/sdk.gyp:rtc_sdk_common_objc',
],
'link_settings': {
'xcode_settings': {
'OTHER_LDFLAGS': [
'-framework CoreGraphics',
'-framework GLKit',
'-framework OpenGLES',
'-framework QuartzCore',
],
},
},
}],
['OS=="mac"', {
'sources': [
'objc/RTCNSGLVideoView.m',
'objc/public/RTCNSGLVideoView.h',
],
'xcode_settings': {
# Need to build against 10.7 framework for full ARC support
# on OSX.
'MACOSX_DEPLOYMENT_TARGET' : '10.7',
# RTCVideoTrack.mm uses code with partial availability.
# https://code.google.com/p/webrtc/issues/detail?id=4695
'WARNING_CFLAGS!': ['-Wpartial-availability'],
},
'link_settings': {
'xcode_settings': {
'OTHER_LDFLAGS': [
'-framework Cocoa',
'-framework OpenGL',
],
},
},
}],
],
}, # target libjingle_peerconnection_objc
],
}],
],
}