OLD | NEW |
| (Empty) |
1 # Copyright 2016 The WebRTC project authors. All Rights Reserved. | |
2 # | |
3 # Use of this source code is governed by a BSD-style license | |
4 # that can be found in the LICENSE file in the root of the source | |
5 # tree. An additional intellectual property rights grant can be found | |
6 # in the file PATENTS. All contributing project authors may | |
7 # be found in the AUTHORS file in the root of the source tree. | |
8 | |
9 { | |
10 'includes': [ | |
11 '../build/common.gypi', | |
12 'sdk.gypi', | |
13 ], | |
14 'conditions': [ | |
15 ['OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7")', { | |
16 'targets': [ | |
17 { | |
18 'target_name': 'rtc_sdk_common_objc', | |
19 'type': 'static_library', | |
20 'includes': [ '../build/objc_common.gypi' ], | |
21 'dependencies': [ | |
22 '../base/base.gyp:rtc_base', | |
23 ], | |
24 'include_dirs': [ | |
25 'objc/Framework/Classes', | |
26 'objc/Framework/Headers', | |
27 ], | |
28 'direct_dependent_settings': { | |
29 'include_dirs': [ | |
30 'objc/Framework/Classes', | |
31 'objc/Framework/Headers', | |
32 ], | |
33 }, | |
34 'sources': [ | |
35 'objc/Framework/Classes/NSString+StdString.h', | |
36 'objc/Framework/Classes/NSString+StdString.mm', | |
37 'objc/Framework/Classes/RTCDispatcher.m', | |
38 'objc/Framework/Classes/RTCFieldTrials.mm', | |
39 'objc/Framework/Classes/RTCLogging.mm', | |
40 'objc/Framework/Classes/RTCMetrics.mm', | |
41 'objc/Framework/Classes/RTCMetricsSampleInfo+Private.h', | |
42 'objc/Framework/Classes/RTCMetricsSampleInfo.mm', | |
43 'objc/Framework/Classes/RTCSSLAdapter.mm', | |
44 'objc/Framework/Classes/RTCTracing.mm', | |
45 'objc/Framework/Headers/WebRTC/RTCDispatcher.h', | |
46 'objc/Framework/Headers/WebRTC/RTCFieldTrials.h', | |
47 'objc/Framework/Headers/WebRTC/RTCLogging.h', | |
48 'objc/Framework/Headers/WebRTC/RTCMacros.h', | |
49 'objc/Framework/Headers/WebRTC/RTCMetrics.h', | |
50 'objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h', | |
51 'objc/Framework/Headers/WebRTC/RTCSSLAdapter.h', | |
52 'objc/Framework/Headers/WebRTC/RTCTracing.h', | |
53 ], | |
54 'conditions': [ | |
55 ['OS=="ios"', { | |
56 'sources': [ | |
57 'objc/Framework/Classes/RTCCameraPreviewView.m', | |
58 'objc/Framework/Classes/RTCUIApplication.h', | |
59 'objc/Framework/Classes/RTCUIApplication.mm', | |
60 'objc/Framework/Classes/UIDevice+RTCDevice.mm', | |
61 'objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h', | |
62 'objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h', | |
63 ], | |
64 'dependencies': [ | |
65 'webrtc_h264_video_toolbox', | |
66 ], | |
67 'link_settings': { | |
68 'xcode_settings': { | |
69 'OTHER_LDFLAGS': [ | |
70 '-framework AVFoundation', | |
71 ], | |
72 }, | |
73 }, | |
74 }], # OS=="ios" | |
75 ['build_with_chromium==0', { | |
76 'sources': [ | |
77 'objc/Framework/Classes/RTCFileLogger.mm', | |
78 'objc/Framework/Headers/WebRTC/RTCFileLogger.h', | |
79 ], | |
80 }], | |
81 ], | |
82 }, | |
83 { | |
84 'target_name': 'rtc_sdk_peerconnection_objc', | |
85 'type': 'static_library', | |
86 'includes': [ '../build/objc_common.gypi' ], | |
87 'dependencies': [ | |
88 '<(webrtc_root)/api/api.gyp:libjingle_peerconnection', | |
89 'rtc_sdk_common_objc', | |
90 ], | |
91 'include_dirs': [ | |
92 'objc/Framework/Classes', | |
93 'objc/Framework/Headers', | |
94 ], | |
95 'direct_dependent_settings': { | |
96 'include_dirs': [ | |
97 'objc/Framework/Classes', | |
98 'objc/Framework/Headers', | |
99 ], | |
100 }, | |
101 'link_settings': { | |
102 'xcode_settings': { | |
103 'OTHER_LDFLAGS': [ | |
104 '-framework AVFoundation', | |
105 ], | |
106 }, | |
107 'libraries': [ | |
108 '-lstdc++', | |
109 ], | |
110 }, # link_settings | |
111 'sources': [ | |
112 'objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h', | |
113 'objc/Framework/Classes/RTCAVFoundationVideoSource.mm', | |
114 'objc/Framework/Classes/RTCAudioSource+Private.h', | |
115 'objc/Framework/Classes/RTCAudioSource.mm', | |
116 'objc/Framework/Classes/RTCAudioTrack+Private.h', | |
117 'objc/Framework/Classes/RTCAudioTrack.mm', | |
118 'objc/Framework/Classes/RTCConfiguration+Private.h', | |
119 'objc/Framework/Classes/RTCConfiguration.mm', | |
120 'objc/Framework/Classes/RTCDataChannel+Private.h', | |
121 'objc/Framework/Classes/RTCDataChannel.mm', | |
122 'objc/Framework/Classes/RTCDataChannelConfiguration+Private.h', | |
123 'objc/Framework/Classes/RTCDataChannelConfiguration.mm', | |
124 'objc/Framework/Classes/RTCI420Shader.mm', | |
125 'objc/Framework/Classes/RTCIceCandidate+Private.h', | |
126 'objc/Framework/Classes/RTCIceCandidate.mm', | |
127 'objc/Framework/Classes/RTCIceServer+Private.h', | |
128 'objc/Framework/Classes/RTCIceServer.mm', | |
129 'objc/Framework/Classes/RTCLegacyStatsReport+Private.h', | |
130 'objc/Framework/Classes/RTCLegacyStatsReport.mm', | |
131 'objc/Framework/Classes/RTCMediaConstraints+Private.h', | |
132 'objc/Framework/Classes/RTCMediaConstraints.mm', | |
133 'objc/Framework/Classes/RTCMediaSource+Private.h', | |
134 'objc/Framework/Classes/RTCMediaSource.mm', | |
135 'objc/Framework/Classes/RTCMediaStream+Private.h', | |
136 'objc/Framework/Classes/RTCMediaStream.mm', | |
137 'objc/Framework/Classes/RTCMediaStreamTrack+Private.h', | |
138 'objc/Framework/Classes/RTCMediaStreamTrack.mm', | |
139 'objc/Framework/Classes/RTCOpenGLDefines.h', | |
140 'objc/Framework/Classes/RTCOpenGLVideoRenderer.h', | |
141 'objc/Framework/Classes/RTCOpenGLVideoRenderer.mm', | |
142 'objc/Framework/Classes/RTCPeerConnection+DataChannel.mm', | |
143 'objc/Framework/Classes/RTCPeerConnection+Private.h', | |
144 'objc/Framework/Classes/RTCPeerConnection+Stats.mm', | |
145 'objc/Framework/Classes/RTCPeerConnection.mm', | |
146 'objc/Framework/Classes/RTCPeerConnectionFactory+Private.h', | |
147 'objc/Framework/Classes/RTCPeerConnectionFactory.mm', | |
148 'objc/Framework/Classes/RTCRtpCodecParameters+Private.h', | |
149 'objc/Framework/Classes/RTCRtpCodecParameters.mm', | |
150 'objc/Framework/Classes/RTCRtpEncodingParameters+Private.h', | |
151 'objc/Framework/Classes/RTCRtpEncodingParameters.mm', | |
152 'objc/Framework/Classes/RTCRtpParameters+Private.h', | |
153 'objc/Framework/Classes/RTCRtpParameters.mm', | |
154 'objc/Framework/Classes/RTCRtpReceiver+Private.h', | |
155 'objc/Framework/Classes/RTCRtpReceiver.mm', | |
156 'objc/Framework/Classes/RTCRtpSender+Private.h', | |
157 'objc/Framework/Classes/RTCRtpSender.mm', | |
158 'objc/Framework/Classes/RTCSessionDescription+Private.h', | |
159 'objc/Framework/Classes/RTCSessionDescription.mm', | |
160 'objc/Framework/Classes/RTCShader+Private.h', | |
161 'objc/Framework/Classes/RTCShader.h', | |
162 'objc/Framework/Classes/RTCShader.mm', | |
163 'objc/Framework/Classes/RTCVideoFrame+Private.h', | |
164 'objc/Framework/Classes/RTCVideoFrame.mm', | |
165 'objc/Framework/Classes/RTCVideoRendererAdapter+Private.h', | |
166 'objc/Framework/Classes/RTCVideoRendererAdapter.h', | |
167 'objc/Framework/Classes/RTCVideoRendererAdapter.mm', | |
168 'objc/Framework/Classes/RTCVideoSource+Private.h', | |
169 'objc/Framework/Classes/RTCVideoSource.mm', | |
170 'objc/Framework/Classes/RTCVideoTrack+Private.h', | |
171 'objc/Framework/Classes/RTCVideoTrack.mm', | |
172 'objc/Framework/Classes/avfoundationvideocapturer.h', | |
173 'objc/Framework/Classes/avfoundationvideocapturer.mm', | |
174 'objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h', | |
175 'objc/Framework/Headers/WebRTC/RTCAudioSource.h', | |
176 'objc/Framework/Headers/WebRTC/RTCAudioTrack.h', | |
177 'objc/Framework/Headers/WebRTC/RTCConfiguration.h', | |
178 'objc/Framework/Headers/WebRTC/RTCDataChannel.h', | |
179 'objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h', | |
180 'objc/Framework/Headers/WebRTC/RTCIceCandidate.h', | |
181 'objc/Framework/Headers/WebRTC/RTCIceServer.h', | |
182 'objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h', | |
183 'objc/Framework/Headers/WebRTC/RTCMediaConstraints.h', | |
184 'objc/Framework/Headers/WebRTC/RTCMediaSource.h', | |
185 'objc/Framework/Headers/WebRTC/RTCMediaStream.h', | |
186 'objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h', | |
187 'objc/Framework/Headers/WebRTC/RTCPeerConnection.h', | |
188 'objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h', | |
189 'objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h', | |
190 'objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h', | |
191 'objc/Framework/Headers/WebRTC/RTCRtpParameters.h', | |
192 'objc/Framework/Headers/WebRTC/RTCRtpReceiver.h', | |
193 'objc/Framework/Headers/WebRTC/RTCRtpSender.h', | |
194 'objc/Framework/Headers/WebRTC/RTCSessionDescription.h', | |
195 'objc/Framework/Headers/WebRTC/RTCVideoFrame.h', | |
196 'objc/Framework/Headers/WebRTC/RTCVideoRenderer.h', | |
197 'objc/Framework/Headers/WebRTC/RTCVideoSource.h', | |
198 'objc/Framework/Headers/WebRTC/RTCVideoTrack.h', | |
199 ], # sources | |
200 'conditions': [ | |
201 ['build_libyuv==1', { | |
202 'dependencies': ['<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv'], | |
203 }], | |
204 ['OS=="ios"', { | |
205 'sources': [ | |
206 'objc/Framework/Classes/RTCEAGLVideoView.m', | |
207 'objc/Framework/Classes/RTCNativeNV12Shader.mm', | |
208 'objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h', | |
209 ], | |
210 'link_settings': { | |
211 'xcode_settings': { | |
212 'OTHER_LDFLAGS': [ | |
213 '-framework CoreGraphics', | |
214 '-framework GLKit', | |
215 '-framework OpenGLES', | |
216 '-framework QuartzCore', | |
217 ], | |
218 }, | |
219 }, # link_settings | |
220 }], # OS=="ios" | |
221 ['OS=="mac"', { | |
222 'sources': [ | |
223 'objc/Framework/Classes/RTCNSGLVideoView.m', | |
224 'objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h', | |
225 ], | |
226 'link_settings': { | |
227 'xcode_settings': { | |
228 'OTHER_LDFLAGS': [ | |
229 '-framework CoreMedia', | |
230 '-framework OpenGL', | |
231 ], | |
232 }, | |
233 }, | |
234 }], | |
235 ], # conditions | |
236 }, # rtc_sdk_peerconnection_objc | |
237 { | |
238 'target_name': 'rtc_sdk_framework_objc', | |
239 'type': 'shared_library', | |
240 'product_name': 'WebRTC', | |
241 'mac_bundle': 1, | |
242 'includes': [ '../build/objc_common.gypi' ], | |
243 # Slightly hacky, but we need to re-declare files here that are C | |
244 # interfaces because otherwise they will be dead-stripped during | |
245 # linking (ObjC classes cannot be dead-stripped). We might consider | |
246 # just only using ObjC interfaces. | |
247 'sources': [ | |
248 'objc/Framework/Classes/RTCFieldTrials.mm', | |
249 'objc/Framework/Classes/RTCLogging.mm', | |
250 'objc/Framework/Classes/RTCMetrics.mm', | |
251 'objc/Framework/Classes/RTCSSLAdapter.mm', | |
252 'objc/Framework/Classes/RTCTracing.mm', | |
253 'objc/Framework/Headers/WebRTC/RTCFieldTrials.h', | |
254 'objc/Framework/Headers/WebRTC/RTCLogging.h', | |
255 'objc/Framework/Headers/WebRTC/RTCSSLAdapter.h', | |
256 'objc/Framework/Headers/WebRTC/RTCTracing.h', | |
257 'objc/Framework/Headers/WebRTC/WebRTC.h', | |
258 'objc/Framework/Modules/module.modulemap', | |
259 ], | |
260 'mac_framework_headers': [ | |
261 'objc/Framework/Headers/WebRTC/RTCAudioSource.h', | |
262 'objc/Framework/Headers/WebRTC/RTCAudioTrack.h', | |
263 'objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h', | |
264 'objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h', | |
265 'objc/Framework/Headers/WebRTC/RTCConfiguration.h', | |
266 'objc/Framework/Headers/WebRTC/RTCDataChannel.h', | |
267 'objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h', | |
268 'objc/Framework/Headers/WebRTC/RTCDispatcher.h', | |
269 'objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h', | |
270 'objc/Framework/Headers/WebRTC/RTCFieldTrials.h', | |
271 'objc/Framework/Headers/WebRTC/RTCFileLogger.h', | |
272 'objc/Framework/Headers/WebRTC/RTCIceCandidate.h', | |
273 'objc/Framework/Headers/WebRTC/RTCIceServer.h', | |
274 'objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h', | |
275 'objc/Framework/Headers/WebRTC/RTCLogging.h', | |
276 'objc/Framework/Headers/WebRTC/RTCMacros.h', | |
277 'objc/Framework/Headers/WebRTC/RTCMediaConstraints.h', | |
278 'objc/Framework/Headers/WebRTC/RTCMediaSource.h', | |
279 'objc/Framework/Headers/WebRTC/RTCMediaStream.h', | |
280 'objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h', | |
281 'objc/Framework/Headers/WebRTC/RTCMetrics.h', | |
282 'objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h', | |
283 'objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h', | |
284 'objc/Framework/Headers/WebRTC/RTCPeerConnection.h', | |
285 'objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h', | |
286 'objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h', | |
287 'objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h', | |
288 'objc/Framework/Headers/WebRTC/RTCRtpParameters.h', | |
289 'objc/Framework/Headers/WebRTC/RTCRtpReceiver.h', | |
290 'objc/Framework/Headers/WebRTC/RTCRtpSender.h', | |
291 'objc/Framework/Headers/WebRTC/RTCSessionDescription.h', | |
292 'objc/Framework/Headers/WebRTC/RTCSSLAdapter.h', | |
293 'objc/Framework/Headers/WebRTC/RTCTracing.h', | |
294 'objc/Framework/Headers/WebRTC/RTCVideoFrame.h', | |
295 'objc/Framework/Headers/WebRTC/RTCVideoRenderer.h', | |
296 'objc/Framework/Headers/WebRTC/RTCVideoSource.h', | |
297 'objc/Framework/Headers/WebRTC/RTCVideoTrack.h', | |
298 'objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h', | |
299 'objc/Framework/Headers/WebRTC/WebRTC.h', | |
300 ], | |
301 'dependencies': [ | |
302 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_defa
ult', | |
303 '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default'
, | |
304 'rtc_sdk_peerconnection_objc', | |
305 ], | |
306 'xcode_settings': { | |
307 'CODE_SIGNING_REQUIRED': 'NO', | |
308 'CODE_SIGN_IDENTITY': '', | |
309 'DEFINES_MODULE': 'YES', | |
310 'INFOPLIST_FILE': 'objc/Framework/Info.plist', | |
311 'LD_DYLIB_INSTALL_NAME': '@rpath/WebRTC.framework/WebRTC', | |
312 'MODULEMAP_FILE': '<(webrtc_root)/sdk/Framework/Modules/module.modul
emap', | |
313 }, | |
314 'link_settings': { | |
315 'xcode_settings': { | |
316 'OTHER_LDFLAGS': [ | |
317 '-framework AVFoundation', | |
318 '-framework AudioToolbox', | |
319 '-framework CoreGraphics', | |
320 '-framework CoreMedia', | |
321 '-framework GLKit', | |
322 '-framework VideoToolbox', | |
323 ], | |
324 }, | |
325 }, # link_settings | |
326 'conditions': [ | |
327 # TODO(tkchin): Generate WebRTC.h based off of | |
328 # mac_framework_headers instead of hard-coding. Ok for now since we | |
329 # only really care about dynamic lib on iOS outside of chromium. | |
330 ['OS!="mac"', { | |
331 'mac_framework_headers!': [ | |
332 'objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h', | |
333 ], | |
334 }], | |
335 ['build_with_chromium==1', { | |
336 'mac_framework_headers!': [ | |
337 'objc/Framework/Headers/WebRTC/RTCFileLogger.h', | |
338 ], | |
339 }], | |
340 ], # conditions | |
341 }, # rtc_sdk_framework_objc | |
342 ], # targets | |
343 }], # OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7") | |
344 ['OS=="ios"', { | |
345 'targets': [ | |
346 { | |
347 'target_name': 'webrtc_h264_video_toolbox', | |
348 'type': 'static_library', | |
349 'includes': [ '../build/objc_common.gypi' ], | |
350 'link_settings': { | |
351 'xcode_settings': { | |
352 'OTHER_LDFLAGS': [ | |
353 '-framework CoreFoundation', | |
354 '-framework CoreMedia', | |
355 '-framework CoreVideo', | |
356 '-framework VideoToolbox', | |
357 ], | |
358 }, | |
359 }, | |
360 'sources': [ | |
361 'objc/Framework/Classes/h264_video_toolbox_decoder.cc', | |
362 'objc/Framework/Classes/h264_video_toolbox_decoder.h', | |
363 'objc/Framework/Classes/h264_video_toolbox_encoder.h', | |
364 'objc/Framework/Classes/h264_video_toolbox_encoder.mm', | |
365 'objc/Framework/Classes/h264_video_toolbox_nalu.cc', | |
366 'objc/Framework/Classes/h264_video_toolbox_nalu.h', | |
367 'objc/Framework/Classes/videotoolboxvideocodecfactory.cc', | |
368 'objc/Framework/Classes/videotoolboxvideocodecfactory.h', | |
369 ], | |
370 'conditions': [ | |
371 ['build_libyuv==1', { | |
372 'dependencies': ['<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv'], | |
373 }], | |
374 ], | |
375 }, # webrtc_h264_video_toolbox | |
376 ], # targets | |
377 }], # OS=="ios" | |
378 ], | |
379 } | |
OLD | NEW |