forked from signalapp/ringrtc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSignalRingRTC.podspec
99 lines (84 loc) · 4.28 KB
/
SignalRingRTC.podspec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#
# Be sure to run `pod lib lint SignalRingRTC.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = "SignalRingRTC"
s.version = "2.26.2"
s.summary = "A Swift & Objective-C library used by the Signal iOS app for WebRTC interactions."
s.description = <<-DESC
A Swift & Objective-C library used by the Signal iOS app for WebRTC interactions."
DESC
s.license = 'AGPLv3'
s.homepage = 'https://github.com/signalapp/ringrtc'
s.source = { git: 'https://github.com/signalapp/ringrtc.git', tag: "v#{s.version.to_s}" }
s.author = { 'Calling Team': '[email protected]' }
s.social_media_url = 'https://twitter.com/signalapp'
# Newer versions of Xcode don't correctly handle command-line testing on older simulators.
s.platform = :ios, ENV.include?('RINGRTC_POD_TESTING') ? '14' : '12.2'
s.requires_arc = true
s.swift_version = '5'
s.source_files = 'src/ios/SignalRingRTC/SignalRingRTC/**/*.{h,m,swift}', 'out/release/libringrtc/*.h'
s.public_header_files = 'src/ios/SignalRingRTC/SignalRingRTC/**/*.h'
s.private_header_files = 'out/release/libringrtc/*.h'
s.module_map = 'src/ios/SignalRingRTC/SignalRingRTC/SignalRingRTC.modulemap'
s.preserve_paths = [
'out/release/libringrtc', # a symlink controlled by bin/set-up-for-cocoapods
'bin/set-up-for-cocoapods',
'bin/fetch-artifact.py', # env.sh has extra dependencies, so we go directly to the Python script
'config/version.sh',
'config/version.properties',
'prebuild-checksum',
]
s.dependency 'SignalCoreKit'
s.pod_target_xcconfig = {
# Make sure we link the static library, not a dynamic one.
# Use an extra level of indirection because CocoaPods messes with OTHER_LDFLAGS too.
'LIBRINGRTC_IF_NEEDED' => '$(PODS_TARGET_SRCROOT)/out/release/libringrtc/$(CARGO_BUILD_TARGET)/libringrtc.a',
'OTHER_LDFLAGS' => '$(LIBRINGRTC_IF_NEEDED)',
'RINGRTC_PREBUILD_DIR' => "$(USER_LIBRARY_DIR)/Caches/org.signal.ringrtc/prebuild-#{s.version.to_s}",
'CARGO_BUILD_TARGET[sdk=iphonesimulator*][arch=arm64]' => 'aarch64-apple-ios-sim',
'CARGO_BUILD_TARGET[sdk=iphonesimulator*][arch=*]' => 'x86_64-apple-ios',
'CARGO_BUILD_TARGET[sdk=iphoneos*]' => 'aarch64-apple-ios',
# Presently, there's no special SDK or arch for maccatalyst,
# so we need to hackily use the "IS_MACCATALYST" build flag
# to set the appropriate cargo target
'CARGO_BUILD_TARGET_MAC_CATALYST_ARM_' => 'aarch64-apple-darwin',
'CARGO_BUILD_TARGET_MAC_CATALYST_ARM_YES' => 'aarch64-apple-ios-macabi',
'CARGO_BUILD_TARGET[sdk=macosx*][arch=arm64]' => '$(CARGO_BUILD_TARGET_MAC_CATALYST_ARM_$(IS_MACCATALYST))',
'CARGO_BUILD_TARGET_MAC_CATALYST_X86_' => 'x86_64-apple-darwin',
'CARGO_BUILD_TARGET_MAC_CATALYST_X86_YES' => 'x86_64-apple-ios-macabi',
'CARGO_BUILD_TARGET[sdk=macosx*][arch=*]' => '$(CARGO_BUILD_TARGET_MAC_CATALYST_X86_$(IS_MACCATALYST))',
}
s.script_phases = [
{ name: 'Check prebuild',
execution_position: :before_compile,
input_files: ['$(PODS_TARGET_SRCROOT)/prebuild-checksum', '$(RINGRTC_PREBUILD_DIR)/prebuild-checksum'],
output_files: ['$(DERIVED_FILE_DIR)/prebuild-checksum'],
script: %q(
set -euo pipefail
if [[ ! -f "${SCRIPT_INPUT_FILE_0}" ]]; then
# Local development, ignore
exit
elif ! diff -q "${SCRIPT_INPUT_FILE_0}" "${SCRIPT_INPUT_FILE_1}"; then
# Why not run it now? Because Xcode may have already processed some of the files.
echo 'error: Please run Pods/SignalRingRTC/bin/set-up-for-cocoapods' >&2
echo 'note: If you are in the Signal iOS repo, you can use `make dependencies`' >&2
exit 1
fi
cp "${SCRIPT_INPUT_FILE_0}" "${SCRIPT_OUTPUT_FILE_0}"
),
},
]
s.test_spec 'Tests' do |test_spec|
test_spec.source_files = 'src/ios/SignalRingRTC/SignalRingRTCTests/**/*.{h,m,swift}'
test_spec.dependency 'Nimble'
end
s.subspec 'WebRTC' do |webrtc|
webrtc.vendored_frameworks = 'out/release/WebRTC.xcframework'
end
s.prepare_command = 'bin/set-up-for-cocoapods'
end