Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
sherpaonnx
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Fangjun Kuang
2023-07-15 12:25:18 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2023-07-15 12:25:18 +0800
Commit
5d820b88ef7a4c5d19c49806b8492bf1ebba7fc5
5d820b88
1 parent
de267368
Publish pre-compiled libs for Android. (#217)
隐藏空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
260 行增加
和
64 行删除
.github/workflows/android.yaml
CMakeLists.txt
build-android-arm64-v8a.sh
build-android-armv7-eabi.sh
build-android-x86-64.sh
build-android-x86.sh
release.sh
.github/workflows/android.yaml
0 → 100644
查看文件 @
5d820b8
name
:
android
on
:
push
:
branches
:
-
master
paths
:
-
'
.github/workflows/android.yaml'
-
'
CMakeLists.txt'
-
'
cmake/**'
-
'
sherpa-onnx/csrc/*'
-
'
sherpa-onnx/jni/*'
-
'
build-android*.sh'
pull_request
:
branches
:
-
master
paths
:
-
'
.github/workflows/android.yaml'
-
'
CMakeLists.txt'
-
'
cmake/**'
-
'
sherpa-onnx/csrc/*'
-
'
sherpa-onnx/jni/*'
-
'
build-android*.sh'
release
:
types
:
-
published
workflow_dispatch
:
inputs
:
release
:
description
:
"
Whether
to
release"
type
:
boolean
env
:
RELEASE
:
|-
# Release if there is a release tag name or a release flag in workflow_dispatch
${{ github.event.release.tag_name != '' || github.event.inputs.release == 'true' }}
concurrency
:
group
:
android-${{ github.ref }}
cancel-in-progress
:
true
jobs
:
build-android-libs
:
name
:
Android for ${{ matrix.os }}
runs-on
:
${{ matrix.os }}
strategy
:
fail-fast
:
false
matrix
:
os
:
[
ubuntu-latest
]
steps
:
-
uses
:
actions/checkout@v2
with
:
fetch-depth
:
0
-
name
:
Display NDK HOME
shell
:
bash
run
:
|
echo "ANDROID_NDK_LATEST_HOME: ${ANDROID_NDK_LATEST_HOME}"
ls -lh ${ANDROID_NDK_LATEST_HOME}
-
name
:
build android arm64-v8a
shell
:
bash
run
:
|
export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME
./build-android-arm64-v8a.sh
mkdir -p jniLibs/arm64-v8a/
cp -v ./build-android-arm64-v8a/install/lib/*.so ./jniLibs/arm64-v8a/
-
name
:
build android armv7-eabi
shell
:
bash
run
:
|
export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME
./build-android-armv7-eabi.sh
mkdir -p ./jniLibs/armeabi-v7a/
cp -v ./build-android-armv7-eabi/install/lib/*.so ./jniLibs/armeabi-v7a/
-
name
:
build android x86_64
shell
:
bash
run
:
|
export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME
./build-android-x86-64.sh
mkdir -p ./jniLibs/x86_64
cp -v ./build-android-x86-64/install/lib/*.so ./jniLibs/x86_64
-
name
:
build android x86
shell
:
bash
run
:
|
export ANDROID_NDK=$ANDROID_NDK_LATEST_HOME
./build-android-x86.sh
mkdir -p ./jniLibs/x86
cp -v ./build-android-x86/install/lib/*.so ./jniLibs/x86
-
name
:
Copy files
shell
:
bash
run
:
|
SHERPA_ONNX_VERSION=v$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
echo "SHERPA_ONNX_VERSION=$SHERPA_ONNX_VERSION" >> "$GITHUB_ENV"
filename=sherpa-onnx-${SHERPA_ONNX_VERSION}-android.tar.bz2
tar cjvf $filename ./jniLibs
ls -lh
-
uses
:
actions/upload-artifact@v2
with
:
name
:
sherpa-onnx-android-libs
path
:
./jniLibs
# https://huggingface.co/docs/hub/spaces-github-actions
-
name
:
Publish to huggingface
if
:
github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa' && env.RELEASE == 'true'
env
:
HF_TOKEN
:
${{ secrets.HF_TOKEN }}
run
:
|
git config --global user.email "csukuangfj@gmail.com"
git config --global user.name "Fangjun Kuang"
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/sherpa-onnx-libs huggingface
cd huggingface
git lfs pull
cp -v ../sherpa-onnx-*-android.tar.bz2 ./
git status
git lfs track "*.bz2"
git add .
git commit -m "upload sherpa-onnx-${SHERPA_ONNX_VERSION}-android.tar.bz2"
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-libs main
-
name
:
Release android libs
if
:
env.RELEASE == 'true'
uses
:
svenstaro/upload-release-action@v2
with
:
file_glob
:
true
overwrite
:
true
file
:
sherpa-onnx-*-android.tar.bz2
...
...
CMakeLists.txt
查看文件 @
5d820b8
cmake_minimum_required
(
VERSION 3.13 FATAL_ERROR
)
project
(
sherpa-onnx
)
set
(
SHERPA_ONNX_VERSION
"1.5.
2
"
)
set
(
SHERPA_ONNX_VERSION
"1.5.
3
"
)
# Disable warning about
#
...
...
build-android-arm64-v8a.sh
查看文件 @
5d820b8
...
...
@@ -42,15 +42,18 @@ fi
echo
"ANDROID_NDK:
$ANDROID_NDK
"
sleep 1
onnxruntime_version
=
v1.15.1
if
[
! -f ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so
]
;
then
if
[
! -f ./android-onnxruntime-libs/
$onnxruntime_version
/
jni/arm64-v8a/libonnxruntime.so
]
;
then
GIT_LFS_SKIP_SMUDGE
=
1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
pushd
android-onnxruntime-libs
git lfs pull --include
"jni/arm64-v8a/libonnxruntime.so"
git lfs pull --include
"
$onnxruntime_version
/jni/arm64-v8a/libonnxruntime.so"
ln -s
$onnxruntime_version
/jni .
ln -s
$onnxruntime_version
/headers .
popd
fi
ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so
ls -l
h
./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so
# check filesize
filesize
=
$(
ls -l ./android-onnxruntime-libs/jni/arm64-v8a/libonnxruntime.so | tr -s
" "
" "
| cut -d
" "
-f 5
)
...
...
build-android-armv7-eabi.sh
查看文件 @
5d820b8
...
...
@@ -43,10 +43,14 @@ fi
echo
"ANDROID_NDK:
$ANDROID_NDK
"
sleep 1
if
[
! -f ./android-onnxruntime-libs/jni/armeabi-v7a/libonnxruntime.so
]
;
then
onnxruntime_version
=
v1.15.1
if
[
! -f ./android-onnxruntime-libs/
$onnxruntime_version
/jni/armeabi-v7a/libonnxruntime.so
]
;
then
GIT_LFS_SKIP_SMUDGE
=
1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
pushd
android-onnxruntime-libs
git lfs pull --include
"jni/armeabi-v7a/libonnxruntime.so"
git lfs pull --include
"
$onnxruntime_version
/jni/armeabi-v7a/libonnxruntime.so"
ln -s
$onnxruntime_version
/jni .
ln -s
$onnxruntime_version
/headers .
popd
fi
...
...
build-android-x86-64.sh
查看文件 @
5d820b8
...
...
@@ -43,10 +43,14 @@ fi
echo
"ANDROID_NDK:
$ANDROID_NDK
"
sleep 1
if
[
! -f ./android-onnxruntime-libs/jni/x86_64/libonnxruntime.so
]
;
then
onnxruntime_version
=
v1.15.1
if
[
! -f ./android-onnxruntime-libs/
$onnxruntime_version
/jni/x86_64/libonnxruntime.so
]
;
then
GIT_LFS_SKIP_SMUDGE
=
1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
pushd
android-onnxruntime-libs
git lfs pull --include
"jni/x86_64/libonnxruntime.so"
git lfs pull --include
"
$onnxruntime_version
/jni/x86_64/libonnxruntime.so"
ln -s
$onnxruntime_version
/jni .
ln -s
$onnxruntime_version
/headers .
popd
fi
...
...
build-android-x86.sh
0 → 100755
查看文件 @
5d820b8
#!/usr/bin/env bash
set
-ex
dir
=
$PWD
/build-android-x86
mkdir -p
$dir
cd
$dir
# Note from https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-android
# (optional) remove the hardcoded debug flag in Android NDK android-ndk
# issue: https://github.com/android/ndk/issues/243
#
# open $ANDROID_NDK/build/cmake/android.toolchain.cmake for ndk < r23
# or $ANDROID_NDK/build/cmake/android-legacy.toolchain.cmake for ndk >= r23
#
# delete "-g" line
#
# list(APPEND ANDROID_COMPILER_FLAGS
# -g
# -DANDROID
if
[
-z
$ANDROID_NDK
]
;
then
ANDROID_NDK
=
/ceph-fj/fangjun/software/android-sdk/ndk/21.0.6113669
# or use
# ANDROID_NDK=/ceph-fj/fangjun/software/android-ndk
#
# Inside the $ANDROID_NDK directory, you can find a binary ndk-build
# and some other files like the file "build/cmake/android.toolchain.cmake"
if
[
! -d
$ANDROID_NDK
]
;
then
# For macOS, I have installed Android Studio, select the menu
# Tools -> SDK manager -> Android SDK
# and set "Android SDK location" to /Users/fangjun/software/my-android
ANDROID_NDK
=
/Users/fangjun/software/my-android/ndk/22.1.7171670
fi
fi
if
[
! -d
$ANDROID_NDK
]
;
then
echo
Please
set
the environment variable ANDROID_NDK before you run this script
exit
1
fi
echo
"ANDROID_NDK:
$ANDROID_NDK
"
sleep 1
onnxruntime_version
=
v1.15.1
if
[
! -f ./android-onnxruntime-libs/
$onnxruntime_version
/jni/x86/libonnxruntime.so
]
;
then
GIT_LFS_SKIP_SMUDGE
=
1 git clone https://huggingface.co/csukuangfj/android-onnxruntime-libs
pushd
android-onnxruntime-libs
git lfs pull --include
"
$onnxruntime_version
/jni/x86/libonnxruntime.so"
ln -s
$onnxruntime_version
/jni .
ln -s
$onnxruntime_version
/headers .
popd
fi
ls -l ./android-onnxruntime-libs/jni/x86/libonnxruntime.so
# check filesize
filesize
=
$(
ls -l ./android-onnxruntime-libs/jni/x86/libonnxruntime.so | tr -s
" "
" "
| cut -d
" "
-f 5
)
if
((
$filesize
< 1000
))
;
then
ls -lh ./android-onnxruntime-libs/jni/x86/libonnxruntime.so
echo
"Please use: git lfs pull to download libonnxruntime.so"
exit
1
fi
export
SHERPA_ONNXRUNTIME_LIB_DIR
=
$dir
/android-onnxruntime-libs/jni/x86/
export
SHERPA_ONNXRUNTIME_INCLUDE_DIR
=
$dir
/android-onnxruntime-libs/headers/
echo
"SHERPA_ONNXRUNTIME_LIB_DIR:
$SHERPA_ONNXRUNTIME_LIB_DIR
"
echo
"SHERPA_ONNXRUNTIME_INCLUDE_DIR
$SHERPA_ONNXRUNTIME_INCLUDE_DIR
"
cmake -DCMAKE_TOOLCHAIN_FILE
=
"
$ANDROID_NDK
/build/cmake/android.toolchain.cmake"
\
-DCMAKE_BUILD_TYPE
=
Release
\
-DBUILD_SHARED_LIBS
=
ON
\
-DSHERPA_ONNX_ENABLE_PYTHON
=
OFF
\
-DSHERPA_ONNX_ENABLE_TESTS
=
OFF
\
-DSHERPA_ONNX_ENABLE_CHECK
=
OFF
\
-DSHERPA_ONNX_ENABLE_PORTAUDIO
=
OFF
\
-DSHERPA_ONNX_ENABLE_JNI
=
ON
\
-DCMAKE_INSTALL_PREFIX
=
./install
\
-DANDROID_ABI
=
"x86"
\
-DSHERPA_ONNX_ENABLE_C_API
=
OFF
\
-DSHERPA_ONNX_ENABLE_WEBSOCKET
=
OFF
\
-DANDROID_PLATFORM
=
android-21 ..
# make VERBOSE=1 -j4
make -j4
make install/strip
cp -fv android-onnxruntime-libs/jni/x86/libonnxruntime.so install/lib
...
...
release.sh
查看文件 @
5d820b8
...
...
@@ -14,9 +14,10 @@ if [ -d $dst ]; then
exit
0
fi
./build-android-
x86-64
.sh
./build-android-
arm64-v8a
.sh
./build-android-armv7-eabi.sh
./build-android-x86-64.sh
./build-android-x86.sh
./build-ios.sh
mkdir -p
$dst
/jniLibs/arm64-v8a
...
...
@@ -28,6 +29,9 @@ cp -v ./build-android-armv7-eabi/install/lib/*.so $dst/jniLibs/armeabi-v7a/
mkdir -p
$dst
/jniLibs/x86_64
cp -v ./build-android-x86-64/install/lib/
*
.so
$dst
/jniLibs/x86_64
mkdir -p
$dst
/jniLibs/x86
cp -v ./build-android-x86/install/lib/
*
.so
$dst
/jniLibs/x86
mkdir -p
$dst
/build-ios/
cp -av ./build-ios/sherpa-onnx.xcframework
$dst
/build-ios/
...
...
@@ -36,59 +40,6 @@ cp -av ./build-ios/ios-onnxruntime/onnxruntime.xcframework $dst/build-ios/ios-on
cd
$dst
tar cjvf sherpa-onnx-v
${
SHERPA_ONNX_VERSION
}
-pre-compiled-android-libs.tar.bz2 ./jniLibs
tar cjvf sherpa-onnx-v
${
SHERPA_ONNX_VERSION
}
-pre-compiled-ios-libs.tar.bz2 ./build-ios
tar cjvf sherpa-onnx-v
${
SHERPA_ONNX_VERSION
}
-android.tar.bz2 ./jniLibs
# .
# ├── build-ios
# │ ├── ios-onnxruntime
# │ │ └── onnxruntime.xcframework
# │ │ ├── Headers
# │ │ │ ├── cpu_provider_factory.h
# │ │ │ ├── onnxruntime_c_api.h
# │ │ │ ├── onnxruntime_cxx_api.h
# │ │ │ └── onnxruntime_cxx_inline.h
# │ │ ├── Info.plist
# │ │ ├── ios-arm64
# │ │ │ ├── libonnxruntime.a -> onnxruntime.a
# │ │ │ └── onnxruntime.a
# │ │ └── ios-arm64_x86_64-simulator
# │ │ ├── libonnxruntime.a -> onnxruntime.a
# │ │ └── onnxruntime.a
# │ └── sherpa-onnx.xcframework
# │ ├── Headers
# │ │ └── sherpa-onnx
# │ │ └── c-api
# │ │ └── c-api.h
# │ ├── Info.plist
# │ ├── ios-arm64
# │ │ ├── libsherpa-onnx.a -> sherpa-onnx.a
# │ │ └── sherpa-onnx.a
# │ └── ios-arm64_x86_64-simulator
# │ ├── libsherpa-onnx.a -> sherpa-onnx.a
# │ └── sherpa-onnx.a
# ├── jniLibs
# │ ├── arm64-v8a
# │ │ ├── libkaldi-native-fbank-core.so
# │ │ ├── libonnxruntime.so
# │ │ ├── libsherpa-onnx-c-api.so
# │ │ ├── libsherpa-onnx-core.so
# │ │ └── libsherpa-onnx-jni.so
# │ ├── armeabi-v7a
# │ │ ├── libkaldi-native-fbank-core.so
# │ │ ├── libonnxruntime.so
# │ │ ├── libsherpa-onnx-c-api.so
# │ │ ├── libsherpa-onnx-core.so
# │ │ └── libsherpa-onnx-jni.so
# │ └── x86_64
# │ ├── libkaldi-native-fbank-core.so
# │ ├── libonnxruntime.so
# │ ├── libsherpa-onnx-core.so
# │ └── libsherpa-onnx-jni.so
# ├── sherpa-onnx-v1.4.1-pre-compiled-android-libs.tar.bz2
# └── sherpa-onnx-v1.4.1-pre-compiled-ios-libs.tar.bz2
#
# 16 directories, 31 files
#
# 1.4.1 is the current version listed in ./CMakeLists.txt
tar cjvf sherpa-onnx-v
${
SHERPA_ONNX_VERSION
}
-ios.tar.bz2 ./build-ios
...
...
请
注册
或
登录
后发表评论