|
| 1 | +SOURCES=$(sort $(wildcard ./src/*.rs ./src/**/*.rs)) |
| 2 | + |
| 3 | +.PHONY: init |
| 4 | +init: |
| 5 | + rustup target add aarch64-apple-ios x86_64-apple-ios |
| 6 | + rustup target add aarch64-apple-darwin x86_64-apple-darwin |
| 7 | + rustup target add aarch64-apple-ios-sim |
| 8 | + rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android |
| 9 | + @if [ $$(uname) == "Darwin" ] ; then cargo install cargo-lipo ; fi |
| 10 | + cargo install cbindgen |
| 11 | + cargo install cargo-ndk |
| 12 | + |
| 13 | +.PHONY: ndk-home |
| 14 | +ndk-home: |
| 15 | + @if [ ! -d "${ANDROID_NDK_HOME}" ] ; then \ |
| 16 | + echo "Error: Please, set the ANDROID_NDK_HOME env variable to point to your NDK folder" ; \ |
| 17 | + exit 1 ; \ |
| 18 | + fi |
| 19 | + |
| 20 | +.PHONY: sdk-root |
| 21 | +sdk-root: |
| 22 | + @if [ ! -d "${ANDROID_SDK_ROOT}" ] ; then \ |
| 23 | + echo "Error: Please, set the ANDROID_SDK_ROOT env variable to point to your SDK folder" ; \ |
| 24 | + exit 1 ; \ |
| 25 | + fi |
| 26 | + |
| 27 | +kotlin: android |
| 28 | + cargo run --features=uniffi/cli --bin uniffi-bindgen generate src/nostr.udl --language kotlin --no-format -o ffi/kotlin |
| 29 | + |
| 30 | +android: aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android |
| 31 | + |
| 32 | +aarch64-linux-android: $(SOURCES) ndk-home |
| 33 | + cargo ndk -t aarch64-linux-android -o ffi/kotlin/jniLibs build --release |
| 34 | + |
| 35 | +armv7-linux-androideabi: $(SOURCES) ndk-home |
| 36 | + cargo ndk -t armv7-linux-androideabi -o ffi/kotlin/jniLibs build --release |
| 37 | + |
| 38 | +i686-linux-android: $(SOURCES) ndk-home |
| 39 | + cargo ndk -t i686-linux-android -o ffi/kotlin/jniLibs build --release |
| 40 | + |
| 41 | +x86_64-linux-android: $(SOURCES) ndk-home |
| 42 | + cargo ndk -t x86_64-linux-android -o ffi/kotlin/jniLibs build --release |
| 43 | + |
| 44 | +bindings-android: sdk-root kotlin |
| 45 | + cp -r ffi/kotlin/jniLibs bindings-android/lib/src/main |
| 46 | + cp -r ffi/kotlin/nostr bindings-android/lib/src/main/kotlin/ |
| 47 | + cd bindings-android && ./gradlew assemble |
| 48 | + mkdir -p ffi/android |
| 49 | + cp bindings-android/lib/build/outputs/aar/lib-release.aar ffi/android |
0 commit comments