#!/bin/bash #### Default Current Machine function current() { cargo build --release ## check now os. } function init_android() { cargo install cargo-ndk rustup target add \ aarch64-linux-android \ armv7-linux-androideabi \ x86_64-linux-android \ i686-linux-android } #### Android #### function android() { cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 -o ./jniLibs build --release ## crate & link to android directory mkdir -p core/android/src/main/jniLibs/arm64-v8a mkdir -p core/android/src/main/jniLibs/armeabi-v7a mkdir -p core/android/src/main/jniLibs/x86 echo 'android jniLibs directory build ok!' cp -rf ./jniLibs/ core/android/src/main/jniLibs/ echo 'Flutter: Android dynamic library is ok!' } #### IOS #### function ios() { cargo lipo --release echo 'Rust: Ios release build ok!' cp target/universal/release/libesse.a core/ios/share/libesse.a echo 'Flutter: Ios dynamic library is ok!' } #### Linux #### function linux() { cargo build --release ### there maybe not use in other linux distribution. echo 'Rust: Linux release build ok!' cp target/release/libesse.a core/linux/share/libesse.a echo 'Flutter: Linux dynamic library is ok!' } #### MacOS #### function macos() { cargo build --release echo 'Rust: Macos release build ok!' cp target/release/libesse.a core/macos/share/libesse.a echo 'Flutter: Macos dynamic library is ok!' } #### Windows #### function windows() { cargo build --release ### there maybe not use in other windows distribution. echo 'Rust: windows release build ok!' cp target/release/esse.dll core/windows/share/esse.dll cp target/release/esse.dll.lib core/windows/share/esse.dll.lib echo 'Flutter: windows dynamic library is ok!' } #### Web #### function web() { echo 'WIP' } if [ $# -eq 0 ] then echo "Usage: ./rust.sh [OPTION]" echo "Rust dynamic library auto generator." echo "" echo "OPTION:" echo " current build current machine's library." echo " all build all versions libraries." echo " android only build for Android." echo " ios only build for IOS." echo " linux only build for Linux. (Linux Machine)" echo " macos only build for MacOS. (MacOS Machine)" echo " windows only build for Windows. (Windows Machine)" echo " web only build for web (wasm)." else echo "Now is building: $1" $1 fi