Fix issues found by gn check.

It turns out that some headers were not owned by any targets.
These were:
RTCVideoCodec.h
RTCVideoCodecFactory.h
RTCVideoCodecH264.h
RTCVideoEncoderVP8.h
RTCVideoDecoderVP8.h
RTCVideoEncoderVP9.h
RTCVideoDecoderVP9.h

And some were owned by multiple targets, namely:
RTCPeerConnectionFactory+Native.h
RTCPeerConnectionFactory+Private.h
RTCVideoFrameBuffer.h

These have all been moved to their appropriate homes.

This CL also fixes a lot of cyclic interdependencies in the iOS sdk build files.

Bug: webrtc:8855
Change-Id: I1b7ddb6c2a93868d1510ccf0a64bd3dd169ec3e7
Reviewed-on: https://webrtc-review.googlesource.com/49060
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22052}
This commit is contained in:
Kári Tristan Helgason 2018-02-16 10:49:22 +01:00 committed by Commit Bot
parent ad148a36ea
commit 99bf77c851
5 changed files with 184 additions and 135 deletions

4
.gn
View File

@ -39,9 +39,7 @@ check_targets = [
"//pc/*", "//pc/*",
"//rtc_base/*", "//rtc_base/*",
"//rtc_tools/*", "//rtc_tools/*",
"//sdk/*",
# TODO(bugs.webrtc.org/8850): Remove "/android" to re-enable on objc.
"//sdk/android/*",
"//stats/*", "//stats/*",
"//system_wrappers/*", "//system_wrappers/*",
"//test/*", "//test/*",

View File

@ -179,8 +179,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
if (is_ios) { if (is_ios) {
deps = [ deps = [
":AppRTCMobile_ios_frameworks", "../sdk:framework_objc",
"../sdk:common_objc",
"../system_wrappers:field_trial_default", "../system_wrappers:field_trial_default",
"../system_wrappers:runtime_enabled_features_default", "../system_wrappers:runtime_enabled_features_default",
] ]
@ -260,7 +259,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
"../sdk:framework_objc", "../sdk:framework_objc",
] ]
} else { } else {
deps += [ "../sdk:peerconnection_objc" ] deps += [ "../sdk:peerconnectionfactory_base_objc" ]
} }
libs = [ "QuartzCore.framework" ] libs = [ "QuartzCore.framework" ]
} }
@ -377,8 +376,11 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
deps = [ deps = [
":apprtc_common", ":apprtc_common",
":apprtc_signaling", ":apprtc_signaling",
"../sdk:default_codec_factory_objc",
"../sdk:metal_objc", "../sdk:metal_objc",
"../sdk:ui_objc", "../sdk:ui_objc",
"../sdk:videocodec_objc",
"../sdk:videotoolbox_objc",
] ]
} }

View File

@ -487,8 +487,7 @@ if (rtc_include_tests) {
"../../rtc_base:rtc_base_approved", "../../rtc_base:rtc_base_approved",
"../../sdk:common_objc", "../../sdk:common_objc",
"../../sdk:native_api", "../../sdk:native_api",
"../../sdk:peerconnection_objc", "../../sdk:peerconnectionfactory_base_objc",
"../../sdk:peerconnectionfactory_objc",
"../../sdk:videotoolbox_objc", "../../sdk:videotoolbox_objc",
"../../sdk:videotracksource_objc", "../../sdk:videotracksource_objc",
] ]

View File

@ -93,6 +93,7 @@ if (is_ios || is_mac) {
} }
if (!build_with_chromium) { if (!build_with_chromium) {
if (is_ios) {
rtc_static_library("audio_objc") { rtc_static_library("audio_objc") {
sources = [ sources = [
"objc/Framework/Classes/Audio/RTCAudioSession+Configuration.mm", "objc/Framework/Classes/Audio/RTCAudioSession+Configuration.mm",
@ -118,23 +119,20 @@ if (is_ios || is_mac) {
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
} }
} }
}
# Keep videotracksource related code in a separate target so that we can # Keep videotracksource related code in a separate target so that we can
# build PeerConnectionFactory without audio/video support when that's called # build PeerConnectionFactory without audio/video support when that's called
# for. # for.
rtc_static_library("videotracksource_objc") { rtc_static_library("videotracksource_objc") {
sources = [ sources = [
"objc/Framework/Classes/Video/RTCCVPixelBuffer.mm",
"objc/Framework/Classes/Video/RTCI420Buffer+Private.h",
"objc/Framework/Classes/Video/RTCI420Buffer.mm",
"objc/Framework/Classes/Video/objcvideotracksource.h", "objc/Framework/Classes/Video/objcvideotracksource.h",
"objc/Framework/Classes/Video/objcvideotracksource.mm", "objc/Framework/Classes/Video/objcvideotracksource.mm",
"objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
] ]
deps = [ deps = [
":common_objc", ":common_objc",
":native_video", ":videoframebuffer_objc",
"../api:libjingle_peerconnection_api", "../api:libjingle_peerconnection_api",
"../api:video_frame_api", "../api:video_frame_api",
"../api:video_frame_api_i420", "../api:video_frame_api_i420",
@ -153,6 +151,32 @@ if (is_ios || is_mac) {
} }
} }
rtc_static_library("videoframebuffer_objc") {
sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoFrame+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm",
"objc/Framework/Classes/Video/RTCCVPixelBuffer.mm",
"objc/Framework/Classes/Video/RTCI420Buffer+Private.h",
"objc/Framework/Classes/Video/RTCI420Buffer.mm",
"objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
"objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
"objc/Framework/Native/api/video_frame_buffer.h",
"objc/Framework/Native/api/video_frame_buffer.mm",
"objc/Framework/Native/src/objc_frame_buffer.h",
"objc/Framework/Native/src/objc_frame_buffer.mm",
]
deps = [
":common_objc",
"//api:video_frame_api",
"//api:video_frame_api_i420",
"//common_video",
"//rtc_base:checks",
"//rtc_base:rtc_base_approved",
"//third_party/libyuv",
]
configs += [ "..:common_objc" ]
}
rtc_static_library("video_objc") { rtc_static_library("video_objc") {
sources = [ sources = [
"objc/Framework/Classes/Video/AVCaptureSession+DevicePosition.h", "objc/Framework/Classes/Video/AVCaptureSession+DevicePosition.h",
@ -164,6 +188,7 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/Video/RTCOpenGLDefines.h", "objc/Framework/Classes/Video/RTCOpenGLDefines.h",
"objc/Framework/Classes/Video/RTCShader.h", "objc/Framework/Classes/Video/RTCShader.h",
"objc/Framework/Classes/Video/RTCShader.mm", "objc/Framework/Classes/Video/RTCShader.mm",
"objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
] ]
libs = [] libs = []
if (is_ios) { if (is_ios) {
@ -177,8 +202,6 @@ if (is_ios || is_mac) {
"QuartzCore.framework", "QuartzCore.framework",
] ]
} else if (is_mac) { } else if (is_mac) {
sources += []
libs += [ libs += [
"CoreMedia.framework", "CoreMedia.framework",
"CoreVideo.framework", "CoreVideo.framework",
@ -188,7 +211,9 @@ if (is_ios || is_mac) {
deps = [ deps = [
":common_objc", ":common_objc",
":mediaconstraints_objc",
":native_video", ":native_video",
":videoframebuffer_objc",
":videotracksource_objc", ":videotracksource_objc",
"../api:libjingle_peerconnection_api", "../api:libjingle_peerconnection_api",
"../api:optional", "../api:optional",
@ -226,7 +251,9 @@ if (is_ios || is_mac) {
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
deps = [ deps = [
":common_objc", ":common_objc",
":peerconnection_objc", ":video_objc",
":videocapture_objc",
":videoframebuffer_objc",
] ]
} }
@ -259,7 +286,10 @@ if (is_ios || is_mac) {
"MetalKit.framework", "MetalKit.framework",
] ]
deps = [ deps = [
":common_objc",
":peerconnectionfactory_base_objc",
":video_objc", ":video_objc",
":videoframebuffer_objc",
"../api:video_frame_api", "../api:video_frame_api",
"../rtc_base:checks", "../rtc_base:checks",
"../rtc_base:rtc_base_approved", "../rtc_base:rtc_base_approved",
@ -269,11 +299,13 @@ if (is_ios || is_mac) {
} }
} }
rtc_static_library("peerconnection_objc") { rtc_static_library("videocapture_objc") {
visibility = [ "*" ] visibility = [ "*" ]
sources = [ sources = [
"objc/Framework/Classes/PeerConnection/RTCCameraVideoCapturer.m", "objc/Framework/Classes/PeerConnection/RTCCameraVideoCapturer.m",
"objc/Framework/Classes/PeerConnection/RTCVideoCapturer.m",
"objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h", "objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h",
"objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
] ]
if (is_ios) { if (is_ios) {
sources += [ sources += [
@ -283,10 +315,6 @@ if (is_ios || is_mac) {
} }
libs = [ "AVFoundation.framework" ] libs = [ "AVFoundation.framework" ]
if (is_ios) {
libs += [ "CoreGraphics.framework" ]
}
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
public_configs = [ ":common_config_objc" ] public_configs = [ ":common_config_objc" ]
@ -299,56 +327,38 @@ if (is_ios || is_mac) {
deps = [ deps = [
":common_objc", ":common_objc",
":peerconnectionfactory_objc",
":video_objc", ":video_objc",
"../api:video_frame_api", ":videoframebuffer_objc",
"../media:rtc_media_base",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
] ]
if (rtc_use_metal_rendering) {
deps += [ ":metal_objc" ]
}
} }
rtc_static_library("peerconnectionfactory_objc") { rtc_static_library("videocodec_objc") {
sources = [] sources = [
deps = [] "objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm",
sources += [ "objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h", "objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm", "objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm",
"objc/Framework/Headers/WebRTC/RTCVideoCodec.h",
"objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h",
"objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h",
] ]
public_configs = [ ":common_config_objc" ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin # Suppress warnings from the Chromium Clang plugin
# (bugs.webrtc.org/163). # (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
} }
visibility = [ "*" ]
deps += [ public_configs = [ ":common_config_objc" ]
deps = [
":common_objc", ":common_objc",
":default_codec_factory_objc",
":native_api",
":native_video",
":peerconnectionfactory_base_objc",
":video_objc",
":videotoolbox_objc",
":videotracksource_objc",
"../api:libjingle_peerconnection_api",
"../api:video_frame_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/video_codecs:video_codecs_api", "../api/video_codecs:video_codecs_api",
"../media:rtc_audio_video", "../common_video",
"../media:rtc_media_base", "../media:rtc_media_base",
"../pc:create_pc_factory", "../modules:module_api",
"../pc:peerconnection", "../modules/video_coding:video_codec_interface",
"../rtc_base:rtc_base", "../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_api", "../system_wrappers:field_trial_api",
] ]
} }
@ -361,6 +371,8 @@ if (is_ios || is_mac) {
deps = [ deps = [
":common_objc", ":common_objc",
":native_video",
":videocodec_objc",
] ]
if (rtc_use_builtin_sw_codecs) { if (rtc_use_builtin_sw_codecs) {
deps += [ deps += [
@ -371,8 +383,11 @@ if (is_ios || is_mac) {
} }
rtc_static_library("vp8") { rtc_static_library("vp8") {
visibility = [ "*" ]
sources = [ sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP8.mm", "objc/Framework/Classes/PeerConnection/RTCVideoCodecVP8.mm",
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
"objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h",
] ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
@ -382,15 +397,18 @@ if (is_ios || is_mac) {
} }
deps = [ deps = [
":peerconnectionfactory_base_objc", ":native_video",
"../modules/video_coding:webrtc_vp8", "../modules/video_coding:webrtc_vp8",
"../system_wrappers:metrics_default", "../system_wrappers:metrics_default",
] ]
} }
rtc_static_library("vp9") { rtc_static_library("vp9") {
visibility = [ "*" ]
sources = [ sources = [
"objc/Framework/Classes/PeerConnection/RTCVideoCodecVP9.mm", "objc/Framework/Classes/PeerConnection/RTCVideoCodecVP9.mm",
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
"objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
] ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
@ -400,7 +418,7 @@ if (is_ios || is_mac) {
} }
deps = [ deps = [
":peerconnectionfactory_base_objc", ":native_video",
"../modules/video_coding:webrtc_vp9", "../modules/video_coding:webrtc_vp9",
"../system_wrappers:metrics_default", "../system_wrappers:metrics_default",
] ]
@ -419,9 +437,7 @@ if (is_ios || is_mac) {
defines = [ "HAVE_NO_MEDIA" ] defines = [ "HAVE_NO_MEDIA" ]
sources = [ sources = [
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h", "objc/Framework/Classes/Common/noop.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
] ]
public_configs = [ ":common_config_objc" ] public_configs = [ ":common_config_objc" ]
@ -441,6 +457,25 @@ if (is_ios || is_mac) {
] ]
} }
rtc_static_library("mediaconstraints_objc") {
sources = [
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin
# (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
public_configs = [ ":common_config_objc" ]
deps = [
":common_objc",
"../api:libjingle_peerconnection_api",
]
}
rtc_static_library("peerconnectionfactory_base_objc") { rtc_static_library("peerconnectionfactory_base_objc") {
sources = [ sources = [
"objc/Framework/Classes/PeerConnection/RTCAudioSource+Private.h", "objc/Framework/Classes/PeerConnection/RTCAudioSource+Private.h",
@ -456,7 +491,6 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration.mm", "objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration.mm",
"objc/Framework/Classes/PeerConnection/RTCDtmfSender+Private.h", "objc/Framework/Classes/PeerConnection/RTCDtmfSender+Private.h",
"objc/Framework/Classes/PeerConnection/RTCDtmfSender.mm", "objc/Framework/Classes/PeerConnection/RTCDtmfSender.mm",
"objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm",
"objc/Framework/Classes/PeerConnection/RTCIceCandidate+Private.h", "objc/Framework/Classes/PeerConnection/RTCIceCandidate+Private.h",
"objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm", "objc/Framework/Classes/PeerConnection/RTCIceCandidate.mm",
"objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h", "objc/Framework/Classes/PeerConnection/RTCIceServer+Private.h",
@ -465,8 +499,6 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/PeerConnection/RTCIntervalRange.mm", "objc/Framework/Classes/PeerConnection/RTCIntervalRange.mm",
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h", "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h",
"objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm", "objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport.mm",
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints+Private.h",
"objc/Framework/Classes/PeerConnection/RTCMediaConstraints.mm",
"objc/Framework/Classes/PeerConnection/RTCMediaSource+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaSource+Private.h",
"objc/Framework/Classes/PeerConnection/RTCMediaSource.mm", "objc/Framework/Classes/PeerConnection/RTCMediaSource.mm",
"objc/Framework/Classes/PeerConnection/RTCMediaStream+Private.h", "objc/Framework/Classes/PeerConnection/RTCMediaStream+Private.h",
@ -481,13 +513,15 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/PeerConnection/RTCPeerConnection+Private.h", "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnection+Stats.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnection+Stats.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnection.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions+Private.h", "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions+Private.h",
"objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions.mm", "objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpCodecParameters.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpEncodingParameters.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h",
"objc/Framework/Classes/PeerConnection/RTCRtpParameters.mm", "objc/Framework/Classes/PeerConnection/RTCRtpParameters.mm",
"objc/Framework/Classes/PeerConnection/RTCRtpReceiver+Private.h", "objc/Framework/Classes/PeerConnection/RTCRtpReceiver+Private.h",
@ -498,12 +532,6 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/PeerConnection/RTCSessionDescription+Private.h", "objc/Framework/Classes/PeerConnection/RTCSessionDescription+Private.h",
"objc/Framework/Classes/PeerConnection/RTCSessionDescription.mm", "objc/Framework/Classes/PeerConnection/RTCSessionDescription.mm",
"objc/Framework/Classes/PeerConnection/RTCTracing.mm", "objc/Framework/Classes/PeerConnection/RTCTracing.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoCapturer.m",
"objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoFrame+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoFrame.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h",
"objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.mm", "objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.mm",
@ -511,10 +539,6 @@ if (is_ios || is_mac) {
"objc/Framework/Classes/PeerConnection/RTCVideoSource.mm", "objc/Framework/Classes/PeerConnection/RTCVideoSource.mm",
"objc/Framework/Classes/PeerConnection/RTCVideoTrack+Private.h", "objc/Framework/Classes/PeerConnection/RTCVideoTrack+Private.h",
"objc/Framework/Classes/PeerConnection/RTCVideoTrack.mm", "objc/Framework/Classes/PeerConnection/RTCVideoTrack.mm",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.mm",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm",
"objc/Framework/Headers/WebRTC/RTCAudioSource.h", "objc/Framework/Headers/WebRTC/RTCAudioSource.h",
"objc/Framework/Headers/WebRTC/RTCAudioTrack.h", "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
"objc/Framework/Headers/WebRTC/RTCConfiguration.h", "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
@ -525,7 +549,6 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCIceServer.h", "objc/Framework/Headers/WebRTC/RTCIceServer.h",
"objc/Framework/Headers/WebRTC/RTCIntervalRange.h", "objc/Framework/Headers/WebRTC/RTCIntervalRange.h",
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h", "objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
"objc/Framework/Headers/WebRTC/RTCMediaSource.h", "objc/Framework/Headers/WebRTC/RTCMediaSource.h",
"objc/Framework/Headers/WebRTC/RTCMediaStream.h", "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h", "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
@ -542,17 +565,13 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCSSLAdapter.h", "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
"objc/Framework/Headers/WebRTC/RTCSessionDescription.h", "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
"objc/Framework/Headers/WebRTC/RTCTracing.h", "objc/Framework/Headers/WebRTC/RTCTracing.h",
"objc/Framework/Headers/WebRTC/RTCVideoCapturer.h",
"objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
"objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h", "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
"objc/Framework/Headers/WebRTC/RTCVideoSource.h", "objc/Framework/Headers/WebRTC/RTCVideoSource.h",
"objc/Framework/Headers/WebRTC/RTCVideoTrack.h", "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
"objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
] ]
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
visibility = [ "*" ]
public_configs = [ ":common_config_objc" ] public_configs = [ ":common_config_objc" ]
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
@ -563,8 +582,12 @@ if (is_ios || is_mac) {
deps = [ deps = [
":common_objc", ":common_objc",
":mediaconstraints_objc",
":native_api", ":native_api",
":native_video", ":native_video",
":video_objc",
":videocodec_objc",
":videoframebuffer_objc",
":videotracksource_objc", ":videotracksource_objc",
"../api:libjingle_peerconnection_api", "../api:libjingle_peerconnection_api",
"../api:video_frame_api", "../api:video_frame_api",
@ -573,6 +596,7 @@ if (is_ios || is_mac) {
"../media:rtc_media_base", "../media:rtc_media_base",
"../modules:module_api", "../modules:module_api",
"../modules/video_coding:video_codec_interface", "../modules/video_coding:video_codec_interface",
"../pc:create_pc_factory",
"../pc:peerconnection", "../pc:peerconnection",
"../rtc_base:checks", "../rtc_base:checks",
"../rtc_base:rtc_base", "../rtc_base:rtc_base",
@ -594,21 +618,10 @@ if (is_ios || is_mac) {
"objc/Framework/UnitTests/RTCFileVideoCapturer_xctest.mm", "objc/Framework/UnitTests/RTCFileVideoCapturer_xctest.mm",
] ]
if (current_cpu == "arm64" || use_ios_simulator) {
sources += [ "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm" ]
}
if (use_ios_simulator) {
# Only include this file on simulator, as it's already
# included in device builds.
sources += [ "objc/Framework/Classes/Metal/RTCMTLVideoView.m" ]
libs = [ "CoreVideo.framework" ]
}
deps = [ deps = [
":common_objc", ":common_objc",
":framework_objc", ":framework_objc",
":peerconnection_objc", ":videocapture_objc",
":peerconnectionfactory_objc",
":videotoolbox_objc", ":videotoolbox_objc",
":videotracksource_objc", ":videotracksource_objc",
"../../system_wrappers:system_wrappers_default", "../../system_wrappers:system_wrappers_default",
@ -617,10 +630,17 @@ if (is_ios || is_mac) {
"../rtc_base:rtc_base", "../rtc_base:rtc_base",
"../rtc_base:rtc_base_tests_utils", "../rtc_base:rtc_base_tests_utils",
] ]
if (rtc_use_metal_rendering) {
sources += [ "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm" ]
deps += [ ":metal_objc" ]
}
public_deps = [ public_deps = [
"//build/config/ios:xctest", "//build/config/ios:xctest",
"//third_party/ocmock", "//third_party/ocmock",
] ]
include_dirs += [ "$root_out_dir/WebRTC.framework/Headers/" ] include_dirs += [ "$root_out_dir/WebRTC.framework/Headers/" ]
} }
@ -681,9 +701,14 @@ if (is_ios || is_mac) {
defines = [ "GTEST_RELATIVE_PATH" ] defines = [ "GTEST_RELATIVE_PATH" ]
deps = [ deps = [
":common_objc", ":common_objc",
":mediaconstraints_objc",
":native_api",
":native_video", ":native_video",
":peerconnection_objc", ":peerconnectionfactory_base_objc",
":peerconnectionfactory_objc", ":video_objc",
":videocapture_objc",
":videocodec_objc",
":videoframebuffer_objc",
":videotoolbox_objc", ":videotoolbox_objc",
":videotracksource_objc", ":videotracksource_objc",
"../../system_wrappers:system_wrappers_default", "../../system_wrappers:system_wrappers_default",
@ -697,6 +722,7 @@ if (is_ios || is_mac) {
if (is_ios) { if (is_ios) {
sources += [ "objc/Framework/UnitTests/RTCAudioSessionTest.mm" ] sources += [ "objc/Framework/UnitTests/RTCAudioSessionTest.mm" ]
deps += [ ":audio_objc" ]
} }
if (!build_with_chromium && is_clang) { if (!build_with_chromium && is_clang) {
@ -762,10 +788,6 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCVideoViewShading.h", "objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
"objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h", "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
] ]
if (rtc_use_metal_rendering) {
common_objc_headers +=
[ "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h" ]
}
if (rtc_use_builtin_sw_codecs) { if (rtc_use_builtin_sw_codecs) {
common_objc_headers += [ common_objc_headers += [
"objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h", "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
@ -774,20 +796,16 @@ if (is_ios || is_mac) {
"objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h", "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
] ]
} }
sources = common_objc_headers
public_headers = common_objc_headers
if (!build_with_chromium) { if (!build_with_chromium) {
sources += [ common_objc_headers += [
"objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h",
]
public_headers += [
"objc/Framework/Headers/WebRTC/RTCCallbackLogger.h", "objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
"objc/Framework/Headers/WebRTC/RTCFileLogger.h", "objc/Framework/Headers/WebRTC/RTCFileLogger.h",
] ]
} }
sources = common_objc_headers
public_headers = common_objc_headers
ldflags = [ ldflags = [
"-all_load", "-all_load",
"-install_name", "-install_name",
@ -796,13 +814,25 @@ if (is_ios || is_mac) {
deps = [ deps = [
":audio_objc", ":audio_objc",
":peerconnection_objc", ":common_objc",
":default_codec_factory_objc",
":native_api",
":native_video",
":peerconnectionfactory_base_objc",
":ui_objc", ":ui_objc",
":videocapture_objc",
":videocodec_objc",
":videotoolbox_objc",
"../rtc_base:rtc_base_approved", "../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default", "../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default", "../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default", "../system_wrappers:runtime_enabled_features_default",
] ]
if (rtc_use_metal_rendering) {
common_objc_headers +=
[ "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h" ]
deps += [ ":metal_objc" ]
}
libs = [ libs = [
"AVFoundation.framework", "AVFoundation.framework",
@ -831,8 +861,6 @@ if (is_ios || is_mac) {
"objc/Framework/Native/api/video_decoder_factory.mm", "objc/Framework/Native/api/video_decoder_factory.mm",
"objc/Framework/Native/api/video_encoder_factory.h", "objc/Framework/Native/api/video_encoder_factory.h",
"objc/Framework/Native/api/video_encoder_factory.mm", "objc/Framework/Native/api/video_encoder_factory.mm",
"objc/Framework/Native/api/video_frame_buffer.h",
"objc/Framework/Native/api/video_frame_buffer.mm",
] ]
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
@ -847,6 +875,8 @@ if (is_ios || is_mac) {
deps = [ deps = [
":native_video", ":native_video",
":videocodec_objc",
":videoframebuffer_objc",
"../api/video_codecs:video_codecs_api", "../api/video_codecs:video_codecs_api",
"../common_video", "../common_video",
"../rtc_base:rtc_base", "../rtc_base:rtc_base",
@ -855,8 +885,10 @@ if (is_ios || is_mac) {
rtc_static_library("native_video") { rtc_static_library("native_video") {
sources = [ sources = [
"objc/Framework/Native/src/objc_frame_buffer.h", "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h",
"objc/Framework/Native/src/objc_frame_buffer.mm", "objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.mm",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h",
"objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm",
"objc/Framework/Native/src/objc_video_decoder_factory.h", "objc/Framework/Native/src/objc_video_decoder_factory.h",
"objc/Framework/Native/src/objc_video_decoder_factory.mm", "objc/Framework/Native/src/objc_video_decoder_factory.mm",
"objc/Framework/Native/src/objc_video_encoder_factory.h", "objc/Framework/Native/src/objc_video_encoder_factory.h",
@ -875,6 +907,9 @@ if (is_ios || is_mac) {
deps = [ deps = [
":common_objc", ":common_objc",
":videocodec_objc",
":videoframebuffer_objc",
":videotracksource_objc",
"../api:video_frame_api", "../api:video_frame_api",
"../api/video_codecs:video_codecs_api", "../api/video_codecs:video_codecs_api",
"../common_video", "../common_video",
@ -890,8 +925,8 @@ if (is_ios || is_mac) {
rtc_static_library("rtc_sdk_objc") { rtc_static_library("rtc_sdk_objc") {
complete_static_lib = true complete_static_lib = true
deps = [ deps = [
":peerconnection_objc",
":ui_objc", ":ui_objc",
":videocapture_objc",
"../system_wrappers:field_trial_default", "../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default", "../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default", "../system_wrappers:runtime_enabled_features_default",
@ -921,10 +956,10 @@ if (is_ios || is_mac) {
} }
rtc_static_library("videotoolbox_objc") { rtc_static_library("videotoolbox_objc") {
visibility = [ "*" ]
sources = [ sources = [
"objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm", "objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm",
"objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm", "objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm",
"objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h",
] ]
configs += [ "..:common_objc" ] configs += [ "..:common_objc" ]
@ -934,6 +969,8 @@ if (is_ios || is_mac) {
":native_api", ":native_api",
":video_objc", ":video_objc",
":video_toolbox_cc", ":video_toolbox_cc",
":videocodec_objc",
":videoframebuffer_objc",
":videotracksource_objc", ":videotracksource_objc",
"../api:video_frame_api", "../api:video_frame_api",
"../api/video_codecs:video_codecs_api", "../api/video_codecs:video_codecs_api",

View File

@ -0,0 +1,13 @@
/*
* Copyright 2015 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// This file is only needed to make ninja happy on some platforms.
// On some platforms it is not possible to link an rtc_static_library
// without any source file listed in the GN target.