Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(943)

Side by Side Diff: webrtc/sdk/BUILD.gn

Issue 2862543002: Split iOS sdk in to separate targets (Closed)
Patch Set: Add required lib to metal target Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2016 The WebRTC project authors. All Rights Reserved. 1 # Copyright 2016 The WebRTC project authors. All Rights Reserved.
2 # 2 #
3 # Use of this source code is governed by a BSD-style license 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 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 5 # tree. An additional intellectual property rights grant can be found
6 # in the file PATENTS. All contributing project authors may 6 # in the file PATENTS. All contributing project authors may
7 # be found in the AUTHORS file in the root of the source tree. 7 # be found in the AUTHORS file in the root of the source tree.
8 8
9 import("../webrtc.gni") 9 import("../webrtc.gni")
10 if (is_ios) { 10 if (is_ios) {
11 import("//build/config/ios/rules.gni") 11 import("//build/config/ios/rules.gni")
12 } 12 }
13 13
14 declare_args() {
15 # Determine whether or not to include metal rendering
16 rtc_use_metal_rendering = is_mac || (is_ios && current_cpu == "arm64")
17 }
18
14 group("sdk") { 19 group("sdk") {
15 if (is_ios) { 20 if (is_ios) {
16 public_deps = [ 21 public_deps = [
17 ":rtc_sdk_framework_objc", 22 ":rtc_sdk_framework_objc",
18 ] 23 ]
19 } 24 }
20 } 25 }
21 26
22 if (is_ios || is_mac) { 27 if (is_ios || is_mac) {
23 config("rtc_sdk_common_objc_config") { 28 config("rtc_sdk_common_objc_config") {
24 include_dirs = [ 29 include_dirs = [
25 "objc/Framework/Classes", 30 "objc/Framework/Classes",
26 "objc/Framework/Headers", 31 "objc/Framework/Headers",
27 ] 32 ]
28 } 33 }
29 34
30 rtc_static_library("rtc_sdk_common_objc") { 35 rtc_static_library("rtc_sdk_common_module") {
31 sources = [ 36 sources = [
32 "objc/Framework/Classes/NSString+StdString.h", 37 "objc/Framework/Classes/Common/NSString+StdString.h",
33 "objc/Framework/Classes/NSString+StdString.mm", 38 "objc/Framework/Classes/Common/NSString+StdString.mm",
34 "objc/Framework/Classes/RTCDispatcher.m", 39 "objc/Framework/Classes/Common/RTCDispatcher+Private.h",
35 "objc/Framework/Classes/RTCFieldTrials.mm", 40 "objc/Framework/Classes/Common/RTCDispatcher.m",
36 "objc/Framework/Classes/RTCLogging.mm", 41 "objc/Framework/Classes/Common/RTCFieldTrials.mm",
37 "objc/Framework/Classes/RTCMetrics.mm", 42 "objc/Framework/Classes/Common/RTCLogging.mm",
38 "objc/Framework/Classes/RTCMetricsSampleInfo+Private.h", 43 "objc/Framework/Classes/Common/RTCMetrics.mm",
39 "objc/Framework/Classes/RTCMetricsSampleInfo.mm", 44 "objc/Framework/Classes/Common/RTCMetricsSampleInfo+Private.h",
40 "objc/Framework/Classes/RTCSSLAdapter.mm", 45 "objc/Framework/Classes/Common/RTCMetricsSampleInfo.mm",
41 "objc/Framework/Classes/RTCTracing.mm", 46 "objc/Framework/Classes/Common/RTCSSLAdapter.mm",
42 "objc/Framework/Classes/helpers.h", 47 "objc/Framework/Classes/Common/RTCTracing.mm",
43 "objc/Framework/Classes/helpers.mm", 48 "objc/Framework/Classes/Common/helpers.h",
49 "objc/Framework/Classes/Common/helpers.mm",
44 "objc/Framework/Headers/WebRTC/RTCDispatcher.h", 50 "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
45 "objc/Framework/Headers/WebRTC/RTCFieldTrials.h", 51 "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
46 "objc/Framework/Headers/WebRTC/RTCLogging.h", 52 "objc/Framework/Headers/WebRTC/RTCLogging.h",
47 "objc/Framework/Headers/WebRTC/RTCMacros.h", 53 "objc/Framework/Headers/WebRTC/RTCMacros.h",
48 "objc/Framework/Headers/WebRTC/RTCMetrics.h", 54 "objc/Framework/Headers/WebRTC/RTCMetrics.h",
49 "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h", 55 "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
50 "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h", 56 "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
51 "objc/Framework/Headers/WebRTC/RTCTracing.h", 57 "objc/Framework/Headers/WebRTC/RTCTracing.h",
52 ] 58 ]
53 59
54 deps = [ 60 deps = [
55 "../base:rtc_base", 61 "../base:rtc_base",
56 ] 62 ]
57 configs += [ "..:common_objc" ] 63 configs += [ "..:common_objc" ]
58 64
59 public_configs = [ ":rtc_sdk_common_objc_config" ] 65 public_configs = [ ":rtc_sdk_common_objc_config" ]
60 66
61 if (is_ios) { 67 if (is_ios) {
62 sources += [ 68 sources += [
63 "objc/Framework/Classes/RTCCameraPreviewView.m", 69 "objc/Framework/Classes/Common/UIDevice+RTCDevice.mm",
64 "objc/Framework/Classes/RTCUIApplication.h", 70 "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
65 "objc/Framework/Classes/RTCUIApplication.mm", 71 ]
66 "objc/Framework/Classes/UIDevice+RTCDevice.mm", 72 }
73
74 libs = [ "AVFoundation.framework" ]
75
76 if (!build_with_chromium) {
77 sources += [
78 "objc/Framework/Classes/Common/RTCFileLogger.mm",
79 "objc/Framework/Headers/WebRTC/RTCFileLogger.h",
80 ]
81 }
82 }
83
84 rtc_static_library("rtc_sdk_video_module") {
85 sources = [
86 "objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.h",
87 "objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.mm",
88 "objc/Framework/Classes/Video/RTCAVFoundationVideoSource+Private.h",
89 "objc/Framework/Classes/Video/RTCAVFoundationVideoSource.mm",
90 "objc/Framework/Classes/Video/RTCCameraVideoCapturer.m",
91 "objc/Framework/Classes/Video/RTCI420Shader.mm",
92 "objc/Framework/Classes/Video/RTCI420TextureCache.h",
93 "objc/Framework/Classes/Video/RTCI420TextureCache.mm",
94 "objc/Framework/Classes/Video/RTCShader+Private.h",
95 "objc/Framework/Classes/Video/RTCShader.h",
96 "objc/Framework/Classes/Video/RTCShader.mm",
97 "objc/Framework/Classes/Video/RTCVideoCapturer.m",
98 "objc/Framework/Classes/Video/RTCVideoFrame+Private.h",
99 "objc/Framework/Classes/Video/RTCVideoFrame.mm",
100 "objc/Framework/Classes/Video/RTCVideoRendererAdapter+Private.h",
101 "objc/Framework/Classes/Video/RTCVideoRendererAdapter.h",
102 "objc/Framework/Classes/Video/RTCVideoRendererAdapter.mm",
103 "objc/Framework/Classes/Video/RTCVideoSource+Private.h",
104 "objc/Framework/Classes/Video/RTCVideoSource.mm",
105 "objc/Framework/Classes/Video/RTCVideoTrack+Private.h",
106 "objc/Framework/Classes/Video/RTCVideoTrack.mm",
107 "objc/Framework/Classes/Video/avfoundationformatmapper.h",
108 "objc/Framework/Classes/Video/avfoundationformatmapper.mm",
109 "objc/Framework/Classes/Video/avfoundationvideocapturer.h",
110 "objc/Framework/Classes/Video/avfoundationvideocapturer.mm",
111 "objc/Framework/Classes/Video/objcvideotracksource.h",
112 "objc/Framework/Classes/Video/objcvideotracksource.mm",
113 "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
114 "objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
115 "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
116 "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
117 "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
118 "objc/Framework/Headers/WebRTC/RTCVideoSource.h",
119 "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
120 ]
121 libs = []
122 if (is_ios) {
123 sources += [
124 "objc/Framework/Classes/UI/RTCEAGLVideoView.m",
125 "objc/Framework/Classes/Video/RTCNV12TextureCache.h",
126 "objc/Framework/Classes/Video/RTCNV12TextureCache.m",
127 "objc/Framework/Classes/Video/RTCNativeNV12Shader.mm",
128 "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
129 ]
130 libs += [
131 "GLKit.framework",
132 "OpenGLES.framework",
133 "QuartzCore.framework",
134 ]
135 } else if (is_mac) {
136 sources += [
137 "objc/Framework/Classes/UI/RTCNSGLVideoView.m",
138 "objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
139 ]
140
141 libs += [
142 "CoreMedia.framework",
143 "CoreVideo.framework",
144 "OpenGL.framework",
145 ]
146 }
147
148 deps = [
149 ":rtc_sdk_common_module",
150 ":rtc_sdk_corevideoframebuffer",
151 ":rtc_sdk_videotoolbox_module",
152 "//webrtc/api:libjingle_peerconnection_api",
153 "//webrtc/api:video_frame_api",
154 "//webrtc/base:rtc_base",
155 "//webrtc/common_video",
156 "//webrtc/media:rtc_media_base",
157 ]
158
159 configs += [ "..:common_objc" ]
160 if (!build_with_chromium && is_clang) {
161 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
162 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
163 }
164 }
165
166 rtc_static_library("rtc_sdk_audio_module") {
167 sources = [
168 "objc/Framework/Classes/Audio/RTCAudioSource+Private.h",
169 "objc/Framework/Classes/Audio/RTCAudioSource.mm",
170 "objc/Framework/Classes/Audio/RTCAudioTrack+Private.h",
171 "objc/Framework/Classes/Audio/RTCAudioTrack.mm",
172 "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
173 "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
174 ]
175
176 deps = [
177 ":rtc_sdk_common_module",
178 "//webrtc/api:libjingle_peerconnection_api",
179 "//webrtc/base:rtc_base_approved",
180 ]
181
182 libs = [ "AudioToolbox.framework" ]
183
184 configs += [ "..:common_objc" ]
185 if (!build_with_chromium && is_clang) {
186 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
187 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
188 }
189 }
190
191 rtc_static_library("rtc_sdk_ui_module") {
192 sources = [
193 "objc/Framework/Classes/UI/RTCUIApplication.h",
194 "objc/Framework/Classes/UI/RTCUIApplication.mm",
195 ]
196 if (is_ios) {
197 sources += [
198 "objc/Framework/Classes/UI/RTCCameraPreviewView.m",
67 "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h", 199 "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
68 "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h", 200 ]
69 ] 201 }
70 } 202 configs += [ "..:common_objc" ]
71 203 deps = [
72 if (is_mac || (is_ios && current_cpu == "arm64")) { 204 ":rtc_sdk_common_module",
205 ]
206 }
207
208 rtc_static_library("rtc_sdk_metal_module") {
209 sources = [
210 "objc/Framework/Classes/Metal/RTCMTLRenderer+Private.h",
211 "objc/Framework/Classes/Metal/RTCMTLRenderer.h",
212 "objc/Framework/Classes/Metal/RTCMTLRenderer.mm",
213 ]
214 if (is_ios) {
215 sources += [
216 "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h",
217 "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm",
218 "objc/Framework/Classes/Metal/RTCMTLVideoView.m",
219 "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
220 ]
221 }
222 if (is_mac) {
73 sources += [ 223 sources += [
74 "objc/Framework/Classes/Metal/RTCMTLI420Renderer.h", 224 "objc/Framework/Classes/Metal/RTCMTLI420Renderer.h",
75 "objc/Framework/Classes/Metal/RTCMTLI420Renderer.mm", 225 "objc/Framework/Classes/Metal/RTCMTLI420Renderer.mm",
76 "objc/Framework/Classes/Metal/RTCMTLRenderer+Private.h", 226 "objc/Framework/Classes/Metal/RTCMTLNSVideoView.m",
77 "objc/Framework/Classes/Metal/RTCMTLRenderer.h", 227 "objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
78 "objc/Framework/Classes/Metal/RTCMTLRenderer.mm", 228 ]
79 ] 229 }
80 deps += [ "../api:video_frame_api" ] 230 libs = [
81 231 "CoreVideo.framework",
82 if (is_ios) { 232 "Metal.framework",
83 sources += [ 233 "MetalKit.framework",
84 "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h", 234 ]
85 "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm", 235 deps = [
86 "objc/Framework/Classes/Metal/RTCMTLVideoView.m", 236 ":rtc_sdk_video_module",
87 ] 237 "//webrtc/api:video_frame_api",
88 } 238 "//webrtc/base:rtc_base_approved",
89 if (is_mac) { 239 ]
90 sources += [ "objc/Framework/Classes/Metal/RTCMTLNSVideoView.m" ] 240 configs += [ "..:common_objc" ]
91 } 241 public_configs = [ ":rtc_sdk_common_objc_config" ]
92 } 242 }
93 243
94 libs = [ "AVFoundation.framework" ] 244 rtc_static_library("rtc_sdk_peerconnection_module") {
95 if (is_mac || (is_ios && current_cpu == "arm64")) { 245 sources = [
96 libs += [ 246 "objc/Framework/Classes/PeerConnection/RTCConfiguration+Private.h",
97 "CoreVideo.framework", 247 "objc/Framework/Classes/PeerConnection/RTCConfiguration.mm",
98 "Metal.framework", 248 "objc/Framework/Classes/PeerConnection/RTCDataChannel+Private.h",
99 "MetalKit.framework", 249 "objc/Framework/Classes/PeerConnection/RTCDataChannel.mm",
100 ] 250 "objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration+Private .h",
101 } 251 "objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration.mm",
102 if (!build_with_chromium) { 252 "objc/Framework/Classes/PeerConnection/RTCIceCandidate+Private.h",
103 sources += [ 253 "objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
104 "objc/Framework/Classes/RTCFileLogger.mm", 254 "objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
105 "objc/Framework/Headers/WebRTC/RTCFileLogger.h", 255 "objc/Framework/Classes/PeerConnection/RTCIceServer.mm",
106 ] 256 "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
107 } 257 "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
108 } 258 "objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
109 259 "objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
110 rtc_static_library("rtc_sdk_peerconnection_objc") { 260 "objc/Framework/Classes/PeerConnection/RTCMediaSource+Private.h",
111 sources = [ 261 "objc/Framework/Classes/PeerConnection/RTCMediaSource.mm",
112 "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h", 262 "objc/Framework/Classes/PeerConnection/RTCMediaStream+Private.h",
113 "objc/Framework/Classes/RTCAVFoundationVideoCapturerInternal.h", 263 "objc/Framework/Classes/PeerConnection/RTCMediaStream.mm",
114 "objc/Framework/Classes/RTCAVFoundationVideoCapturerInternal.mm", 264 "objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack+Private.h",
115 "objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h", 265 "objc/Framework/Classes/PeerConnection/RTCMediaStreamTrack.mm",
116 "objc/Framework/Classes/RTCAVFoundationVideoSource.mm", 266 "objc/Framework/Classes/PeerConnection/RTCPeerConnection+DataChannel.mm",
117 "objc/Framework/Classes/RTCAudioSource+Private.h", 267 "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Private.h",
118 "objc/Framework/Classes/RTCAudioSource.mm", 268 "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Stats.mm",
119 "objc/Framework/Classes/RTCAudioTrack+Private.h", 269 "objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm",
120 "objc/Framework/Classes/RTCAudioTrack.mm", 270 "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h" ,
121 "objc/Framework/Classes/RTCCameraVideoCapturer.m", 271 "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
122 "objc/Framework/Classes/RTCConfiguration+Private.h", 272 "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters+Private.h",
123 "objc/Framework/Classes/RTCConfiguration.mm", 273 "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters.mm",
124 "objc/Framework/Classes/RTCDataChannel+Private.h", 274 "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters+Private.h" ,
125 "objc/Framework/Classes/RTCDataChannel.mm", 275 "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters.mm",
126 "objc/Framework/Classes/RTCDataChannelConfiguration+Private.h", 276 "objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h",
127 "objc/Framework/Classes/RTCDataChannelConfiguration.mm", 277 "objc/Framework/Classes/PeerConnection/RTCRtpParameters.mm",
128 "objc/Framework/Classes/RTCI420Shader.mm", 278 "objc/Framework/Classes/PeerConnection/RTCRtpReceiver+Private.h",
129 "objc/Framework/Classes/RTCI420TextureCache.h", 279 "objc/Framework/Classes/PeerConnection/RTCRtpReceiver.mm",
130 "objc/Framework/Classes/RTCI420TextureCache.mm", 280 "objc/Framework/Classes/PeerConnection/RTCRtpSender+Private.h",
131 "objc/Framework/Classes/RTCIceCandidate+Private.h", 281 "objc/Framework/Classes/PeerConnection/RTCRtpSender.mm",
132 "objc/Framework/Classes/RTCIceCandidate.mm", 282 "objc/Framework/Classes/PeerConnection/RTCSessionDescription+Private.h",
133 "objc/Framework/Classes/RTCIceServer+Private.h", 283 "objc/Framework/Classes/PeerConnection/RTCSessionDescription.mm",
134 "objc/Framework/Classes/RTCIceServer.mm",
135 "objc/Framework/Classes/RTCLegacyStatsReport+Private.h",
136 "objc/Framework/Classes/RTCLegacyStatsReport.mm",
137 "objc/Framework/Classes/RTCMediaConstraints+Private.h",
138 "objc/Framework/Classes/RTCMediaConstraints.mm",
139 "objc/Framework/Classes/RTCMediaSource+Private.h",
140 "objc/Framework/Classes/RTCMediaSource.mm",
141 "objc/Framework/Classes/RTCMediaStream+Private.h",
142 "objc/Framework/Classes/RTCMediaStream.mm",
143 "objc/Framework/Classes/RTCMediaStreamTrack+Private.h",
144 "objc/Framework/Classes/RTCMediaStreamTrack.mm",
145 "objc/Framework/Classes/RTCOpenGLDefines.h",
146 "objc/Framework/Classes/RTCPeerConnection+DataChannel.mm",
147 "objc/Framework/Classes/RTCPeerConnection+Private.h",
148 "objc/Framework/Classes/RTCPeerConnection+Stats.mm",
149 "objc/Framework/Classes/RTCPeerConnection.mm",
150 "objc/Framework/Classes/RTCPeerConnectionFactory+Private.h",
151 "objc/Framework/Classes/RTCPeerConnectionFactory.mm",
152 "objc/Framework/Classes/RTCRtpCodecParameters+Private.h",
153 "objc/Framework/Classes/RTCRtpCodecParameters.mm",
154 "objc/Framework/Classes/RTCRtpEncodingParameters+Private.h",
155 "objc/Framework/Classes/RTCRtpEncodingParameters.mm",
156 "objc/Framework/Classes/RTCRtpParameters+Private.h",
157 "objc/Framework/Classes/RTCRtpParameters.mm",
158 "objc/Framework/Classes/RTCRtpReceiver+Private.h",
159 "objc/Framework/Classes/RTCRtpReceiver.mm",
160 "objc/Framework/Classes/RTCRtpSender+Private.h",
161 "objc/Framework/Classes/RTCRtpSender.mm",
162 "objc/Framework/Classes/RTCSessionDescription+Private.h",
163 "objc/Framework/Classes/RTCSessionDescription.mm",
164 "objc/Framework/Classes/RTCShader+Private.h",
165 "objc/Framework/Classes/RTCShader.h",
166 "objc/Framework/Classes/RTCShader.mm",
167 "objc/Framework/Classes/RTCVideoCapturer.m",
168 "objc/Framework/Classes/RTCVideoFrame+Private.h",
169 "objc/Framework/Classes/RTCVideoFrame.mm",
170 "objc/Framework/Classes/RTCVideoRendererAdapter+Private.h",
171 "objc/Framework/Classes/RTCVideoRendererAdapter.h",
172 "objc/Framework/Classes/RTCVideoRendererAdapter.mm",
173 "objc/Framework/Classes/RTCVideoSource+Private.h",
174 "objc/Framework/Classes/RTCVideoSource.mm",
175 "objc/Framework/Classes/RTCVideoTrack+Private.h",
176 "objc/Framework/Classes/RTCVideoTrack.mm",
177 "objc/Framework/Classes/avfoundationformatmapper.h",
178 "objc/Framework/Classes/avfoundationformatmapper.mm",
179 "objc/Framework/Classes/avfoundationvideocapturer.h",
180 "objc/Framework/Classes/avfoundationvideocapturer.mm",
181 "objc/Framework/Classes/objcvideotracksource.h",
182 "objc/Framework/Classes/objcvideotracksource.mm",
183 "objc/Framework/Classes/videotoolboxvideocodecfactory.cc",
184 "objc/Framework/Classes/videotoolboxvideocodecfactory.h",
185 "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
186 "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
187 "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
188 "objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
189 "objc/Framework/Headers/WebRTC/RTCConfiguration.h", 284 "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
190 "objc/Framework/Headers/WebRTC/RTCDataChannel.h", 285 "objc/Framework/Headers/WebRTC/RTCDataChannel.h",
191 "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h", 286 "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
192 "objc/Framework/Headers/WebRTC/RTCIceCandidate.h", 287 "objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
193 "objc/Framework/Headers/WebRTC/RTCIceServer.h", 288 "objc/Framework/Headers/WebRTC/RTCIceServer.h",
194 "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h", 289 "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
195 "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h", 290 "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
196 "objc/Framework/Headers/WebRTC/RTCMediaSource.h", 291 "objc/Framework/Headers/WebRTC/RTCMediaSource.h",
197 "objc/Framework/Headers/WebRTC/RTCMediaStream.h", 292 "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
198 "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h", 293 "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
199 "objc/Framework/Headers/WebRTC/RTCPeerConnection.h", 294 "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
200 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h", 295 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
201 "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h", 296 "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
202 "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h", 297 "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
203 "objc/Framework/Headers/WebRTC/RTCRtpParameters.h", 298 "objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
204 "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h", 299 "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
205 "objc/Framework/Headers/WebRTC/RTCRtpSender.h", 300 "objc/Framework/Headers/WebRTC/RTCRtpSender.h",
206 "objc/Framework/Headers/WebRTC/RTCSessionDescription.h", 301 "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
207 "objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
208 "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
209 "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
210 "objc/Framework/Headers/WebRTC/RTCVideoSource.h",
211 "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
212 ] 302 ]
213 303
214 deps = [ 304 libs = [ "AVFoundation.framework" ]
215 ":rtc_sdk_corevideoframebuffer",
216 ":webrtc_h264_video_toolbox",
217 "../api:video_frame_api",
218 "../base:rtc_base",
219 "../base:rtc_base_approved",
220 "../common_video",
221 "../media:rtc_media",
222 "../media:rtc_media_base",
223 "../system_wrappers",
224 ]
225 305
226 if (is_ios) { 306 if (is_ios) {
227 sources += [ 307 libs += [ "CoreGraphics.framework" ]
228 "objc/Framework/Classes/RTCEAGLVideoView.m",
229 "objc/Framework/Classes/RTCNV12TextureCache.h",
230 "objc/Framework/Classes/RTCNV12TextureCache.m",
231 "objc/Framework/Classes/RTCNativeNV12Shader.mm",
232 "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
233 ]
234 libs = [
235 "CoreGraphics.framework",
236 "GLKit.framework",
237 "OpenGLES.framework",
238 "QuartzCore.framework",
239 ]
240 }
241
242 if (is_mac) {
243 sources += [
244 "objc/Framework/Classes/RTCNSGLVideoView.m",
245 "objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
246 "objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
247 ]
248 libs = [
249 "CoreVideo.framework",
250 "CoreMedia.framework",
251 "OpenGL.framework",
252 "Metal.framework",
253 "MetalKit.framework",
254 ]
255 } 308 }
256 309
257 configs += [ "..:common_objc" ] 310 configs += [ "..:common_objc" ]
258 311
259 public_configs = [ ":rtc_sdk_common_objc_config" ] 312 public_configs = [ ":rtc_sdk_common_objc_config" ]
260 313
261 if (!build_with_chromium && is_clang) { 314 if (!build_with_chromium && is_clang) {
262 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). 315 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
263 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] 316 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
264 } 317 }
265 318
266 libs += [ "AVFoundation.framework" ] 319 deps = [
320 ":rtc_sdk_audio_module",
321 ":rtc_sdk_common_module",
322 ":rtc_sdk_ui_module",
323 ":rtc_sdk_video_module",
324 "../pc:libjingle_peerconnection",
325 "//webrtc/base:rtc_base",
326 "//webrtc/media:rtc_media_base",
327 ]
267 328
268 deps += [ 329 if (rtc_use_metal_rendering) {
269 ":rtc_sdk_common_objc", 330 deps += [ ":rtc_sdk_metal_module" ]
270 "../pc:libjingle_peerconnection", 331 }
271 ]
272 332
273 if (rtc_build_libyuv) { 333 if (rtc_build_libyuv) {
274 deps += [ "$rtc_libyuv_dir" ] 334 deps += [ "$rtc_libyuv_dir" ]
275 public_deps = [ 335 public_deps = [
276 "$rtc_libyuv_dir", 336 "$rtc_libyuv_dir",
277 ] 337 ]
278 } 338 }
279 } 339 }
280 340
281 if (rtc_include_tests) { 341 if (rtc_include_tests) {
282 rtc_source_set("rtc_sdk_peerconnection_objc_unittests") { 342 rtc_source_set("rtc_sdk_peerconnection_module_unittests") {
283 testonly = true 343 testonly = true
284 344
285 # Skip restricting visibility on mobile platforms since the tests on those 345 # Skip restricting visibility on mobile platforms since the tests on those
286 # gets additional generated targets which would require many lines here to 346 # gets additional generated targets which would require many lines here to
287 # cover (which would be confusing to read and hard to maintain). 347 # cover (which would be confusing to read and hard to maintain).
288 if (!is_android && !is_ios) { 348 if (!is_android && !is_ios) {
289 visibility = [ "//webrtc:rtc_unittests" ] 349 visibility = [ "//webrtc:rtc_unittests" ]
290 } 350 }
291 sources = [ 351 sources = [
292 "objc/Framework/UnitTests/RTCCameraVideoCapturerTests.mm", 352 "objc/Framework/UnitTests/RTCCameraVideoCapturerTests.mm",
293 "objc/Framework/UnitTests/RTCConfigurationTest.mm", 353 "objc/Framework/UnitTests/RTCConfigurationTest.mm",
294 "objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm", 354 "objc/Framework/UnitTests/RTCDataChannelConfigurationTest.mm",
295 "objc/Framework/UnitTests/RTCIceCandidateTest.mm", 355 "objc/Framework/UnitTests/RTCIceCandidateTest.mm",
296 "objc/Framework/UnitTests/RTCIceServerTest.mm", 356 "objc/Framework/UnitTests/RTCIceServerTest.mm",
297 "objc/Framework/UnitTests/RTCMediaConstraintsTest.mm", 357 "objc/Framework/UnitTests/RTCMediaConstraintsTest.mm",
298 "objc/Framework/UnitTests/RTCPeerConnectionTest.mm", 358 "objc/Framework/UnitTests/RTCPeerConnectionTest.mm",
299 "objc/Framework/UnitTests/RTCSessionDescriptionTest.mm", 359 "objc/Framework/UnitTests/RTCSessionDescriptionTest.mm",
300 "objc/Framework/UnitTests/avformatmappertests.mm", 360 "objc/Framework/UnitTests/avformatmappertests.mm",
301 ] 361 ]
302 if (is_ios) {
303 sources += [ "objc/Framework/UnitTests/RTCMTLVideoViewTests.mm" ]
304 if (current_cpu != "arm64") {
305 sources += [ "objc/Framework/Classes/Metal/RTCMTLVideoView.m" ]
306 }
307 }
308
309 # TODO(tkchin): Cleanup this warning.
310 cflags = [ "-Wno-objc-property-no-attribute" ]
311 362
312 # |-ObjC| flag needed to make sure category method implementations 363 # |-ObjC| flag needed to make sure category method implementations
313 # are included: 364 # are included:
314 # https://developer.apple.com/library/mac/qa/qa1490/_index.html 365 # https://developer.apple.com/library/mac/qa/qa1490/_index.html
315 ldflags = [ "-ObjC" ] 366 ldflags = [ "-ObjC" ]
316 367
317 defines = [ "GTEST_RELATIVE_PATH" ] 368 defines = [ "GTEST_RELATIVE_PATH" ]
318 deps = [ 369 deps = [
319 ":rtc_sdk_peerconnection_objc", 370 ":rtc_sdk_peerconnection_module",
371 "..//system_wrappers:system_wrappers_default",
320 "../base:rtc_base_tests_utils", 372 "../base:rtc_base_tests_utils",
321 "//third_party/ocmock", 373 "//third_party/ocmock",
322 "//webrtc/system_wrappers:system_wrappers_default", 374 "//webrtc/system_wrappers:system_wrappers_default",
323 ] 375 ]
324 376
377 if (is_ios && rtc_use_metal_rendering) {
378 sources += [ "objc/Framework/UnitTests/RTCMTLVideoViewTests.mm" ]
379 deps += [ ":rtc_sdk_metal_module" ]
380 }
381
325 if (!build_with_chromium && is_clang) { 382 if (!build_with_chromium && is_clang) {
326 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163) . 383 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163) .
327 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] 384 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
328 } 385 }
329 } 386 }
330 } 387 }
331 388
332 if (is_ios) { 389 if (is_ios) {
333 ios_framework_bundle("rtc_sdk_framework_objc") { 390 ios_framework_bundle("rtc_sdk_framework_objc") {
334 info_plist = "objc/Framework/Info.plist" 391 info_plist = "objc/Framework/Info.plist"
335 output_name = "WebRTC" 392 output_name = "WebRTC"
336 393
337 common_objc_headers = [ 394 common_objc_headers = [
338 "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h", 395 "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
339 "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
340 "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
341 "objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
342 "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
343 "objc/Framework/Headers/WebRTC/RTCConfiguration.h", 396 "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
344 "objc/Framework/Headers/WebRTC/RTCDataChannel.h", 397 "objc/Framework/Headers/WebRTC/RTCDataChannel.h",
345 "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h", 398 "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
346 "objc/Framework/Headers/WebRTC/RTCDispatcher.h", 399 "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
347 "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h", 400 "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
348 "objc/Framework/Headers/WebRTC/RTCFieldTrials.h", 401 "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
349 "objc/Framework/Headers/WebRTC/RTCIceCandidate.h", 402 "objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
350 "objc/Framework/Headers/WebRTC/RTCIceServer.h", 403 "objc/Framework/Headers/WebRTC/RTCIceServer.h",
351 "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h", 404 "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
352 "objc/Framework/Headers/WebRTC/RTCLogging.h", 405 "objc/Framework/Headers/WebRTC/RTCLogging.h",
353 "objc/Framework/Headers/WebRTC/RTCMacros.h", 406 "objc/Framework/Headers/WebRTC/RTCMacros.h",
354 "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h", 407 "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
355 "objc/Framework/Headers/WebRTC/RTCMediaSource.h", 408 "objc/Framework/Headers/WebRTC/RTCMediaSource.h",
356 "objc/Framework/Headers/WebRTC/RTCMediaStream.h", 409 "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
357 "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h", 410 "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
358 "objc/Framework/Headers/WebRTC/RTCMetrics.h", 411 "objc/Framework/Headers/WebRTC/RTCMetrics.h",
359 "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h", 412 "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
360 "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
361 "objc/Framework/Headers/WebRTC/RTCPeerConnection.h", 413 "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
362 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h", 414 "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
363 "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h", 415 "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
364 "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h", 416 "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
365 "objc/Framework/Headers/WebRTC/RTCRtpParameters.h", 417 "objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
366 "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h", 418 "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
367 "objc/Framework/Headers/WebRTC/RTCRtpSender.h", 419 "objc/Framework/Headers/WebRTC/RTCRtpSender.h",
368 "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h", 420 "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
369 "objc/Framework/Headers/WebRTC/RTCSessionDescription.h", 421 "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
370 "objc/Framework/Headers/WebRTC/RTCTracing.h", 422 "objc/Framework/Headers/WebRTC/RTCTracing.h",
(...skipping 14 matching lines...) Expand all
385 public_headers += [ "objc/Framework/Headers/WebRTC/RTCFileLogger.h" ] 437 public_headers += [ "objc/Framework/Headers/WebRTC/RTCFileLogger.h" ]
386 } 438 }
387 439
388 ldflags = [ 440 ldflags = [
389 "-all_load", 441 "-all_load",
390 "-install_name", 442 "-install_name",
391 "@rpath/$output_name.framework/$output_name", 443 "@rpath/$output_name.framework/$output_name",
392 ] 444 ]
393 445
394 deps = [ 446 deps = [
395 ":rtc_sdk_peerconnection_objc", 447 ":rtc_sdk_peerconnection_module",
448 "../base:rtc_base_approved",
396 "../system_wrappers:field_trial_default", 449 "../system_wrappers:field_trial_default",
397 "../system_wrappers:metrics_default", 450 "../system_wrappers:metrics_default",
398 ] 451 ]
399 452
400 libs = [ 453 libs = [
401 "AVFoundation.framework", 454 "AVFoundation.framework",
402 "AudioToolbox.framework",
403 "CoreGraphics.framework", 455 "CoreGraphics.framework",
404 "CoreMedia.framework", 456 "CoreMedia.framework",
405 "GLKit.framework", 457 "GLKit.framework",
406 "VideoToolbox.framework",
407 ] 458 ]
408 459
409 configs += [ "..:common_objc" ] 460 configs += [ "..:common_objc" ]
410 461
411 public_configs = [ ":rtc_sdk_common_objc_config" ] 462 public_configs = [ ":rtc_sdk_common_objc_config" ]
412 463
413 if (!build_with_chromium && is_clang) { 464 if (!build_with_chromium && is_clang) {
414 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163) 465 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163)
415 configs -= [ "//build/config/clang:find_bad_constructs" ] 466 configs -= [ "//build/config/clang:find_bad_constructs" ]
416 } 467 }
417 } 468 }
418 } 469 }
419 470
420 rtc_static_library("rtc_sdk_objc") { 471 rtc_static_library("rtc_sdk_objc") {
421 complete_static_lib = true 472 complete_static_lib = true
422 deps = [ 473 deps = [
423 ":rtc_sdk_peerconnection_objc", 474 ":rtc_sdk_peerconnection_module",
424 "//webrtc/system_wrappers:field_trial_default", 475 "//webrtc/system_wrappers:field_trial_default",
425 "//webrtc/system_wrappers:metrics_default", 476 "//webrtc/system_wrappers:metrics_default",
426 ] 477 ]
427 } 478 }
428 479
429 rtc_static_library("rtc_sdk_corevideoframebuffer") { 480 rtc_static_library("rtc_sdk_corevideoframebuffer") {
430 sources = [ 481 sources = [
431 "objc/Framework/Classes/corevideo_frame_buffer.cc", 482 "objc/Framework/Classes/Video/corevideo_frame_buffer.cc",
432 "objc/Framework/Classes/corevideo_frame_buffer.h", 483 "objc/Framework/Classes/Video/corevideo_frame_buffer.h",
433 ] 484 ]
434 485
435 deps = [ 486 deps = [
436 "../base:rtc_base_approved", 487 "../base:rtc_base_approved",
437 "../common_video", 488 "../common_video",
438 ] 489 ]
439 490
440 libs = [ "CoreVideo.framework" ] 491 libs = [ "CoreVideo.framework" ]
441 } 492 }
442 493
443 rtc_static_library("webrtc_h264_video_toolbox") { 494 rtc_static_library("rtc_sdk_videotoolbox_module") {
444 sources = [ 495 sources = [
445 "objc/Framework/Classes/h264_video_toolbox_decoder.cc", 496 "objc/Framework/Classes/Videotoolbox/decoder.cc",
446 "objc/Framework/Classes/h264_video_toolbox_decoder.h", 497 "objc/Framework/Classes/Videotoolbox/decoder.h",
447 "objc/Framework/Classes/h264_video_toolbox_encoder.h", 498 "objc/Framework/Classes/Videotoolbox/encoder.h",
448 "objc/Framework/Classes/h264_video_toolbox_encoder.mm", 499 "objc/Framework/Classes/Videotoolbox/encoder.mm",
449 "objc/Framework/Classes/h264_video_toolbox_nalu.cc", 500 "objc/Framework/Classes/Videotoolbox/nalu_rewriter.cc",
450 "objc/Framework/Classes/h264_video_toolbox_nalu.h", 501 "objc/Framework/Classes/Videotoolbox/nalu_rewriter.h",
502 "objc/Framework/Classes/Videotoolbox/videocodecfactory.cc",
503 "objc/Framework/Classes/Videotoolbox/videocodecfactory.h",
451 ] 504 ]
452 505
453 configs += [ "//webrtc:common_objc" ] 506 configs += [ "//webrtc:common_objc" ]
454 507
455 deps = [ 508 deps = [
456 ":rtc_sdk_common_objc", 509 ":rtc_sdk_common_module",
457 ":rtc_sdk_corevideoframebuffer", 510 ":rtc_sdk_corevideoframebuffer",
458 "../api:video_frame_api", 511 ":rtc_sdk_ui_module",
459 "../base:rtc_base_approved", 512 "../base:rtc_base_approved",
460 "../common_video", 513 "//webrtc/common_video",
461 "../media:rtc_media_base", 514 "//webrtc/media:rtc_media",
462 "../modules:module_api", 515 "//webrtc/media:rtc_media_base",
463 "../modules/video_coding:video_coding_utility", 516 "//webrtc/modules:module_api",
464 "../modules/video_coding:webrtc_h264", 517 "//webrtc/modules/video_coding:video_coding_utility",
465 "../system_wrappers", 518 "//webrtc/modules/video_coding:webrtc_h264",
519 "//webrtc/system_wrappers",
466 ] 520 ]
467 521
468 libs = [ 522 libs = [
469 "CoreFoundation.framework", 523 "CoreFoundation.framework",
470 "CoreMedia.framework", 524 "CoreMedia.framework",
471 "CoreVideo.framework", 525 "CoreVideo.framework",
472 "VideoToolbox.framework", 526 "VideoToolbox.framework",
473 ] 527 ]
474 528
475 if (!build_with_chromium && is_clang) { 529 if (!build_with_chromium && is_clang) {
476 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). 530 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
477 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] 531 suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
478 } 532 }
479 533
480 if (rtc_build_libyuv) { 534 if (rtc_build_libyuv) {
481 deps += [ "$rtc_libyuv_dir" ] 535 deps += [ "$rtc_libyuv_dir" ]
482 public_deps = [ 536 public_deps = [
483 "$rtc_libyuv_dir", 537 "$rtc_libyuv_dir",
484 ] 538 ]
485 } else { 539 } else {
486 # Need to add a directory normally exported by libyuv. 540 # Need to add a directory normally exported by libyuv.
487 include_dirs = [ "$rtc_libyuv_dir/include" ] 541 include_dirs = [ "$rtc_libyuv_dir/include" ]
488 } 542 }
489 } 543 }
490 } 544 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698