Skip to content

Commit 1cbaefb

Browse files
committed
Add macos support to pod.
1 parent 8ac525b commit 1cbaefb

File tree

4 files changed

+47
-10
lines changed

4 files changed

+47
-10
lines changed

.cargo/config

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,15 @@ rustflags = [
3333
rustflags = [
3434
"-C", "link-arg=-miphonesimulator-version-min=14.0",
3535
]
36+
37+
38+
[target.x86_64-apple-darwin]
39+
rustflags = [
40+
"-C", "link-arg=-mmacosx-version-min=10.13",
41+
]
42+
43+
[target.aarch64-apple-darwin]
44+
rustflags = [
45+
"-C", "link-arg=-mmacosx-version-min=10.13",
46+
]
47+

.github/workflows/ios.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,21 @@ jobs:
2020
rustup toolchain install nightly-2023-08-28-x86_64-apple-darwin
2121
rustup component add rust-src --toolchain nightly-2023-08-28-x86_64-apple-darwin
2222
rustup target add \
23+
x86_64-apple-darwin \
24+
aarch64-apple-darwin \
2325
aarch64-apple-ios \
2426
aarch64-apple-ios-sim \
2527
x86_64-apple-ios
2628
27-
- name: Build iOS Pod
29+
- name: setup-cocoapods
30+
uses: maxim-lobanov/setup-cocoapods@v1
31+
with:
32+
version: 1.12.1
33+
34+
- name: Build iOS & macOS xcframework
2835
run: |
2936
./build-pod.sh
37+
38+
- name: Lint pod
39+
run: |
40+
pod lib lint

build-pod.sh

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,32 @@ function createXcframework() {
2929
</plist>
3030
EOF
3131
)
32-
printf "\n\n\t\t===================== create ios device framework =====================\n\n"
32+
echo "===================== create ios device framework ====================="
3333
mkdir -p "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework"
3434
echo "${plist}" > "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework/Info.plist"
3535
cp -f "./target/aarch64-apple-ios/release/libpowersync.dylib" "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework/powersync-sqlite-core"
3636
install_name_tool -id "@rpath/powersync-sqlite-core.framework/powersync-sqlite-core" "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework/powersync-sqlite-core"
3737

38-
printf "\n\n\t\t===================== create ios simulator framework =====================\n\n"
38+
39+
echo "===================== create ios simulator framework ====================="
3940
mkdir -p "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework"
4041
echo "${plist}" > "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework/Info.plist"
41-
cp -p "./target/powersync-universal-ios-sim.dylib" "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework/powersync-sqlite-core"
42+
lipo ./target/aarch64-apple-ios-sim/release/libpowersync.dylib ./target/x86_64-apple-ios/release/libpowersync.dylib -create -output "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework/powersync-sqlite-core"
4243
install_name_tool -id "@rpath/powersync-sqlite-core.framework/powersync-sqlite-core" "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework/powersync-sqlite-core"
4344

44-
printf "\n\n\t\t===================== create ios xcframework =====================\n\n"
45+
echo "===================== create macos framework ====================="
46+
mkdir -p "${BUILD_DIR}/macos-arm64_x86_64/powersync-sqlite-core.framework"
47+
echo "${plist}" > "${BUILD_DIR}/macos-arm64_x86_64/powersync-sqlite-core.framework/Info.plist"
48+
lipo ./target/x86_64-apple-darwin/release/libpowersync.dylib ./target/aarch64-apple-darwin/release/libpowersync.dylib -create -output "${BUILD_DIR}/macos-arm64_x86_64/powersync-sqlite-core.framework/powersync-sqlite-core"
49+
install_name_tool -id "@rpath/powersync-sqlite-core.framework/powersync-sqlite-core" "${BUILD_DIR}/macos-arm64_x86_64/powersync-sqlite-core.framework/powersync-sqlite-core"
50+
51+
echo "===================== create xcframework ====================="
4552
rm -rf "${BUILD_DIR}/powersync-sqlite-core.xcframework"
46-
xcodebuild -create-xcframework -framework "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework" -framework "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework" -output "${BUILD_DIR}/powersync-sqlite-core.xcframework"
53+
xcodebuild -create-xcframework \
54+
-framework "${BUILD_DIR}/ios-arm64/powersync-sqlite-core.framework" \
55+
-framework "${BUILD_DIR}/ios-arm64_x86_64-simulator/powersync-sqlite-core.framework" \
56+
-framework "${BUILD_DIR}/macos-arm64_x86_64/powersync-sqlite-core.framework" \
57+
-output "${BUILD_DIR}/powersync-sqlite-core.xcframework"
4758

4859
cp -Rf "${BUILD_DIR}/powersync-sqlite-core.xcframework" "powersync-sqlite-core.xcframework"
4960
tar -cJvf powersync-sqlite-core.xcframework.tar.xz powersync-sqlite-core.xcframework LICENSE README.md
@@ -55,10 +66,13 @@ EOF
5566

5667
rm -rf powersync-sqlite-core.xcframework
5768

69+
# iOS
5870
cargo build -p powersync_loadable --release --target aarch64-apple-ios -Zbuild-std
71+
# Simulator
5972
cargo build -p powersync_loadable --release --target aarch64-apple-ios-sim -Zbuild-std
6073
cargo build -p powersync_loadable --release --target x86_64-apple-ios -Zbuild-std
61-
62-
lipo ./target/aarch64-apple-ios-sim/release/libpowersync.dylib ./target/x86_64-apple-ios/release/libpowersync.dylib -create -output ./target/powersync-universal-ios-sim.dylib
74+
# macOS
75+
cargo build -p powersync_loadable --release --target aarch64-apple-darwin -Zbuild-std
76+
cargo build -p powersync_loadable --release --target x86_64-apple-darwin -Zbuild-std
6377

6478
createXcframework

powersync-sqlite-core.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'powersync-sqlite-core'
3-
s.version = '0.1.2'
3+
s.version = '0.1.3'
44
s.summary = 'PowerSync SQLite Extension'
55
s.description = <<-DESC
66
PowerSync extension for SQLite.
@@ -16,5 +16,5 @@ PowerSync extension for SQLite.
1616

1717
s.ios.deployment_target = '14.0'
1818
# osx not supported yet
19-
# s.osx.deployment_target = '10.13'
19+
s.osx.deployment_target = '10.13'
2020
end

0 commit comments

Comments
 (0)