@@ -7,4 +7,40 @@ $UNIFFI_BINDGEN_BIN generate bindings/ldk_node.udl --language swift -o "$BINDING
77
88mkdir -p $BINDINGS_DIR
99
10- swiftc -module-name ldk_node -emit-library -o " $BINDINGS_DIR " /libldk_node.dylib -emit-module -emit-module-path " $BINDINGS_DIR " -parse-as-library -L ./target/release -lldk_node -Xcc -fmodule-map-file=" $BINDINGS_DIR " /ldk_nodeFFI.modulemap " $BINDINGS_DIR " /ldk_node.swift -v
10+ # Install rust target toolchains
11+ rustup install nightly-x86_64-apple-darwin
12+ rustup component add rust-src --toolchain nightly-x86_64-apple-darwin
13+ rustup target add aarch64-apple-ios x86_64-apple-ios
14+ rustup target add aarch64-apple-ios-sim --toolchain nightly
15+ rustup target add aarch64-apple-darwin x86_64-apple-darwin
16+
17+ # Build rust target libs
18+ cargo build --profile release-smaller || exit 1
19+ cargo build --profile release-smaller --target x86_64-apple-darwin || exit 1
20+ cargo build --profile release-smaller --target aarch64-apple-darwin || exit 1
21+ cargo build --profile release-smaller --target x86_64-apple-ios || exit 1
22+ cargo build --profile release-smaller --target aarch64-apple-ios || exit 1
23+ cargo +nightly build --release --target aarch64-apple-ios-sim || exit 1
24+
25+ # Combine ios-sim and apple-darwin (macos) libs for x86_64 and aarch64 (m1)
26+ mkdir -p target/lipo-ios-sim/release-smaller || exit 1
27+ lipo target/aarch64-apple-ios-sim/release/libldk_node.a target/x86_64-apple-ios/release-smaller/libldk_node.a -create -output target/lipo-ios-sim/release-smaller/libldk_node.a || exit 1
28+ mkdir -p target/lipo-macos/release-smaller || exit 1
29+ lipo target/aarch64-apple-darwin/release-smaller/libldk_node.a target/x86_64-apple-darwin/release-smaller/libldk_node.a -create -output target/lipo-macos/release-smaller/libldk_node.a || exit 1
30+
31+ $UNIFFI_BINDGEN_BIN generate bindings/ldk_node.udl --language swift -o " $BINDINGS_DIR " || exit 1
32+
33+ swiftc -module-name ldk_node -emit-library -o " $BINDINGS_DIR " /libldk_node.dylib -emit-module -emit-module-path " $BINDINGS_DIR " -parse-as-library -L ./target/release-smaller -lldk_node -Xcc -fmodule-map-file=" $BINDINGS_DIR " /ldk_nodeFFI.modulemap " $BINDINGS_DIR " /ldk_node.swift -v || exit 1
34+
35+ # Create xcframework from bindings Swift file and libs
36+ mkdir -p " $BINDINGS_DIR " /Sources/LightningDevKitNode || exit 1
37+ mv " $BINDINGS_DIR " /ldk_node.swift " $BINDINGS_DIR " /Sources/LightningDevKitNode/LightningDevKitNode.swift || exit 1
38+ cp " $BINDINGS_DIR " /ldk_nodeFFI.h " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/ios-arm64/ldk_nodeFFI.framework/Headers || exit 1
39+ cp " $BINDINGS_DIR " /ldk_nodeFFI.h " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/ios-arm64_x86_64-simulator/ldk_nodeFFI.framework/Headers || exit 1
40+ cp " $BINDINGS_DIR " /ldk_nodeFFI.h " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/macos-arm64_x86_64/ldk_nodeFFI.framework/Headers || exit 1
41+ cp target/aarch64-apple-ios/release-smaller/libldk_node.a " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/ios-arm64/ldk_nodeFFI.framework/ldk_nodeFFI || exit 1
42+ cp target/lipo-ios-sim/release-smaller/libldk_node.a " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/ios-arm64_x86_64-simulator/ldk_nodeFFI.framework/ldk_nodeFFI || exit 1
43+ cp target/lipo-macos/release-smaller/libldk_node.a " $BINDINGS_DIR " /ldk_nodeFFI.xcframework/macos-arm64_x86_64/ldk_nodeFFI.framework/ldk_nodeFFI || exit 1
44+ # rm "$BINDINGS_DIR"/ldk_nodeFFI.h || exit 1
45+ # rm "$BINDINGS_DIR"/ldk_nodeFFI.modulemap || exit 1
46+ echo finished successfully!
0 commit comments