diff --git a/.gitignore b/.gitignore index 207fd97..6b7a9a6 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,18 @@ xcuserdata .idea/ .editorconfig */bdk.kt + +# Swift related +.DS_Store +/.build +/.swiftpm +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +bdkFFI.xcframework.zip +bdkFFI +libbdkffi.a +bdkFFI.h +BitcoinDevKit.swift diff --git a/bdk-swift/.gitignore b/bdk-swift/.gitignore deleted file mode 100644 index cf97457..0000000 --- a/bdk-swift/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.DS_Store -/.build -/.swiftpm -/Packages -/*.xcodeproj -xcuserdata/ -DerivedData/ -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -bdkFFI.xcframework.zip -bdkFFI -libbdkffi.a -bdkFFI.h diff --git a/build-local-swift.sh b/build-local-swift.sh new file mode 100755 index 0000000..8ff67c2 --- /dev/null +++ b/build-local-swift.sh @@ -0,0 +1,34 @@ +rustup install nightly-x86_64-apple-darwin +rustup component add rust-src --toolchain nightly-x86_64-apple-darwin +rustup target add aarch64-apple-ios x86_64-apple-ios +rustup target add aarch64-apple-ios-sim --toolchain nightly +rustup target add aarch64-apple-darwin x86_64-apple-darwin + +pushd bdk-ffi +mkdir -p Sources/BitcoinDevKit +cargo run --package bdk-ffi-bindgen -- --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit +popd + +cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-darwin +cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-darwin +cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-ios +cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-ios +cargo +nightly build --package bdk-ffi --release -Z build-std --target aarch64-apple-ios-sim + +mkdir -p target/lipo-ios-sim/release-smaller +lipo target/aarch64-apple-ios-sim/release/libbdkffi.a target/x86_64-apple-ios/release-smaller/libbdkffi.a -create -output target/lipo-ios-sim/release-smaller/libbdkffi.a +mkdir -p target/lipo-macos/release-smaller +lipo target/aarch64-apple-darwin/release-smaller/libbdkffi.a target/x86_64-apple-darwin/release-smaller/libbdkffi.a -create -output target/lipo-macos/release-smaller/libbdkffi.a + +pushd bdk-swift +mv Sources/BitcoinDevKit/bdk.swift Sources/BitcoinDevKit/BitcoinDevKit.swift +cp Sources/BitcoinDevKit/bdkFFI.h bdkFFI.xcframework/ios-arm64/bdkFFI.framework/Headers +cp Sources/BitcoinDevKit/bdkFFI.h bdkFFI.xcframework/ios-arm64_x86_64-simulator/bdkFFI.framework/Headers +cp Sources/BitcoinDevKit/bdkFFI.h bdkFFI.xcframework/macos-arm64_x86_64/bdkFFI.framework/Headers +cp ../target/aarch64-apple-ios/release-smaller/libbdkffi.a bdkFFI.xcframework/ios-arm64/bdkFFI.framework/bdkFFI +cp ../target/lipo-ios-sim/release-smaller/libbdkffi.a bdkFFI.xcframework/ios-arm64_x86_64-simulator/bdkFFI.framework/bdkFFI +cp ../target/lipo-macos/release-smaller/libbdkffi.a bdkFFI.xcframework/macos-arm64_x86_64/bdkFFI.framework/bdkFFI +rm Sources/BitcoinDevKit/bdkFFI.h +rm Sources/BitcoinDevKit/bdkFFI.modulemap +#rm bdkFFI.xcframework.zip || true +#zip -9 -r bdkFFI.xcframework.zip bdkFFI.xcframework \ No newline at end of file