diff --git a/.github/workflows/rust-ci.yaml b/.github/workflows/rust-ci.yaml index 1b6ad4134..49016aeff 100644 --- a/.github/workflows/rust-ci.yaml +++ b/.github/workflows/rust-ci.yaml @@ -43,10 +43,10 @@ jobs: fi - name: "Build" - run: cargo build + run: cargo build --locked - name: "Test" - run: CLASSPATH=./tests/jna/jna-5.14.0.jar cargo test --features uniffi/bindgen-tests + run: CLASSPATH=./tests/jna/jna-5.14.0.jar cargo test --locked --features uniffi/bindgen-tests check: name: "Run clippy and fmt" @@ -71,4 +71,4 @@ jobs: run: cargo fmt --all -- --config format_code_in_doc_comments=true --check - name: "Check clippy" - run: cargo clippy --all-targets --features "uniffi/bindgen-tests" + run: cargo clippy --locked --all-targets --features "uniffi/bindgen-tests" diff --git a/bdk-android/scripts/dev/build-dev-macos-aarch64.sh b/bdk-android/scripts/dev/build-dev-macos-aarch64.sh index 4bc89030f..27fa68705 100644 --- a/bdk-android/scripts/dev/build-dev-macos-aarch64.sh +++ b/bdk-android/scripts/dev/build-dev-macos-aarch64.sh @@ -18,11 +18,11 @@ rustup target add $COMPILATION_TARGET_ARM64_V8A # Build the binaries # The CC and CARGO_TARGET__LINUX_ANDROID_LINKER environment variables must be declared on the same line as the cargo build command -CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --target $COMPILATION_TARGET_ARM64_V8A +CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --locked --target $COMPILATION_TARGET_ARM64_V8A # Copy the binaries to their respective resource directories mkdir -p ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_ARM64_V8A/ cp ./target/$COMPILATION_TARGET_ARM64_V8A/debug/$LIB_NAME ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_ARM64_V8A/ # Generate Kotlin bindings using uniffi-bindgen -cargo run --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/debug/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format +cargo run --locked --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/debug/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format diff --git a/bdk-android/scripts/release/build-release-linux-x86_64.sh b/bdk-android/scripts/release/build-release-linux-x86_64.sh index 6692bace6..85d756fb2 100644 --- a/bdk-android/scripts/release/build-release-linux-x86_64.sh +++ b/bdk-android/scripts/release/build-release-linux-x86_64.sh @@ -22,9 +22,9 @@ rustup target add $COMPILATION_TARGET_ARM64_V8A $COMPILATION_TARGET_ARMEABI_V7A # Build the binaries # The CC and CARGO_TARGET__LINUX_ANDROID_LINKER environment variables must be declared on the same line as the cargo build command -CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A -CC="x86_64-linux-android24-clang" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_X86_64 -CC="armv7a-linux-androideabi24-clang" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A +CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A +CC="x86_64-linux-android24-clang" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_X86_64 +CC="armv7a-linux-androideabi24-clang" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A # Copy the binaries to their respective resource directories mkdir -p ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_ARM64_V8A/ @@ -35,4 +35,4 @@ cp ./target/$COMPILATION_TARGET_ARMEABI_V7A/release-smaller/$LIB_NAME ../bdk-and cp ./target/$COMPILATION_TARGET_X86_64/release-smaller/$LIB_NAME ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_X86_64/ # Generate Kotlin bindings using uniffi-bindgen -cargo run --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format +cargo run --locked --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format diff --git a/bdk-android/scripts/release/build-release-macos-aarch64.sh b/bdk-android/scripts/release/build-release-macos-aarch64.sh index 21086b9ef..39a73f87e 100644 --- a/bdk-android/scripts/release/build-release-macos-aarch64.sh +++ b/bdk-android/scripts/release/build-release-macos-aarch64.sh @@ -22,9 +22,9 @@ rustup target add $COMPILATION_TARGET_ARM64_V8A $COMPILATION_TARGET_ARMEABI_V7A # Build the binaries # The CC and CARGO_TARGET__LINUX_ANDROID_LINKER environment variables must be declared on the same line as the cargo build command -CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A -CC="x86_64-linux-android24-clang" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_X86_64 -CC="armv7a-linux-androideabi24-clang" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A +CC="aarch64-linux-android24-clang" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A +CC="x86_64-linux-android24-clang" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_X86_64 +CC="armv7a-linux-androideabi24-clang" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A # Copy the binaries to their respective resource directories mkdir -p ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_ARM64_V8A/ @@ -35,4 +35,4 @@ cp ./target/$COMPILATION_TARGET_ARMEABI_V7A/release-smaller/$LIB_NAME ../bdk-and cp ./target/$COMPILATION_TARGET_X86_64/release-smaller/$LIB_NAME ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_X86_64/ # Generate Kotlin bindings using uniffi-bindgen -cargo run --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format +cargo run --locked --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format diff --git a/bdk-android/scripts/release/build-release-windows-x86_64.sh b/bdk-android/scripts/release/build-release-windows-x86_64.sh index 33b338ab7..0fa945a96 100644 --- a/bdk-android/scripts/release/build-release-windows-x86_64.sh +++ b/bdk-android/scripts/release/build-release-windows-x86_64.sh @@ -23,9 +23,9 @@ rustup target add $COMPILATION_TARGET_ARM64_V8A $COMPILATION_TARGET_ARMEABI_V7A # Build the binaries # The CC and CARGO_TARGET__LINUX_ANDROID_LINKER environment variables must be declared on the same line as the cargo build command -CC="aarch64-linux-android24-clang.cmd" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang.cmd" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A -CC="x86_64-linux-android24-clang.cmd" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang.cmd" cargo build --profile release-smaller --target $COMPILATION_TARGET_X86_64 -CC="armv7a-linux-androideabi24-clang.cmd" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang.cmd" cargo build --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A +CC="aarch64-linux-android24-clang.cmd" CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="aarch64-linux-android24-clang.cmd" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARM64_V8A +CC="x86_64-linux-android24-clang.cmd" CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="x86_64-linux-android24-clang.cmd" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_X86_64 +CC="armv7a-linux-androideabi24-clang.cmd" CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="armv7a-linux-androideabi24-clang.cmd" cargo build --locked --profile release-smaller --target $COMPILATION_TARGET_ARMEABI_V7A # Copy the binaries to their respective resource directories mkdir -p ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_ARM64_V8A/ @@ -36,4 +36,4 @@ cp ./target/$COMPILATION_TARGET_ARMEABI_V7A/release-smaller/$LIB_NAME ../bdk-and cp ./target/$COMPILATION_TARGET_X86_64/release-smaller/$LIB_NAME ../bdk-android/lib/src/main/jniLibs/$RESOURCE_DIR_X86_64/ # Generate Kotlin bindings using uniffi-bindgen. (Any of the other $COMPILATION_TARGET_* could have been used) -cargo run --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format +cargo run --locked --bin uniffi-bindgen generate --library ./target/$COMPILATION_TARGET_ARM64_V8A/release-smaller/$LIB_NAME --language kotlin --out-dir ../bdk-android/lib/src/main/kotlin/ --no-format diff --git a/bdk-ffi/justfile b/bdk-ffi/justfile index 3838eeb1d..3f355f902 100644 --- a/bdk-ffi/justfile +++ b/bdk-ffi/justfile @@ -2,17 +2,17 @@ default: just --list build: - cargo build --profile release-smaller + cargo build --locked --profile release-smaller build-dev: - cargo build + cargo build --locked check: cargo fmt - cargo clippy + cargo clippy --locked test: - cargo test + cargo test --locked # Build API documentation for gh-pages or local browsing docs: diff --git a/bdk-ffi/scripts/build-docs.sh b/bdk-ffi/scripts/build-docs.sh index 845e8574e..59b5f9964 100644 --- a/bdk-ffi/scripts/build-docs.sh +++ b/bdk-ffi/scripts/build-docs.sh @@ -15,6 +15,6 @@ trap cleanup EXIT # Build the docs rm -rf target/doc -cargo doc --no-deps +cargo doc --locked --no-deps printf '%s\n' '' > target/doc/index.html printf 'Documentation built at target/doc/\n' diff --git a/bdk-swift/build-xcframework-dev.sh b/bdk-swift/build-xcframework-dev.sh index 94bb9aea4..01e5ae8f5 100755 --- a/bdk-swift/build-xcframework-dev.sh +++ b/bdk-swift/build-xcframework-dev.sh @@ -30,12 +30,12 @@ cd ../bdk-ffi/ || exit rustup component add rust-src rustup target add "$MAC_TARGET" "$IOS_SIM_TARGET" "$IOS_DEVICE_TARGET" -cargo build --package bdk-ffi --target "$MAC_TARGET" -cargo build --package bdk-ffi --target "$IOS_SIM_TARGET" -cargo build --package bdk-ffi --target "$IOS_DEVICE_TARGET" +cargo build --locked --package bdk-ffi --target "$MAC_TARGET" +cargo build --locked --package bdk-ffi --target "$IOS_SIM_TARGET" +cargo build --locked --package bdk-ffi --target "$IOS_DEVICE_TARGET" UNIFFI_LIBRARY_PATH="./target/$IOS_DEVICE_TARGET/$PROFILE_DIR/lib${NAME}.dylib" -cargo run --bin uniffi-bindgen generate \ +cargo run --locked --bin uniffi-bindgen generate \ --library "${UNIFFI_LIBRARY_PATH}" \ --language swift \ --out-dir "${SWIFT_OUT_DIR}" \ @@ -49,7 +49,7 @@ cargo run --bin uniffi-bindgen generate \ rm -rf "${NEW_HEADER_DIR:?}"/* rm -rf "${HEADER_OUT_DIR:?}" mkdir -p "${HEADER_OUT_DIR}" -cargo run --bin uniffi-bindgen generate \ +cargo run --locked --bin uniffi-bindgen generate \ --library "${UNIFFI_LIBRARY_PATH}" \ --language swift \ --out-dir "${HEADER_OUT_DIR}" \ diff --git a/bdk-swift/build-xcframework.sh b/bdk-swift/build-xcframework.sh index da74281c1..61ff2f245 100755 --- a/bdk-swift/build-xcframework.sh +++ b/bdk-swift/build-xcframework.sh @@ -27,15 +27,15 @@ rustup target add aarch64-apple-darwin # mac M1 rustup target add x86_64-apple-darwin # mac x86_64 # build bdk-ffi rust lib for apple targets -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 build --package bdk-ffi --profile release-smaller --target aarch64-apple-ios-sim +cargo build --locked --package bdk-ffi --profile release-smaller --target x86_64-apple-darwin +cargo build --locked --package bdk-ffi --profile release-smaller --target aarch64-apple-darwin +cargo build --locked --package bdk-ffi --profile release-smaller --target x86_64-apple-ios +cargo build --locked --package bdk-ffi --profile release-smaller --target aarch64-apple-ios +cargo build --locked --package bdk-ffi --profile release-smaller --target aarch64-apple-ios-sim # build bdk-ffi Swift bindings and put in bdk-swift Sources UNIFFI_LIBRARY_PATH="./target/aarch64-apple-ios/${RELDIR}/lib${NAME}.dylib" -cargo run --bin uniffi-bindgen generate --library "${UNIFFI_LIBRARY_PATH}" --language swift --out-dir "${SWIFT_OUT_DIR}" --no-format +cargo run --locked --bin uniffi-bindgen generate --library "${UNIFFI_LIBRARY_PATH}" --language swift --out-dir "${SWIFT_OUT_DIR}" --no-format # Final xcframework structure (per-arch): # Headers/ @@ -45,7 +45,7 @@ cargo run --bin uniffi-bindgen generate --library "${UNIFFI_LIBRARY_PATH}" --lan rm -rf "${NEW_HEADER_DIR:?}"/* rm -rf "${HEADER_OUT_DIR:?}" mkdir -p "${HEADER_OUT_DIR}" -cargo run --bin uniffi-bindgen generate --library "${UNIFFI_LIBRARY_PATH}" --language swift --out-dir "${HEADER_OUT_DIR}" --no-format +cargo run --locked --bin uniffi-bindgen generate --library "${UNIFFI_LIBRARY_PATH}" --language swift --out-dir "${HEADER_OUT_DIR}" --no-format # Keep the header output directory clean: xcframework headers should only contain .h + module.modulemap find "${HEADER_OUT_DIR}" -maxdepth 1 -name '*.swift' -delete