Add uniffi/cli as default feature to cargo

This commit is contained in:
thunderbiscuit 2023-03-23 12:39:22 -04:00
parent 3dc6596aa2
commit 81e208222a
No known key found for this signature in database
GPG Key ID: 88253696EB836462
6 changed files with 23 additions and 23 deletions

View File

@ -47,14 +47,14 @@ jobs:
run: rustup update run: rustup update
- name: Build - name: Build
run: cargo build --features uniffi/cli run: cargo build
- name: Clippy - name: Clippy
if: ${{ matrix.rust.clippy }} if: ${{ matrix.rust.clippy }}
run: cargo clippy --all-targets --features "uniffi/bindgen-tests uniffi/cli" -- -D warnings run: cargo clippy --all-targets --features "uniffi/bindgen-tests" -- -D warnings
- name: Test - name: Test
run: CLASSPATH=./tests/jna/jna-5.8.0.jar cargo test --features uniffi/bindgen-tests,uniffi/cli run: CLASSPATH=./tests/jna/jna-5.8.0.jar cargo test --features uniffi/bindgen-tests
fmt: fmt:
name: Rust fmt name: Rust fmt

View File

@ -24,13 +24,13 @@ jobs:
- name: Run bdk-ffi-bindgen - name: Run bdk-ffi-bindgen
working-directory: bdk-ffi working-directory: bdk-ffi
run: cargo run --features uniffi/cli --bin uniffi-bindgen generate src/bdk.udl --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit --no-format run: cargo run --bin uniffi-bindgen generate src/bdk.udl --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit --no-format
- name: Build bdk-ffi for x86_64-apple-darwin - name: Build bdk-ffi for x86_64-apple-darwin
run: cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target x86_64-apple-darwin run: cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-darwin
- name: Build bdk-ffi for aarch64-apple-darwin - name: Build bdk-ffi for aarch64-apple-darwin
run: cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target aarch64-apple-darwin run: cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-darwin
- name: Create lipo-ios-sim and lipo-macos - name: Create lipo-ios-sim and lipo-macos
run: | run: |

View File

@ -21,7 +21,7 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
val buildAndroidAarch64Binary by tasks.register<Exec>("buildAndroidAarch64Binary") { val buildAndroidAarch64Binary by tasks.register<Exec>("buildAndroidAarch64Binary") {
workingDir("${projectDir}/../../bdk-ffi") workingDir("${projectDir}/../../bdk-ffi")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "aarch64-linux-android") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "aarch64-linux-android")
executable("cargo") executable("cargo")
args(cargoArgs) args(cargoArgs)
@ -51,7 +51,7 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
val buildAndroidX86_64Binary by tasks.register<Exec>("buildAndroidX86_64Binary") { val buildAndroidX86_64Binary by tasks.register<Exec>("buildAndroidX86_64Binary") {
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "x86_64-linux-android") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "x86_64-linux-android")
executable("cargo") executable("cargo")
args(cargoArgs) args(cargoArgs)
@ -81,7 +81,7 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
val buildAndroidArmv7Binary by tasks.register<Exec>("buildAndroidArmv7Binary") { val buildAndroidArmv7Binary by tasks.register<Exec>("buildAndroidArmv7Binary") {
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "armv7-linux-androideabi") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "armv7-linux-androideabi")
executable("cargo") executable("cargo")
args(cargoArgs) args(cargoArgs)
@ -138,7 +138,7 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
dependsOn(moveNativeAndroidLibs) dependsOn(moveNativeAndroidLibs)
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
val cargoArgs: List<String> = listOf("run", "--features", "uniffi/cli", "--bin", "uniffi-bindgen", "generate", "src/bdk.udl", "--language", "kotlin", "--out-dir", "../bdk-android/lib/src/main/kotlin", "--no-format") val cargoArgs: List<String> = listOf("run", "--bin", "uniffi-bindgen", "generate", "src/bdk.udl", "--language", "kotlin", "--out-dir", "../bdk-android/lib/src/main/kotlin", "--no-format")
executable("cargo") executable("cargo")
args(cargoArgs) args(cargoArgs)

View File

@ -12,26 +12,26 @@ internal class UniFfiJvmPlugin : Plugin<Project> {
override fun apply(target: Project): Unit = target.run { override fun apply(target: Project): Unit = target.run {
// register a task called buildJvmBinaries which will run something like // register a task called buildJvmBinaries which will run something like
// cargo build --features uniffi/cli --release --target aarch64-apple-darwin // cargo build --release --target aarch64-apple-darwin
val buildJvmBinaries by tasks.register<DefaultTask>("buildJvmBinaries") { val buildJvmBinaries by tasks.register<DefaultTask>("buildJvmBinaries") {
if (operatingSystem == OS.MAC) { if (operatingSystem == OS.MAC) {
exec { exec {
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
executable("cargo") executable("cargo")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "x86_64-apple-darwin") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "x86_64-apple-darwin")
args(cargoArgs) args(cargoArgs)
} }
exec { exec {
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
executable("cargo") executable("cargo")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "aarch64-apple-darwin") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "aarch64-apple-darwin")
args(cargoArgs) args(cargoArgs)
} }
} else if(operatingSystem == OS.LINUX) { } else if(operatingSystem == OS.LINUX) {
exec { exec {
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
executable("cargo") executable("cargo")
val cargoArgs: List<String> = listOf("build", "--features", "uniffi/cli", "--profile", "release-smaller", "--target", "x86_64-unknown-linux-gnu") val cargoArgs: List<String> = listOf("build", "--profile", "release-smaller", "--target", "x86_64-unknown-linux-gnu")
args(cargoArgs) args(cargoArgs)
} }
} }
@ -90,7 +90,7 @@ internal class UniFfiJvmPlugin : Plugin<Project> {
dependsOn(moveNativeJvmLibs) dependsOn(moveNativeJvmLibs)
workingDir("${project.projectDir}/../../bdk-ffi") workingDir("${project.projectDir}/../../bdk-ffi")
val cargoArgs: List<String> = listOf("run", "--features", "uniffi/cli", "--bin", "uniffi-bindgen", "generate", "src/bdk.udl", "--language", "kotlin", "--out-dir", "../bdk-jvm/lib/src/main/kotlin", "--no-format") val cargoArgs: List<String> = listOf("run", "--bin", "uniffi-bindgen", "generate", "src/bdk.udl", "--language", "kotlin", "--out-dir", "../bdk-jvm/lib/src/main/kotlin", "--no-format")
executable("cargo") executable("cargo")
args(cargoArgs) args(cargoArgs)

View File

@ -5,10 +5,10 @@ OS=$(uname -s)
echo "Generating bdk.py..." echo "Generating bdk.py..."
cd ../bdk-ffi/ cd ../bdk-ffi/
cargo run --features uniffi/cli --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format
echo "Generating native binaries..." echo "Generating native binaries..."
cargo build --features uniffi/cli --profile release-smaller cargo build --profile release-smaller
case $OS in case $OS in
"Darwin") "Darwin")
echo "Copying macOS libbdkffi.dylib..." echo "Copying macOS libbdkffi.dylib..."

View File

@ -13,14 +13,14 @@ rustup target add aarch64-apple-darwin x86_64-apple-darwin
pushd bdk-ffi pushd bdk-ffi
mkdir -p Sources/BitcoinDevKit mkdir -p Sources/BitcoinDevKit
cargo run --features uniffi/cli --bin uniffi-bindgen generate src/bdk.udl --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit --no-format cargo run --bin uniffi-bindgen generate src/bdk.udl --language swift --out-dir ../bdk-swift/Sources/BitcoinDevKit --no-format
popd popd
cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target x86_64-apple-darwin cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-darwin
cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target aarch64-apple-darwin cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-darwin
cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target x86_64-apple-ios cargo build --package bdk-ffi --profile release-smaller --target x86_64-apple-ios
cargo build --package bdk-ffi --features uniffi/cli --profile release-smaller --target aarch64-apple-ios cargo build --package bdk-ffi --profile release-smaller --target aarch64-apple-ios
cargo +nightly build --package bdk-ffi --features uniffi/cli --release -Z build-std --target aarch64-apple-ios-sim cargo +nightly build --package bdk-ffi --release -Z build-std --target aarch64-apple-ios-sim
mkdir -p target/lipo-ios-sim/release-smaller 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 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