justfile 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. init:
  2. rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
  3. rustup target add aarch64-apple-darwin x86_64-apple-darwin
  4. rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
  5. cargo install cbindgen
  6. cargo install cargo-ndk
  7. kotlin:
  8. $(JUST) ffi-kotlin-clean
  9. $(JUST) ffi-kotlin-generate
  10. ffi-kotlin-clean:
  11. find ./ffi/kotlin/jniLibs -name libcashu_sdk_ffi.so -type f -delete
  12. ffi-kotlin-generate:
  13. cargo run -p uniffi-bindgen generate src/cashu.udl --language kotlin --no-format -o ffi/kotlin
  14. android: aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
  15. aarch64-linux-android:
  16. cargo ndk -t aarch64-linux-android -o ffi/kotlin/jniLibs build --release
  17. armv7-linux-androideabi:
  18. $(JUST) ffi-ndk-build TARGET=armv7-linux-androideabi
  19. i686-linux-android:
  20. $(JUST) ffi-ndk-build TARGET=i686-linux-android
  21. x86_64-linux-android:
  22. $(JUST) ffi-ndk-build TARGET=x86_64-linux-android
  23. ffi-ndk-build:
  24. cargo ndk -t $(TARGET) -o ffi/kotlin/jniLibs build --release
  25. bindings-android:
  26. $(JUST) bindings-android-clean
  27. $(JUST) bindings-android-copy
  28. cd bindings-android && ./gradlew assemble
  29. $(JUST) bindings-android-package
  30. bindings-android-clean:
  31. rm -rf bindings-android/lib/src/main/jniLibs
  32. rm -rf bindings-android/lib/src/main/kotlin
  33. bindings-android-copy:
  34. cp -r ffi/kotlin/jniLibs bindings-android/lib/src/main
  35. cp -r ffi/kotlin/cashu bindings-android/lib/src/main/kotlin/
  36. bindings-android-package:
  37. mkdir -p ffi/android
  38. cp bindings-android/lib/build/outputs/aar/lib-release.aar ffi/android
  39. publish-android:
  40. cd bindings-android && ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
  41. python:
  42. rm -rf dist
  43. pip install -r bindings-python/requirements.txt
  44. cargo build --release
  45. cargo run -p uniffi-bindgen generate src/cashu.udl --language python --no-format -o bindings-python/src/cashu/
  46. cp ../../target/release/libcashu_ffi.so bindings-python/src/cashu/
  47. cp ../../target/release/libcashu_ffi.dylib bindings-python/src/cashu/ | true
  48. cd bindings-python && pip wheel --no-deps -w dist .
  49. pip install ./bindings-python/dist/cashu_protocol*.whl --force-reinstall