Encrypted peer-to-peer IM for data security. Own data, own privacy. (Rust+Flutter)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
2.4 KiB

#!/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