blob: 8ae81fa0846e3ed8d7a63ca69fdd0f21e274d84a [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001#
2# libjingle
jlmiller@webrtc.org5f93d0a2015-01-20 21:36:13 +00003# Copyright 2012 Google Inc.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00004#
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.
henrike@webrtc.org28e20752013-07-10 00:45:36 +000026
27{
28 'includes': ['build/common.gypi'],
henrike@webrtc.org28e20752013-07-10 00:45:36 +000029 'conditions': [
30 ['os_posix == 1 and OS != "mac" and OS != "ios"', {
31 'conditions': [
32 ['sysroot!=""', {
33 'variables': {
34 'pkg-config': '../../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
35 },
36 }, {
37 'variables': {
38 'pkg-config': 'pkg-config'
39 },
40 }],
41 ],
42 }],
henrike@webrtc.org28e20752013-07-10 00:45:36 +000043 ['OS=="linux" or OS=="android"', {
44 'targets': [
45 {
46 'target_name': 'libjingle_peerconnection_so',
perkj@webrtc.org128faba2014-12-11 12:25:57 +000047 'type': 'shared_library',
henrike@webrtc.org28e20752013-07-10 00:45:36 +000048 'dependencies': [
49 'libjingle_peerconnection',
henrike@webrtc.org28e20752013-07-10 00:45:36 +000050 ],
51 'sources': [
perkj@webrtc.org96e4db92015-02-13 12:46:51 +000052 'app/webrtc/java/jni/classreferenceholder.cc',
53 'app/webrtc/java/jni/classreferenceholder.h',
54 'app/webrtc/java/jni/jni_helpers.cc',
55 'app/webrtc/java/jni/jni_helpers.h',
glaznev@webrtc.org18c92472015-02-18 18:42:55 +000056 'app/webrtc/java/jni/native_handle_impl.h',
perkj@webrtc.org96e4db92015-02-13 12:46:51 +000057 'app/webrtc/java/jni/peerconnection_jni.cc',
henrike@webrtc.org28e20752013-07-10 00:45:36 +000058 ],
fischman@webrtc.org540acde2014-02-13 03:56:14 +000059 'include_dirs': [
Henrik Kjellandere6cefb62015-04-27 14:39:04 +020060 '<(libyuv_dir)/include',
fischman@webrtc.org540acde2014-02-13 03:56:14 +000061 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +000062 'conditions': [
Henrik Kjellandere6cefb62015-04-27 14:39:04 +020063 ['build_icu==1', {
64 'dependencies': [
65 '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
66 ],
67 }],
henrike@webrtc.org28e20752013-07-10 00:45:36 +000068 ['OS=="linux"', {
69 'defines': [
70 'HAVE_GTK',
71 ],
72 'include_dirs': [
73 '<(java_home)/include',
74 '<(java_home)/include/linux',
75 ],
Henrik Kjellandere6cefb62015-04-27 14:39:04 +020076 'conditions': [
77 ['use_gtk==1', {
78 'link_settings': {
79 'libraries': [
80 '<!@(pkg-config --libs-only-l gobject-2.0 gthread-2.0'
81 ' gtk+-2.0)',
82 ],
83 },
84 }],
85 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +000086 }],
perkj@webrtc.org96e4db92015-02-13 12:46:51 +000087 ['OS=="android"', {
88 'sources': [
89 'app/webrtc/java/jni/androidvideocapturer_jni.cc',
90 'app/webrtc/java/jni/androidvideocapturer_jni.h',
kjellander@webrtc.org72273912015-02-23 19:08:31 +000091 ],
92 'variables': {
93 # This library uses native JNI exports; tell GYP so that the
94 # required symbols will be kept.
95 'use_native_jni_exports': 1,
96 },
perkj@webrtc.org96e4db92015-02-13 12:46:51 +000097 }],
glaznev@webrtc.org18c92472015-02-18 18:42:55 +000098 ['OS=="android" and build_with_chromium==0', {
99 'sources': [
100 'app/webrtc/java/jni/androidmediacodeccommon.h',
101 'app/webrtc/java/jni/androidmediadecoder_jni.cc',
102 'app/webrtc/java/jni/androidmediadecoder_jni.h',
103 'app/webrtc/java/jni/androidmediaencoder_jni.cc',
104 'app/webrtc/java/jni/androidmediaencoder_jni.h',
105 ]
106 }],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000107 ],
108 },
109 {
110 'target_name': 'libjingle_peerconnection_jar',
111 'type': 'none',
112 'actions': [
113 {
114 'variables': {
115 'java_src_dir': 'app/webrtc/java/src',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000116 'webrtc_modules_dir': '<(webrtc_root)/modules',
fischman@webrtc.org000dde92013-12-20 22:49:35 +0000117 'build_jar_log': '<(INTERMEDIATE_DIR)/build_jar.log',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000118 'peerconnection_java_files': [
119 'app/webrtc/java/src/org/webrtc/AudioSource.java',
120 'app/webrtc/java/src/org/webrtc/AudioTrack.java',
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000121 'app/webrtc/java/src/org/webrtc/DataChannel.java',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000122 'app/webrtc/java/src/org/webrtc/IceCandidate.java',
fischman@webrtc.orgc883fdc2013-08-06 19:00:53 +0000123 'app/webrtc/java/src/org/webrtc/Logging.java',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000124 'app/webrtc/java/src/org/webrtc/MediaConstraints.java',
125 'app/webrtc/java/src/org/webrtc/MediaSource.java',
126 'app/webrtc/java/src/org/webrtc/MediaStream.java',
127 'app/webrtc/java/src/org/webrtc/MediaStreamTrack.java',
128 'app/webrtc/java/src/org/webrtc/PeerConnectionFactory.java',
129 'app/webrtc/java/src/org/webrtc/PeerConnection.java',
130 'app/webrtc/java/src/org/webrtc/SdpObserver.java',
131 'app/webrtc/java/src/org/webrtc/StatsObserver.java',
132 'app/webrtc/java/src/org/webrtc/StatsReport.java',
133 'app/webrtc/java/src/org/webrtc/SessionDescription.java',
134 'app/webrtc/java/src/org/webrtc/VideoCapturer.java',
135 'app/webrtc/java/src/org/webrtc/VideoRenderer.java',
136 'app/webrtc/java/src/org/webrtc/VideoSource.java',
137 'app/webrtc/java/src/org/webrtc/VideoTrack.java',
138 ],
139 # TODO(fischman): extract this into a webrtc gyp var that can be
140 # included here, or better yet, build a proper .jar in webrtc
141 # and include it here.
142 'android_java_files': [
Magnus Jedvert80cf97c2015-06-11 10:08:59 +0200143 'app/webrtc/java/android/org/webrtc/EglBase.java',
magjed59a677a2015-06-24 03:59:37 -0700144 'app/webrtc/java/android/org/webrtc/GlRectDrawer.java',
Magnus Jedvert80cf97c2015-06-11 10:08:59 +0200145 'app/webrtc/java/android/org/webrtc/GlShader.java',
146 'app/webrtc/java/android/org/webrtc/GlUtil.java',
Magnus Jedvertff020c02015-08-20 14:03:07 +0200147 'app/webrtc/java/android/org/webrtc/RendererCommon.java',
glaznev@webrtc.orgc3288c12014-06-06 21:57:46 +0000148 'app/webrtc/java/android/org/webrtc/VideoRendererGui.java',
fischman@webrtc.org540acde2014-02-13 03:56:14 +0000149 'app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java',
glaznev@webrtc.orgefe4b9a2014-07-22 17:44:53 +0000150 'app/webrtc/java/src/org/webrtc/MediaCodecVideoDecoder.java',
perkj@webrtc.org83bc7212015-02-11 11:26:56 +0000151 'app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000152 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViEAndroidGLES20.java',
153 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViERenderer.java',
154 '<(webrtc_modules_dir)/video_render/android/java/src/org/webrtc/videoengine/ViESurfaceRenderer.java',
henrikab2619892015-05-18 16:49:16 +0200155 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/BuildInfo.java',
Alex Glaznev0194d322015-03-30 11:20:27 -0700156 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java',
henrika@webrtc.org962c6242015-02-23 11:54:05 +0000157 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java',
henrike@webrtc.org9ee75e92013-12-11 21:42:44 +0000158 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java',
159 '<(webrtc_modules_dir)/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000160 ],
161 },
162 'action_name': 'create_jar',
163 'inputs': [
164 'build/build_jar.sh',
165 '<@(java_files)',
166 ],
167 'outputs': [
168 '<(PRODUCT_DIR)/libjingle_peerconnection.jar',
169 ],
170 'conditions': [
171 ['OS=="android"', {
172 'variables': {
173 'java_files': ['<@(peerconnection_java_files)', '<@(android_java_files)'],
174 'build_classpath': '<(java_src_dir):<(DEPTH)/third_party/android_tools/sdk/platforms/android-<(android_sdk_version)/android.jar',
175 },
176 }, {
177 'variables': {
178 'java_files': ['<@(peerconnection_java_files)'],
179 'build_classpath': '<(java_src_dir)',
180 },
181 }],
182 ],
183 'action': [
fischman@webrtc.org000dde92013-12-20 22:49:35 +0000184 'bash', '-ec',
185 'mkdir -p <(INTERMEDIATE_DIR) && '
186 '{ build/build_jar.sh <(java_home) <@(_outputs) '
187 ' <(INTERMEDIATE_DIR)/build_jar.tmp '
188 ' <(build_classpath) <@(java_files) '
189 ' > <(build_jar_log) 2>&1 || '
190 ' { cat <(build_jar_log) ; exit 1; } }'
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000191 ],
192 },
193 ],
194 'dependencies': [
195 'libjingle_peerconnection_so',
196 ],
197 },
198 ],
199 }],
perkj@webrtc.org128faba2014-12-11 12:25:57 +0000200 ['OS=="android"', {
201 'targets': [
202 {
203 # |libjingle_peerconnection_java| builds a jar file with name
204 # libjingle_peerconnection_java.jar using Chromes build system.
205 # It includes all Java files needed to setup a PeeerConnection call
206 # from Android.
207 # TODO(perkj): Consider replacing the use of
208 # libjingle_peerconnection_jar with this target everywhere.
209 'target_name': 'libjingle_peerconnection_java',
210 'type': 'none',
211 'dependencies': [
212 'libjingle_peerconnection_so',
213 ],
214 'variables': {
215 'java_in_dir': 'app/webrtc/java',
216 'webrtc_modules_dir': '<(webrtc_root)/modules',
217 'additional_src_dirs' : [
218 'app/webrtc/java/android',
219 '<(webrtc_modules_dir)/audio_device/android/java/src',
220 '<(webrtc_modules_dir)/video_capture/android/java/src',
221 '<(webrtc_modules_dir)/video_render/android/java/src',
222 ],
223 },
224 'includes': ['../build/java.gypi'],
225 }, # libjingle_peerconnection_java
226 ]
227 }],
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000228 ['OS=="ios" or (OS=="mac" and target_arch!="ia32" and mac_sdk>="10.7")', {
229 # The >= 10.7 above is required for ARC.
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000230 'targets': [
231 {
232 'target_name': 'libjingle_peerconnection_objc',
233 'type': 'static_library',
234 'dependencies': [
235 'libjingle_peerconnection',
236 ],
237 'sources': [
238 'app/webrtc/objc/RTCAudioTrack+Internal.h',
239 'app/webrtc/objc/RTCAudioTrack.mm',
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000240 'app/webrtc/objc/RTCDataChannel+Internal.h',
241 'app/webrtc/objc/RTCDataChannel.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000242 'app/webrtc/objc/RTCEnumConverter.h',
243 'app/webrtc/objc/RTCEnumConverter.mm',
Zeke Chin2d3b7e22015-07-14 12:55:44 -0700244 'app/webrtc/objc/RTCFileLogger.mm',
tkchin@webrtc.org1732a592014-05-19 23:26:01 +0000245 'app/webrtc/objc/RTCI420Frame+Internal.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000246 'app/webrtc/objc/RTCI420Frame.mm',
fischman@webrtc.org1bc19542013-08-01 18:29:45 +0000247 'app/webrtc/objc/RTCICECandidate+Internal.h',
248 'app/webrtc/objc/RTCICECandidate.mm',
249 'app/webrtc/objc/RTCICEServer+Internal.h',
250 'app/webrtc/objc/RTCICEServer.mm',
tkchinc3f46a92015-07-23 12:50:55 -0700251 'app/webrtc/objc/RTCLogging.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000252 'app/webrtc/objc/RTCMediaConstraints+Internal.h',
253 'app/webrtc/objc/RTCMediaConstraints.mm',
254 'app/webrtc/objc/RTCMediaConstraintsNative.cc',
255 'app/webrtc/objc/RTCMediaConstraintsNative.h',
256 'app/webrtc/objc/RTCMediaSource+Internal.h',
257 'app/webrtc/objc/RTCMediaSource.mm',
258 'app/webrtc/objc/RTCMediaStream+Internal.h',
259 'app/webrtc/objc/RTCMediaStream.mm',
260 'app/webrtc/objc/RTCMediaStreamTrack+Internal.h',
261 'app/webrtc/objc/RTCMediaStreamTrack.mm',
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +0000262 'app/webrtc/objc/RTCOpenGLVideoRenderer.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000263 'app/webrtc/objc/RTCPair.m',
264 'app/webrtc/objc/RTCPeerConnection+Internal.h',
265 'app/webrtc/objc/RTCPeerConnection.mm',
266 'app/webrtc/objc/RTCPeerConnectionFactory.mm',
Zeke Chinbc7dd7e2015-05-29 14:59:14 -0700267 'app/webrtc/objc/RTCPeerConnectionInterface+Internal.h',
268 'app/webrtc/objc/RTCPeerConnectionInterface.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000269 'app/webrtc/objc/RTCPeerConnectionObserver.h',
270 'app/webrtc/objc/RTCPeerConnectionObserver.mm',
271 'app/webrtc/objc/RTCSessionDescription+Internal.h',
272 'app/webrtc/objc/RTCSessionDescription.mm',
tkchin@webrtc.org19b1be12014-04-22 21:05:38 +0000273 'app/webrtc/objc/RTCStatsReport+Internal.h',
274 'app/webrtc/objc/RTCStatsReport.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000275 'app/webrtc/objc/RTCVideoCapturer+Internal.h',
276 'app/webrtc/objc/RTCVideoCapturer.mm',
tkchin@webrtc.org81257442014-11-04 23:06:15 +0000277 'app/webrtc/objc/RTCVideoRendererAdapter.h',
278 'app/webrtc/objc/RTCVideoRendererAdapter.mm',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000279 'app/webrtc/objc/RTCVideoSource+Internal.h',
280 'app/webrtc/objc/RTCVideoSource.mm',
281 'app/webrtc/objc/RTCVideoTrack+Internal.h',
282 'app/webrtc/objc/RTCVideoTrack.mm',
283 'app/webrtc/objc/public/RTCAudioSource.h',
284 'app/webrtc/objc/public/RTCAudioTrack.h',
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000285 'app/webrtc/objc/public/RTCDataChannel.h',
Zeke Chin2d3b7e22015-07-14 12:55:44 -0700286 'app/webrtc/objc/public/RTCFileLogger.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000287 'app/webrtc/objc/public/RTCI420Frame.h',
fischman@webrtc.org1bc19542013-08-01 18:29:45 +0000288 'app/webrtc/objc/public/RTCICECandidate.h',
289 'app/webrtc/objc/public/RTCICEServer.h',
tkchinc3f46a92015-07-23 12:50:55 -0700290 'app/webrtc/objc/public/RTCLogging.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000291 'app/webrtc/objc/public/RTCMediaConstraints.h',
292 'app/webrtc/objc/public/RTCMediaSource.h',
293 'app/webrtc/objc/public/RTCMediaStream.h',
294 'app/webrtc/objc/public/RTCMediaStreamTrack.h',
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +0000295 'app/webrtc/objc/public/RTCOpenGLVideoRenderer.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000296 'app/webrtc/objc/public/RTCPair.h',
297 'app/webrtc/objc/public/RTCPeerConnection.h',
298 'app/webrtc/objc/public/RTCPeerConnectionDelegate.h',
299 'app/webrtc/objc/public/RTCPeerConnectionFactory.h',
Zeke Chinbc7dd7e2015-05-29 14:59:14 -0700300 'app/webrtc/objc/public/RTCPeerConnectionInterface.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000301 'app/webrtc/objc/public/RTCSessionDescription.h',
tkchin@webrtc.orgec3d8ec2014-04-21 18:47:24 +0000302 'app/webrtc/objc/public/RTCSessionDescriptionDelegate.h',
tkchin@webrtc.org19b1be12014-04-22 21:05:38 +0000303 'app/webrtc/objc/public/RTCStatsDelegate.h',
304 'app/webrtc/objc/public/RTCStatsReport.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000305 'app/webrtc/objc/public/RTCTypes.h',
306 'app/webrtc/objc/public/RTCVideoCapturer.h',
307 'app/webrtc/objc/public/RTCVideoRenderer.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000308 'app/webrtc/objc/public/RTCVideoSource.h',
309 'app/webrtc/objc/public/RTCVideoTrack.h',
310 ],
fischman@webrtc.org1bc19542013-08-01 18:29:45 +0000311 'direct_dependent_settings': {
312 'include_dirs': [
313 '<(DEPTH)/talk/app/webrtc/objc/public',
314 ],
315 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000316 'include_dirs': [
317 '<(DEPTH)/talk/app/webrtc',
318 '<(DEPTH)/talk/app/webrtc/objc',
319 '<(DEPTH)/talk/app/webrtc/objc/public',
320 ],
321 'link_settings': {
322 'libraries': [
fischman@webrtc.org76fe9302013-09-19 21:11:08 +0000323 '-lstdc++',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000324 ],
325 },
tkchin@webrtc.org3a63a3c2015-01-06 07:21:34 +0000326 'all_dependent_settings': {
327 'xcode_settings': {
328 'CLANG_ENABLE_OBJC_ARC': 'YES',
329 },
330 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000331 'xcode_settings': {
332 'CLANG_ENABLE_OBJC_ARC': 'YES',
tkchin@webrtc.org19b1be12014-04-22 21:05:38 +0000333 # common.gypi enables this for mac but we want this to be disabled
334 # like it is for ios.
335 'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000336 },
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000337 'conditions': [
tkchin@webrtc.org1732a592014-05-19 23:26:01 +0000338 ['OS=="ios"', {
339 'sources': [
Zeke Chin57cc74e2015-05-05 07:52:31 -0700340 'app/webrtc/objc/avfoundationvideocapturer.h',
341 'app/webrtc/objc/avfoundationvideocapturer.mm',
342 'app/webrtc/objc/RTCAVFoundationVideoSource+Internal.h',
343 'app/webrtc/objc/RTCAVFoundationVideoSource.mm',
tkchin@webrtc.org1732a592014-05-19 23:26:01 +0000344 'app/webrtc/objc/RTCEAGLVideoView.m',
tkchin@webrtc.org1732a592014-05-19 23:26:01 +0000345 'app/webrtc/objc/public/RTCEAGLVideoView.h',
Zeke Chin57cc74e2015-05-05 07:52:31 -0700346 'app/webrtc/objc/public/RTCAVFoundationVideoSource.h',
tkchin@webrtc.org1732a592014-05-19 23:26:01 +0000347 ],
348 'link_settings': {
349 'xcode_settings': {
350 'OTHER_LDFLAGS': [
351 '-framework CoreGraphics',
352 '-framework GLKit',
353 ],
354 },
355 },
356 }],
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000357 ['OS=="mac"', {
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +0000358 'sources': [
359 'app/webrtc/objc/RTCNSGLVideoView.m',
360 'app/webrtc/objc/public/RTCNSGLVideoView.h',
361 ],
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000362 'xcode_settings': {
363 # Need to build against 10.7 framework for full ARC support
364 # on OSX.
365 'MACOSX_DEPLOYMENT_TARGET' : '10.7',
Henrik Kjellandera8202aa2015-05-29 20:13:24 +0200366 # RTCVideoTrack.mm uses code with partial availability.
367 # https://code.google.com/p/webrtc/issues/detail?id=4695
368 'WARNING_CFLAGS!': ['-Wpartial-availability'],
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000369 },
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +0000370 'link_settings': {
371 'xcode_settings': {
372 'OTHER_LDFLAGS': [
373 '-framework Cocoa',
374 ],
375 },
376 },
tkchin@webrtc.orgff273322014-04-30 18:32:33 +0000377 }],
378 ],
fischman@webrtc.orge3de6b12013-08-26 19:31:21 +0000379 }, # target libjingle_peerconnection_objc
380 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000381 }],
382 ],
383
384 'targets': [
385 {
386 'target_name': 'libjingle',
henrike@webrtc.org269fb4b2014-10-28 22:20:11 +0000387 'type': 'none',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000388 'dependencies': [
henrike@webrtc.orgb2efb672014-09-10 17:28:19 +0000389 '<(webrtc_root)/base/base.gyp:rtc_base',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000390 ],
Henrik Kjellandere6cefb62015-04-27 14:39:04 +0200391 'conditions': [
392 ['build_json==1', {
393 'dependencies': [
394 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
395 ],
396 'export_dependent_settings': [
397 '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
398 ],
399 }],
400 ['build_expat==1', {
401 'dependencies': [
402 '<(DEPTH)/third_party/expat/expat.gyp:expat',
403 ],
404 'export_dependent_settings': [
405 '<(DEPTH)/third_party/expat/expat.gyp:expat',
406 ],
407 }],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000408 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000409 }, # target libjingle
410 {
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000411 'target_name': 'libjingle_media',
412 'type': 'static_library',
413 'dependencies': [
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000414 '<(webrtc_root)/common.gyp:webrtc_common',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000415 '<(webrtc_root)/modules/modules.gyp:video_render_module',
pbos@webrtc.orgb5a22b12014-05-13 11:07:01 +0000416 '<(webrtc_root)/webrtc.gyp:webrtc',
henrike@webrtc.org9de257d2013-07-17 14:42:53 +0000417 '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine',
buildbot@webrtc.org573a1ee2014-08-27 17:21:19 +0000418 '<(webrtc_root)/sound/sound.gyp:rtc_sound',
andresp@webrtc.org86e1e482015-01-14 09:30:52 +0000419 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
420 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers_default',
buildbot@webrtc.orgfa4535b2014-09-03 16:49:04 +0000421 '<(webrtc_root)/libjingle/xmllite/xmllite.gyp:rtc_xmllite',
henrike@webrtc.org269fb4b2014-10-28 22:20:11 +0000422 '<(webrtc_root)/libjingle/xmpp/xmpp.gyp:rtc_xmpp',
423 '<(webrtc_root)/p2p/p2p.gyp:rtc_p2p',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000424 'libjingle',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000425 ],
426 'direct_dependent_settings': {
427 'include_dirs': [
Henrik Kjellandere6cefb62015-04-27 14:39:04 +0200428 '<(libyuv_dir)/include',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000429 ],
430 },
431 'sources': [
432 'media/base/audioframe.h',
433 'media/base/audiorenderer.h',
434 'media/base/capturemanager.cc',
435 'media/base/capturemanager.h',
436 'media/base/capturerenderadapter.cc',
437 'media/base/capturerenderadapter.h',
438 'media/base/codec.cc',
439 'media/base/codec.h',
440 'media/base/constants.cc',
441 'media/base/constants.h',
442 'media/base/cpuid.cc',
443 'media/base/cpuid.h',
444 'media/base/cryptoparams.h',
buildbot@webrtc.org65b98d12014-08-07 22:09:08 +0000445 'media/base/device.h',
446 'media/base/fakescreencapturerfactory.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000447 'media/base/hybriddataengine.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000448 'media/base/mediachannel.h',
449 'media/base/mediacommon.h',
450 'media/base/mediaengine.cc',
451 'media/base/mediaengine.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000452 'media/base/rtpdataengine.cc',
453 'media/base/rtpdataengine.h',
454 'media/base/rtpdump.cc',
455 'media/base/rtpdump.h',
456 'media/base/rtputils.cc',
457 'media/base/rtputils.h',
458 'media/base/screencastid.h',
459 'media/base/streamparams.cc',
460 'media/base/streamparams.h',
461 'media/base/videoadapter.cc',
462 'media/base/videoadapter.h',
463 'media/base/videocapturer.cc',
464 'media/base/videocapturer.h',
buildbot@webrtc.org65b98d12014-08-07 22:09:08 +0000465 'media/base/videocapturerfactory.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000466 'media/base/videocommon.cc',
467 'media/base/videocommon.h',
468 'media/base/videoframe.cc',
469 'media/base/videoframe.h',
magjed@webrtc.orgf58b4552014-11-19 18:09:14 +0000470 'media/base/videoframefactory.cc',
buildbot@webrtc.org4f0d4012014-08-07 04:47:36 +0000471 'media/base/videoframefactory.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000472 'media/base/videoprocessor.h',
473 'media/base/videorenderer.h',
474 'media/base/voiceprocessor.h',
mallinath@webrtc.orgecd622e2014-02-03 17:17:05 +0000475 'media/base/yuvframegenerator.cc',
476 'media/base/yuvframegenerator.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000477 'media/devices/deviceinfo.h',
478 'media/devices/devicemanager.cc',
479 'media/devices/devicemanager.h',
480 'media/devices/dummydevicemanager.h',
481 'media/devices/filevideocapturer.cc',
482 'media/devices/filevideocapturer.h',
483 'media/devices/videorendererfactory.h',
mallinath@webrtc.orgecd622e2014-02-03 17:17:05 +0000484 'media/devices/yuvframescapturer.cc',
485 'media/devices/yuvframescapturer.h',
jiayl@webrtc.orga576faf2014-01-29 17:45:53 +0000486 'media/sctp/sctpdataengine.cc',
487 'media/sctp/sctpdataengine.h',
buildbot@webrtc.orga8530772014-12-10 09:01:18 +0000488 'media/webrtc/simulcast.cc',
489 'media/webrtc/simulcast.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000490 'media/webrtc/webrtccommon.h',
pbos@webrtc.org289a35c2014-06-03 14:51:34 +0000491 'media/webrtc/webrtcmediaengine.cc',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000492 'media/webrtc/webrtcmediaengine.h',
henrike@webrtc.org0481f152014-08-19 14:56:59 +0000493 'media/webrtc/webrtcmediaengine.cc',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000494 'media/webrtc/webrtcpassthroughrender.cc',
495 'media/webrtc/webrtcpassthroughrender.h',
496 'media/webrtc/webrtcvideocapturer.cc',
Henrik Boström3b187b92015-05-28 11:43:38 +0200497 'media/webrtc/webrtcvideocapturer.h',
buildbot@webrtc.org65b98d12014-08-07 22:09:08 +0000498 'media/webrtc/webrtcvideocapturerfactory.h',
499 'media/webrtc/webrtcvideocapturerfactory.cc',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000500 'media/webrtc/webrtcvideodecoderfactory.h',
501 'media/webrtc/webrtcvideoencoderfactory.h',
pbos@webrtc.orgb5a22b12014-05-13 11:07:01 +0000502 'media/webrtc/webrtcvideoengine2.cc',
503 'media/webrtc/webrtcvideoengine2.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000504 'media/webrtc/webrtcvideoframe.cc',
505 'media/webrtc/webrtcvideoframe.h',
buildbot@webrtc.org4f0d4012014-08-07 04:47:36 +0000506 'media/webrtc/webrtcvideoframefactory.cc',
507 'media/webrtc/webrtcvideoframefactory.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000508 'media/webrtc/webrtcvoe.h',
509 'media/webrtc/webrtcvoiceengine.cc',
510 'media/webrtc/webrtcvoiceengine.h',
511 ],
512 'conditions': [
Henrik Kjellandere6cefb62015-04-27 14:39:04 +0200513 ['build_libyuv==1', {
514 'dependencies': ['<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv',],
515 }],
516 ['build_usrsctp==1', {
517 'include_dirs': [
518 # TODO(jiayl): move this into the direct_dependent_settings of
519 # usrsctp.gyp.
520 '<(DEPTH)/third_party/usrsctp',
521 ],
522 'dependencies': [
523 '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib',
524 ],
525 }],
andresp@webrtc.orga74eda12014-09-17 11:50:19 +0000526 ['build_with_chromium==1', {
kjellander@webrtc.org853049f2015-01-20 11:40:45 +0000527 'dependencies': [
kjellander@webrtc.orgf58fe0a2015-02-11 07:47:00 +0000528 '<(webrtc_root)/modules/modules.gyp:video_capture',
529 '<(webrtc_root)/modules/modules.gyp:video_render',
kjellander@webrtc.org853049f2015-01-20 11:40:45 +0000530 ],
531 }, {
532 'dependencies': [
andresp@webrtc.orga74eda12014-09-17 11:50:19 +0000533 '<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl',
andresp@webrtc.orgab071da2014-09-18 08:58:15 +0000534 '<(webrtc_root)/modules/modules.gyp:video_render_module_internal_impl',
kjellander@webrtc.org853049f2015-01-20 11:40:45 +0000535 ],
536 }],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000537 ['OS=="linux"', {
538 'sources': [
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000539 'media/devices/libudevsymboltable.cc',
540 'media/devices/libudevsymboltable.h',
541 'media/devices/linuxdeviceinfo.cc',
542 'media/devices/linuxdevicemanager.cc',
543 'media/devices/linuxdevicemanager.h',
544 'media/devices/v4llookup.cc',
545 'media/devices/v4llookup.h',
546 ],
Henrik Kjellandere6cefb62015-04-27 14:39:04 +0200547 'conditions': [
548 ['use_gtk==1', {
549 'sources': [
550 'media/devices/gtkvideorenderer.cc',
551 'media/devices/gtkvideorenderer.h',
552 ],
553 'cflags': [
554 '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)',
555 ],
556 }],
557 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000558 'include_dirs': [
559 'third_party/libudev'
560 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000561 'libraries': [
562 '-lrt',
563 '-lXext',
564 '-lX11',
565 ],
566 }],
567 ['OS=="win"', {
568 'sources': [
569 'media/devices/gdivideorenderer.cc',
570 'media/devices/gdivideorenderer.h',
571 'media/devices/win32deviceinfo.cc',
572 'media/devices/win32devicemanager.cc',
573 'media/devices/win32devicemanager.h',
574 ],
575 'msvs_settings': {
576 'VCLibrarianTool': {
577 'AdditionalDependencies': [
578 'd3d9.lib',
579 'gdi32.lib',
580 'strmiids.lib',
581 'winmm.lib',
582 ],
583 },
584 },
585 }],
586 ['OS=="mac"', {
587 'sources': [
588 'media/devices/macdeviceinfo.cc',
589 'media/devices/macdevicemanager.cc',
590 'media/devices/macdevicemanager.h',
591 'media/devices/macdevicemanagermm.mm',
592 ],
593 'conditions': [
fischman@webrtc.orge3de6b12013-08-26 19:31:21 +0000594 ['target_arch=="ia32"', {
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000595 'sources': [
596 'media/devices/carbonvideorenderer.cc',
597 'media/devices/carbonvideorenderer.h',
598 ],
fischman@webrtc.orge3de6b12013-08-26 19:31:21 +0000599 'link_settings': {
600 'xcode_settings': {
601 'OTHER_LDFLAGS': [
602 '-framework Carbon',
603 ],
604 },
605 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000606 }],
607 ],
608 'xcode_settings': {
609 'WARNING_CFLAGS': [
610 # TODO(ronghuawu): Update macdevicemanager.cc to stop using
611 # deprecated functions and remove this flag.
612 '-Wno-deprecated-declarations',
613 ],
Henrik Kjellandera8202aa2015-05-29 20:13:24 +0200614 # Disable partial availability warning to prevent errors
615 # in macdevicemanagermm.mm using AVFoundation.
616 # https://code.google.com/p/webrtc/issues/detail?id=4695
617 'WARNING_CFLAGS!': ['-Wpartial-availability'],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000618 },
619 'link_settings': {
620 'xcode_settings': {
621 'OTHER_LDFLAGS': [
buildbot@webrtc.orga42a3ad2014-09-13 01:09:18 +0000622 '-weak_framework AVFoundation',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000623 '-framework Cocoa',
624 '-framework CoreAudio',
625 '-framework CoreVideo',
626 '-framework OpenGL',
627 '-framework QTKit',
628 ],
629 },
630 },
631 }],
632 ['OS=="ios"', {
633 'sources': [
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000634 'media/devices/mobiledevicemanager.cc',
635 ],
636 'include_dirs': [
637 # TODO(sjlee) Remove when vp8 is building for iOS. vp8 pulls in
638 # libjpeg which pulls in libyuv which currently disabled.
639 '../third_party/libyuv/include',
640 ],
641 }],
642 ['OS=="android"', {
643 'sources': [
644 'media/devices/mobiledevicemanager.cc',
645 ],
646 }],
647 ],
648 }, # target libjingle_media
649 {
650 'target_name': 'libjingle_p2p',
651 'type': 'static_library',
652 'dependencies': [
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000653 'libjingle',
654 'libjingle_media',
655 ],
Henrik Kjellandere6cefb62015-04-27 14:39:04 +0200656 'conditions': [
657 ['build_libsrtp==1', {
658 'dependencies': [
659 '<(DEPTH)/third_party/libsrtp/libsrtp.gyp:libsrtp',
660 ],
661 }],
662 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000663 'include_dirs': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000664 '<(DEPTH)/testing/gtest/include',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000665 ],
666 'direct_dependent_settings': {
667 'include_dirs': [
henrike@webrtc.org723d6832013-07-12 16:04:50 +0000668 '<(DEPTH)/testing/gtest/include',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000669 ],
670 },
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000671 'sources': [
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000672 'session/media/audiomonitor.cc',
673 'session/media/audiomonitor.h',
buildbot@webrtc.org5ee0f052014-05-05 20:18:08 +0000674 'session/media/bundlefilter.cc',
675 'session/media/bundlefilter.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000676 'session/media/channel.cc',
677 'session/media/channel.h',
678 'session/media/channelmanager.cc',
679 'session/media/channelmanager.h',
680 'session/media/currentspeakermonitor.cc',
681 'session/media/currentspeakermonitor.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000682 'session/media/mediamonitor.cc',
683 'session/media/mediamonitor.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000684 'session/media/mediasession.cc',
685 'session/media/mediasession.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000686 'session/media/mediasink.h',
687 'session/media/rtcpmuxfilter.cc',
688 'session/media/rtcpmuxfilter.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000689 'session/media/srtpfilter.cc',
690 'session/media/srtpfilter.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000691 'session/media/typingmonitor.cc',
692 'session/media/typingmonitor.h',
693 'session/media/voicechannel.h',
694 ],
695 }, # target libjingle_p2p
696 {
697 'target_name': 'libjingle_peerconnection',
698 'type': 'static_library',
699 'dependencies': [
700 'libjingle',
701 'libjingle_media',
702 'libjingle_p2p',
703 ],
704 'sources': [
705 'app/webrtc/audiotrack.cc',
706 'app/webrtc/audiotrack.h',
707 'app/webrtc/audiotrackrenderer.cc',
708 'app/webrtc/audiotrackrenderer.h',
709 'app/webrtc/datachannel.cc',
710 'app/webrtc/datachannel.h',
711 'app/webrtc/datachannelinterface.h',
jiayl@webrtc.org25484062015-02-18 23:58:16 +0000712 'app/webrtc/dtlsidentitystore.cc',
713 'app/webrtc/dtlsidentitystore.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000714 'app/webrtc/dtmfsender.cc',
715 'app/webrtc/dtmfsender.h',
716 'app/webrtc/dtmfsenderinterface.h',
717 'app/webrtc/fakeportallocatorfactory.h',
718 'app/webrtc/jsep.h',
719 'app/webrtc/jsepicecandidate.cc',
720 'app/webrtc/jsepicecandidate.h',
721 'app/webrtc/jsepsessiondescription.cc',
722 'app/webrtc/jsepsessiondescription.h',
723 'app/webrtc/localaudiosource.cc',
724 'app/webrtc/localaudiosource.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000725 'app/webrtc/mediaconstraintsinterface.cc',
726 'app/webrtc/mediaconstraintsinterface.h',
727 'app/webrtc/mediastream.cc',
728 'app/webrtc/mediastream.h',
729 'app/webrtc/mediastreamhandler.cc',
730 'app/webrtc/mediastreamhandler.h',
731 'app/webrtc/mediastreaminterface.h',
732 'app/webrtc/mediastreamprovider.h',
733 'app/webrtc/mediastreamproxy.h',
734 'app/webrtc/mediastreamsignaling.cc',
735 'app/webrtc/mediastreamsignaling.h',
736 'app/webrtc/mediastreamtrack.h',
737 'app/webrtc/mediastreamtrackproxy.h',
738 'app/webrtc/notifier.h',
739 'app/webrtc/peerconnection.cc',
740 'app/webrtc/peerconnection.h',
741 'app/webrtc/peerconnectionfactory.cc',
742 'app/webrtc/peerconnectionfactory.h',
perkj@webrtc.org81134d02015-01-12 08:30:16 +0000743 'app/webrtc/peerconnectionfactoryproxy.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000744 'app/webrtc/peerconnectioninterface.h',
745 'app/webrtc/peerconnectionproxy.h',
746 'app/webrtc/portallocatorfactory.cc',
747 'app/webrtc/portallocatorfactory.h',
748 'app/webrtc/proxy.h',
wu@webrtc.orgb9a088b2014-02-13 23:18:49 +0000749 'app/webrtc/remoteaudiosource.cc',
750 'app/webrtc/remoteaudiosource.h',
wu@webrtc.org967bfff2013-09-19 05:49:50 +0000751 'app/webrtc/remotevideocapturer.cc',
752 'app/webrtc/remotevideocapturer.h',
henrika@webrtc.orgaebb1ad2014-01-14 10:00:58 +0000753 'app/webrtc/sctputils.cc',
754 'app/webrtc/sctputils.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000755 'app/webrtc/statscollector.cc',
756 'app/webrtc/statscollector.h',
tommi@webrtc.org5c3ee4b2014-12-09 10:47:01 +0000757 'app/webrtc/statstypes.cc',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000758 'app/webrtc/statstypes.h',
759 'app/webrtc/streamcollection.h',
wu@webrtc.org967bfff2013-09-19 05:49:50 +0000760 'app/webrtc/videosource.cc',
761 'app/webrtc/videosource.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000762 'app/webrtc/videosourceinterface.h',
763 'app/webrtc/videosourceproxy.h',
764 'app/webrtc/videotrack.cc',
765 'app/webrtc/videotrack.h',
766 'app/webrtc/videotrackrenderers.cc',
767 'app/webrtc/videotrackrenderers.h',
768 'app/webrtc/webrtcsdp.cc',
769 'app/webrtc/webrtcsdp.h',
770 'app/webrtc/webrtcsession.cc',
771 'app/webrtc/webrtcsession.h',
wu@webrtc.org91053e72013-08-10 07:18:04 +0000772 'app/webrtc/webrtcsessiondescriptionfactory.cc',
773 'app/webrtc/webrtcsessiondescriptionfactory.h',
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000774 ],
perkj@webrtc.org83bc7212015-02-11 11:26:56 +0000775 'conditions': [
776 ['OS=="android" and build_with_chromium==0', {
777 'sources': [
778 'app/webrtc/androidvideocapturer.h',
779 'app/webrtc/androidvideocapturer.cc',
780 ],
781 }],
782 ],
henrike@webrtc.org28e20752013-07-10 00:45:36 +0000783 }, # target libjingle_peerconnection
784 ],
785}