PF Luo
Committed by GitHub

update build script for android (#72)

* update build script for android

* small fixes
@@ -13,6 +13,7 @@ sherpa-onnx-streaming-zipformer-* @@ -13,6 +13,7 @@ sherpa-onnx-streaming-zipformer-*
13 sherpa-onnx-lstm-en-* 13 sherpa-onnx-lstm-en-*
14 sherpa-onnx-lstm-zh-* 14 sherpa-onnx-lstm-zh-*
15 build-android-arm64-v8a/ 15 build-android-arm64-v8a/
  16 +build-android-armv7-eabi/
16 build-android-x86-64/ 17 build-android-x86-64/
17 a.txt 18 a.txt
18 run-bilingual*.sh 19 run-bilingual*.sh
@@ -35,3 +36,4 @@ tokens.txt @@ -35,3 +36,4 @@ tokens.txt
35 *.onnx 36 *.onnx
36 log.txt 37 log.txt
37 tags 38 tags
  39 +android/SherpaOnnx/app/src/main/assets/
1 #!/usr/bin/env bash 1 #!/usr/bin/env bash
2 set -ex 2 set -ex
3 3
4 -dir=build-android-arm64-v8a 4 +dir=$PWD/build-android-arm64-v8a
5 5
6 mkdir -p $dir 6 mkdir -p $dir
7 cd $dir 7 cd $dir
@@ -43,7 +43,7 @@ fi @@ -43,7 +43,7 @@ fi
43 echo "ANDROID_NDK: $ANDROID_NDK" 43 echo "ANDROID_NDK: $ANDROID_NDK"
44 sleep 1 44 sleep 1
45 45
46 -if [ ! -f android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so ]; then 46 +if [ ! -f ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so ]; then
47 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs 47 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
48 pushd android-onnxruntime-libs 48 pushd android-onnxruntime-libs
49 git lfs pull --include "jni/arm64-v8a/libonnxruntime.so" 49 git lfs pull --include "jni/arm64-v8a/libonnxruntime.so"
@@ -53,15 +53,15 @@ fi @@ -53,15 +53,15 @@ fi
53 ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so 53 ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so
54 54
55 # check filesize 55 # check filesize
56 -filesize=$(ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so | tr -s " " " " | cut -d " " -f 5) 56 +filesize=$(ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so | tr -s " " " " | cut -d " " -f 5)
57 if (( $filesize < 1000 )); then 57 if (( $filesize < 1000 )); then
58 ls -lh ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so 58 ls -lh ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so
59 echo "Please use: git lfs pull to download libonnxruntime.so" 59 echo "Please use: git lfs pull to download libonnxruntime.so"
60 exit 1 60 exit 1
61 fi 61 fi
62 62
63 -export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/android-onnxruntime-libs/jni/arm64-v8a/  
64 -export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$PWD/android-onnxruntime-libs/headers/ 63 +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/android-onnxruntime-libs/jni/arm64-v8a/
  64 +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/android-onnxruntime-libs/headers/
65 65
66 echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" 66 echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR"
67 echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" 67 echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR"
  1 +#!/usr/bin/env bash
  2 +set -ex
  3 +
  4 +dir=$PWD/build-android-armv7-eabi
  5 +
  6 +mkdir -p $dir
  7 +cd $dir
  8 +
  9 +# Note from https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-android
  10 +# (optional) remove the hardcoded debug flag in Android NDK android-ndk
  11 +# issue: https://github.com/android/ndk/issues/243
  12 +#
  13 +# open $ANDROID_NDK/build/cmake/android.toolchain.cmake for ndk < r23
  14 +# or $ANDROID_NDK/build/cmake/android-legacy.toolchain.cmake for ndk >= r23
  15 +#
  16 +# delete "-g" line
  17 +#
  18 +# list(APPEND ANDROID_COMPILER_FLAGS
  19 +# -g
  20 +# -DANDROID
  21 +
  22 +if [ -z $ANDROID_NDK ]; then
  23 + ANDROID_NDK=/ceph-fj/fangjun/software/android-sdk/ndk/21.0.6113669
  24 + # or use
  25 + # ANDROID_NDK=/ceph-fj/fangjun/software/android-ndk
  26 + #
  27 + # Inside the $ANDROID_NDK directory, you can find a binary ndk-build
  28 + # and some other files like the file "build/cmake/android.toolchain.cmake"
  29 +
  30 + if [ ! -d $ANDROID_NDK ]; then
  31 + # For macOS, I have installed Android Studio, select the menu
  32 + # Tools -> SDK manager -> Android SDK
  33 + # and set "Android SDK location" to /Users/fangjun/software/my-android
  34 + ANDROID_NDK=/Users/fangjun/software/my-android/ndk/22.1.7171670
  35 + fi
  36 +fi
  37 +
  38 +if [ ! -d $ANDROID_NDK ]; then
  39 + echo Please set the environment variable ANDROID_NDK before you run this script
  40 + exit 1
  41 +fi
  42 +
  43 +echo "ANDROID_NDK: $ANDROID_NDK"
  44 +sleep 1
  45 +
  46 +if [ ! -f ./android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so ]; then
  47 + GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
  48 + pushd android-onnxruntime-libs
  49 + git lfs pull --include "jni/armeabi-v7a/libonnxruntime.so"
  50 + popd
  51 +fi
  52 +
  53 +ls -l ./android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so
  54 +
  55 +# check filesize
  56 +filesize=$(ls -l ./android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so | tr -s " " " " | cut -d " " -f 5)
  57 +if (( $filesize < 1000 )); then
  58 + ls -lh ./android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so
  59 + echo "Please use: git lfs pull to download libonnxruntime.so"
  60 + exit 1
  61 +fi
  62 +
  63 +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/android-onnxruntime-libs/jni/armeabi-v7a/
  64 +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/android-onnxruntime-libs/headers/
  65 +
  66 +echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR"
  67 +echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR"
  68 +
  69 +cmake -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" \
  70 + -DCMAKE_BUILD_TYPE=Release \
  71 + -DBUILD_SHARED_LIBS=ON \
  72 + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \
  73 + -DSHERPA_ONNX_ENABLE_TESTS=OFF \
  74 + -DSHERPA_ONNX_ENABLE_CHECK=OFF \
  75 + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \
  76 + -DSHERPA_ONNX_ENABLE_JNI=ON \
  77 + -DCMAKE_INSTALL_PREFIX=./install \
  78 + -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON \
  79 + -DANDROID_PLATFORM=android-21 ..
  80 +# make VERBOSE=1 -j4
  81 +make -j4
  82 +make install/strip
  83 +cp -fv android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so install/lib
1 #!/usr/bin/env bash 1 #!/usr/bin/env bash
2 set -ex 2 set -ex
3 3
4 -dir=build-android-x86-64 4 +dir=$PWD/build-android-x86-64
5 5
6 mkdir -p $dir 6 mkdir -p $dir
7 cd $dir 7 cd $dir
@@ -43,7 +43,7 @@ fi @@ -43,7 +43,7 @@ fi
43 echo "ANDROID_NDK: $ANDROID_NDK" 43 echo "ANDROID_NDK: $ANDROID_NDK"
44 sleep 1 44 sleep 1
45 45
46 -if [ ! -f android-onnxruntime-libs/jni/x86_64/libonnxruntime.so ]; then 46 +if [ ! -f ./android-onnxruntime-libs/jni/x86_64/libonnxruntime.so ]; then
47 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs 47 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
48 pushd android-onnxruntime-libs 48 pushd android-onnxruntime-libs
49 git lfs pull --include "jni/x86_64/libonnxruntime.so" 49 git lfs pull --include "jni/x86_64/libonnxruntime.so"
@@ -60,8 +60,8 @@ if (( $filesize < 1000 )); then @@ -60,8 +60,8 @@ if (( $filesize < 1000 )); then
60 exit 1 60 exit 1
61 fi 61 fi
62 62
63 -export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/android-onnxruntime-libs/jni/x86_64/  
64 -export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$PWD/android-onnxruntime-libs/headers/ 63 +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/android-onnxruntime-libs/jni/x86_64/
  64 +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/android-onnxruntime-libs/headers/
65 65
66 echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" 66 echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR"
67 echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" 67 echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR"