rust-keylock-android v0.15.0

This commit is contained in:
Aston 2024-02-27 11:12:12 +00:00 committed by Licaon_Kter
parent d34076821e
commit e61895c767

View file

@ -234,56 +234,52 @@ Builds:
- versionName: 0.15.0
versionCode: 1500
disable: switched to gradle
commit: 2fdad45e145cbb3ddccd71f7cbb2bb2bd934507b
subdir: java
subdir: app
sudo:
- apt-get update
- apt-get -y install build-essential
maven: yes
output: target/rust-keylock-android-$$VERSION$$-unsigned.apk
- apt-get install -y openjdk-17-jdk-headless
- update-java-alternatives -a
gradle:
- yes
srclibs:
- rustup@1.24.3
- OpenSSL@OpenSSL_1_1_1l
prebuild: $$SDK$$/tools/bin/sdkmanager 'platforms;android-16' > /dev/null
target: android-16
- rustup@1.26.0
target: android-34
build:
- mkdir -p ../tools
- $$rustup$$/rustup-init.sh -y
- source $HOME/.cargo/env
- rustup target add arm-linux-androideabi
- cd ..
- BASEDIR=`pwd`
- cd $$OpenSSL$$
- export OPENSSL_SRC_DIR=`pwd`
- export OPENSSL_BUILD_DIR=${OPENSSL_SRC_DIR}/build
- cd $BASEDIR
- $$rustup$$/rustup-init.sh -y --default-toolchain 1.76.0 -t aarch64-linux-android
armv7-linux-androideabi
- source $HOME/.cargo/env
- BASEDIR=$(pwd)
- export ANDROID_NDK_HOME=${ANDROID_NDK}
- export ANDROID_TOOLCHAIN_DIR="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64"
- cd $HOME
- mkdir -p .cargo
- cd .cargo
- printf "[target]\n [target.arm-linux-androideabi]\n linker = \"${ANDROID_TOOLCHAIN_DIR}/bin/armv7a-linux-androideabi16-clang\""
- printf "[target]\n [target.armv7-linux-androideabi]\n linker = \"${ANDROID_TOOLCHAIN_DIR}/bin/armv7a-linux-androideabi24-clang\"\n
[target.aarch64-linux-android]\n linker = \"${ANDROID_TOOLCHAIN_DIR}/bin/aarch64-linux-android24-clang\""
> config
- export ANDROID_TOOLCHAIN=$ANDROID_TOOLCHAIN_DIR/bin
- export ANDROID_NDK_ROOT=${ANDROID_NDK}
- export ANDROID_RUST="$BASEDIR/rust"
- export ANDROID_RUST_KEYLOCK_LIB="$ANDROID_RUST/target/arm-linux-androideabi/release/librustkeylockandroid.so"
- export ANDROID_JAVA_NATIVE="$BASEDIR/java/libs/armeabi/"
- mkdir -p $ANDROID_JAVA_NATIVE
- cd ${OPENSSL_SRC_DIR}
- export ANDROID_RUST_KEYLOCK_LIB_AARCH64="$ANDROID_RUST/target/aarch64-linux-android/release/librustkeylockandroid.so"
- export ANDROID_RUST_KEYLOCK_LIB_ARMV7="$ANDROID_RUST/target/armv7-linux-androideabi/release/librustkeylockandroid.so"
- export ANDROID_JAVA_NATIVE_AARCH64="$BASEDIR/app/src/main/jniLibs/arm64-v8a/"
- export ANDROID_JAVA_NATIVE_ARMV7="$BASEDIR/app/src/main/jniLibs/armeabi-v7a/"
- mkdir -p $ANDROID_JAVA_NATIVE_AARCH64
- mkdir -p $ANDROID_JAVA_NATIVE_ARMV7
- . $BASEDIR/rust-build/setenv-android.sh
- ./Configure ${architecture} -D__ANDROID_API__=$ANDROID_API --openssldir=$OPENSSL_SRC_DIR/build
--prefix=$OPENSSL_SRC_DIR/build
- make > /dev/null
- make install > /dev/null
- cd $ANDROID_RUST
- CC_arm_linux_androideabi="${ANDROID_TOOLCHAIN_DIR}/bin/armv7a-linux-androideabi16-clang"
AR_arm_linux_androideabi="${ANDROID_TOOLCHAIN_DIR}/bin/llvm-ar" ARM_LINUX_ANDROIDEABI_OPENSSL_DIR=${OPENSSL_BUILD_DIR}
ARM_LINUX_ANDROIDEABI_OPENSSL_LIB_DIR=${OPENSSL_BUILD_DIR}/lib ARM_LINUX_ANDROIDEABI_OPENSSL_INCLUDE_DIR=${OPENSSL_BUILD_DIR}/include
OPENSSL_STATIC=true cargo build --target=arm-linux-androideabi --release
- cp $ANDROID_RUST_KEYLOCK_LIB $ANDROID_JAVA_NATIVE
ndk: r22b
- export RANLIB=${ANDROID_TOOLCHAIN_DIR}/bin/llvm-ranlib
- export AR=${ANDROID_TOOLCHAIN_DIR}/bin/llvm-ar
- export CC=${ANDROID_TOOLCHAIN_DIR}/bin/armv7a-linux-androideabi24-clang
- cargo build --target=armv7-linux-androideabi --release
- export CC=${ANDROID_TOOLCHAIN_DIR}/bin/aarch64-linux-android24-clang
- cargo build --target=aarch64-linux-android --release
- cp $ANDROID_RUST_KEYLOCK_LIB_AARCH64 $ANDROID_JAVA_NATIVE_AARCH64
- cp $ANDROID_RUST_KEYLOCK_LIB_ARMV7 $ANDROID_JAVA_NATIVE_ARMV7
ndk: r25c
AutoUpdateMode: Version
UpdateCheckMode: Tags