Committed by
GitHub
Support cross-compiling for HarmonyOS (#1553)
正在显示
5 个修改的文件
包含
565 行增加
和
1 行删除
.github/workflows/harmony-os.yaml
0 → 100644
| 1 | +name: harmony-os | ||
| 2 | + | ||
| 3 | +on: | ||
| 4 | + push: | ||
| 5 | + branches: | ||
| 6 | + - master | ||
| 7 | + - ohos | ||
| 8 | + tags: | ||
| 9 | + - 'v[0-9]+.[0-9]+.[0-9]+*' | ||
| 10 | + | ||
| 11 | + workflow_dispatch: | ||
| 12 | + | ||
| 13 | +concurrency: | ||
| 14 | + group: harmony-os-${{ github.ref }} | ||
| 15 | + cancel-in-progress: true | ||
| 16 | + | ||
| 17 | +jobs: | ||
| 18 | + harmony_os: | ||
| 19 | + name: Harmony OS ${{ matrix.arch }} | ||
| 20 | + runs-on: ${{ matrix.os }} | ||
| 21 | + strategy: | ||
| 22 | + fail-fast: false | ||
| 23 | + matrix: | ||
| 24 | + os: [ubuntu-latest] | ||
| 25 | + arch: [arm64-v8a, armeabi-v7a, x86_64] | ||
| 26 | + | ||
| 27 | + steps: | ||
| 28 | + - uses: actions/checkout@v4 | ||
| 29 | + with: | ||
| 30 | + fetch-depth: 0 | ||
| 31 | + | ||
| 32 | + - name: ccache | ||
| 33 | + uses: hendrikmuhs/ccache-action@v1.2 | ||
| 34 | + with: | ||
| 35 | + key: ohos-${{ matrix.arch }} | ||
| 36 | + | ||
| 37 | + - name: cache-toolchain | ||
| 38 | + id: cache-toolchain-ohos | ||
| 39 | + uses: actions/cache@v4 | ||
| 40 | + with: | ||
| 41 | + path: command-line-tools | ||
| 42 | + key: commandline-tools-linux-x64-5.0.5.200.zip | ||
| 43 | + | ||
| 44 | + - name: Download toolchain | ||
| 45 | + if: steps.cache-toolchain-ohos.outputs.cache-hit != 'true' | ||
| 46 | + shell: bash | ||
| 47 | + run: | | ||
| 48 | + curl -SL -O https://huggingface.co/csukuangfj/harmonyos-commandline-tools/resolve/main/commandline-tools-linux-x64-5.0.5.200.zip | ||
| 49 | + unzip commandline-tools-linux-x64-5.0.5.200.zip | ||
| 50 | + rm commandline-tools-linux-x64-5.0.5.200.zip | ||
| 51 | + | ||
| 52 | + - name: Set environment variable | ||
| 53 | + shell: bash | ||
| 54 | + run: | | ||
| 55 | + echo "$GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/build-tools/cmake/bin" >> "$GITHUB_PATH" | ||
| 56 | + which cmake | ||
| 57 | + | ||
| 58 | + cmake --version | ||
| 59 | + | ||
| 60 | + ls -lh $GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/build/cmake/ohos.toolchain.cmake | ||
| 61 | + | ||
| 62 | + echo "====" | ||
| 63 | + cat $GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/build/cmake/ohos.toolchain.cmake | ||
| 64 | + echo "====" | ||
| 65 | + | ||
| 66 | + # echo "$GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/llvm/bin" >> "$GITHUB_PATH" | ||
| 67 | + | ||
| 68 | + ls -lh $GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/llvm/bin/ | ||
| 69 | + echo "--" | ||
| 70 | + ls -lh $GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native/llvm/bin/*unknown* | ||
| 71 | + | ||
| 72 | + cat $GITHUB_PATH | ||
| 73 | + | ||
| 74 | + # /home/runner/work/onnxruntime-libs/onnxruntime-libs/command-line-tools/sdk/default/openharmony/native/llvm/bin/aarch64-unknown-linux-ohos-clang -v || true | ||
| 75 | + export PATH=$PWD/command-line-tools/sdk/default/openharmony/native/llvm/bin:$PATH | ||
| 76 | + echo "path: $PATH" | ||
| 77 | + | ||
| 78 | + which aarch64-unknown-linux-ohos-clang++ || true | ||
| 79 | + which aarch64-unknown-linux-ohos-clang || true | ||
| 80 | + | ||
| 81 | + aarch64-unknown-linux-ohos-clang++ --version || true | ||
| 82 | + aarch64-unknown-linux-ohos-clang --version || true | ||
| 83 | + | ||
| 84 | + which armv7-unknown-linux-ohos-clang++ | ||
| 85 | + which armv7-unknown-linux-ohos-clang | ||
| 86 | + | ||
| 87 | + armv7-unknown-linux-ohos-clang++ --version | ||
| 88 | + armv7-unknown-linux-ohos-clang --version | ||
| 89 | + | ||
| 90 | + which x86_64-unknown-linux-ohos-clang++ | ||
| 91 | + which x86_64-unknown-linux-ohos-clang | ||
| 92 | + | ||
| 93 | + x86_64-unknown-linux-ohos-clang++ --version | ||
| 94 | + x86_64-unknown-linux-ohos-clang --version | ||
| 95 | + | ||
| 96 | + - name: Build ${{ matrix.arch }} | ||
| 97 | + shell: bash | ||
| 98 | + run: | | ||
| 99 | + export CMAKE_CXX_COMPILER_LAUNCHER=ccache | ||
| 100 | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | ||
| 101 | + cmake --version | ||
| 102 | + | ||
| 103 | + arch=${{ matrix.arch }} | ||
| 104 | + | ||
| 105 | + echo "arch: $arch" | ||
| 106 | + | ||
| 107 | + export OHOS_SDK_NATIVE_DIR="$GITHUB_WORKSPACE/command-line-tools/sdk/default/openharmony/native" | ||
| 108 | + | ||
| 109 | + if [[ $arch == arm64-v8a ]]; then | ||
| 110 | + ./build-ohos-arm64-v8a.sh | ||
| 111 | + elif [[ $arch == armeabi-v7a ]]; then | ||
| 112 | + ./build-ohos-armeabi-v7a.sh | ||
| 113 | + elif [[ $arch == x86_64 ]]; then | ||
| 114 | + ./build-ohos-x86-64.sh | ||
| 115 | + else | ||
| 116 | + echo "Unknown arch $arch" | ||
| 117 | + fi | ||
| 118 | + | ||
| 119 | + - name: Collect result for ${{ matrix.arch }} | ||
| 120 | + shell: bash | ||
| 121 | + run: | | ||
| 122 | + SHERPA_ONNX_VERSION=v$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) | ||
| 123 | + echo "SHERPA_ONNX_VERSION=$SHERPA_ONNX_VERSION" >> "$GITHUB_ENV" | ||
| 124 | + | ||
| 125 | + arch=${{ matrix.arch }} | ||
| 126 | + d=sherpa-onnx-$SHERPA_ONNX_VERSION-ohos-$arch | ||
| 127 | + if [[ $arch == x86_64 ]]; then | ||
| 128 | + cd ./build-ohos-x86-64 | ||
| 129 | + else | ||
| 130 | + cd ./build-ohos-$arch | ||
| 131 | + fi | ||
| 132 | + | ||
| 133 | + mv install $d | ||
| 134 | + tar cjfv $d.tar.bz2 $d | ||
| 135 | + | ||
| 136 | + ls -lh $d/lib | ||
| 137 | + | ||
| 138 | + | ||
| 139 | + file $d/lib/* | ||
| 140 | + | ||
| 141 | + readelf -d $d/lib/libsherpa-onnx-c-api.so | ||
| 142 | + | ||
| 143 | + mv $d.tar.bz2 ../ | ||
| 144 | + | ||
| 145 | + - uses: actions/upload-artifact@v4 | ||
| 146 | + with: | ||
| 147 | + name: sherpa-onnx-ohos-${{ matrix.arch }} | ||
| 148 | + path: ./*.tar.bz2 | ||
| 149 | + | ||
| 150 | + - name: Release jar | ||
| 151 | + if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/') | ||
| 152 | + uses: svenstaro/upload-release-action@v2 | ||
| 153 | + with: | ||
| 154 | + file_glob: true | ||
| 155 | + overwrite: true | ||
| 156 | + file: ./*.tar.bz2 | ||
| 157 | + # repo_name: k2-fsa/sherpa-onnx | ||
| 158 | + # repo_token: ${{ secrets.UPLOAD_GH_SHERPA_ONNX_TOKEN }} | ||
| 159 | + # tag: v1.10.23 |
| @@ -125,6 +125,11 @@ if(MSVC) | @@ -125,6 +125,11 @@ if(MSVC) | ||
| 125 | ) | 125 | ) |
| 126 | endif() | 126 | endif() |
| 127 | 127 | ||
| 128 | +if(CMAKE_SYSTEM_NAME STREQUAL OHOS) | ||
| 129 | + set(CMAKE_CXX_FLAGS "-Wno-unused-command-line-argument ${CMAKE_CXX_FLAGS}") | ||
| 130 | + set(CMAKE_C_FLAGS "-Wno-unused-command-line-argument ${CMAKE_C_FLAGS}") | ||
| 131 | +endif() | ||
| 132 | + | ||
| 128 | message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") | 133 | message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") |
| 129 | message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") | 134 | message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") |
| 130 | message(STATUS "BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}") | 135 | message(STATUS "BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}") |
| @@ -263,7 +268,7 @@ message(STATUS "C++ Standard version: ${CMAKE_CXX_STANDARD}") | @@ -263,7 +268,7 @@ message(STATUS "C++ Standard version: ${CMAKE_CXX_STANDARD}") | ||
| 263 | 268 | ||
| 264 | include(CheckIncludeFileCXX) | 269 | include(CheckIncludeFileCXX) |
| 265 | 270 | ||
| 266 | -if(UNIX AND NOT APPLE AND NOT SHERPA_ONNX_ENABLE_WASM AND NOT CMAKE_SYSTEM_NAME STREQUAL Android) | 271 | +if(UNIX AND NOT APPLE AND NOT SHERPA_ONNX_ENABLE_WASM AND NOT CMAKE_SYSTEM_NAME STREQUAL Android AND NOT CMAKE_SYSTEM_NAME STREQUAL OHOS) |
| 267 | check_include_file_cxx(alsa/asoundlib.h SHERPA_ONNX_HAS_ALSA) | 272 | check_include_file_cxx(alsa/asoundlib.h SHERPA_ONNX_HAS_ALSA) |
| 268 | if(SHERPA_ONNX_HAS_ALSA) | 273 | if(SHERPA_ONNX_HAS_ALSA) |
| 269 | message(STATUS "With Alsa") | 274 | message(STATUS "With Alsa") |
build-ohos-arm64-v8a.sh
0 → 100755
| 1 | +#!/usr/bin/env bash | ||
| 2 | +set -ex | ||
| 3 | + | ||
| 4 | +dir=$PWD/build-ohos-arm64-v8a | ||
| 5 | + | ||
| 6 | +mkdir -p $dir | ||
| 7 | +cd $dir | ||
| 8 | + | ||
| 9 | +# Please first download the commandline tools from | ||
| 10 | +# https://developer.huawei.com/consumer/cn/download/ | ||
| 11 | +# | ||
| 12 | +# Example filename on Linux: commandline-tools-linux-x64-5.0.5.200.zip | ||
| 13 | +# You can also download it from https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/tree/main | ||
| 14 | + | ||
| 15 | +# mkdir /star-fj/fangjun/software/huawei | ||
| 16 | +# cd /star-fj/fangjun/software/huawei | ||
| 17 | +# wget https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/resolve/main/commandline-tools-linux-x64-5.0.5.200.zip | ||
| 18 | +# unzip commandline-tools-linux-x64-5.0.5.200.zip | ||
| 19 | +# rm commandline-tools-linux-x64-5.0.5.200.zip | ||
| 20 | +if [ -z $OHOS_SDK_NATIVE_DIR ]; then | ||
| 21 | + OHOS_SDK_NATIVE_DIR=/star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 22 | + export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 23 | + # You can find the following content inside OHOS_SDK_NATIVE_DIR | ||
| 24 | + # ls -lh /star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 25 | + # total 524K | ||
| 26 | + # -rw-r--r-- 1 kuangfangjun root 501K Jan 1 2001 NOTICE.txt | ||
| 27 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build | ||
| 28 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build-tools | ||
| 29 | + # -rw-r--r-- 1 kuangfangjun root 371 Jan 1 2001 compatible_config.json | ||
| 30 | + # drwxr-xr-x 4 kuangfangjun root 0 Nov 6 22:36 docs | ||
| 31 | + # drwxr-xr-x 10 kuangfangjun root 0 Nov 6 22:36 llvm | ||
| 32 | + # -rw-r--r-- 1 kuangfangjun root 16K Jan 1 2001 nativeapi_syscap_config.json | ||
| 33 | + # -rw-r--r-- 1 kuangfangjun root 5.9K Jan 1 2001 ndk_system_capability.json | ||
| 34 | + # -rw-r--r-- 1 kuangfangjun root 167 Jan 1 2001 oh-uni-package.json | ||
| 35 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 sysroot | ||
| 36 | +fi | ||
| 37 | + | ||
| 38 | +# If you don't want to install commandline tools, you can install the SDK | ||
| 39 | +# using DevEco Studio. The following uses API version 10 as an example and | ||
| 40 | +# it has installed the SDK to | ||
| 41 | +# /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 42 | +# | ||
| 43 | +# Remember to select ``native`` when you install the SDK | ||
| 44 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 45 | + OHOS_SDK_NATIVE_DIR=/Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 46 | + # export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 47 | + # ls -lh /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native/ | ||
| 48 | + # total 1560 | ||
| 49 | + # -rw-r--r-- 1 fangjun staff 764K Jan 1 2001 NOTICE.txt | ||
| 50 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build | ||
| 51 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build-tools | ||
| 52 | + # drwxr-xr-x 10 fangjun staff 320B Nov 19 22:42 llvm | ||
| 53 | + # -rw-r--r-- 1 fangjun staff 4.0K Jan 1 2001 nativeapi_syscap_config.json | ||
| 54 | + # -rw-r--r-- 1 fangjun staff 1.9K Jan 1 2001 ndk_system_capability.json | ||
| 55 | + # -rw-r--r-- 1 fangjun staff 169B Jan 1 2001 oh-uni-package.json | ||
| 56 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 sysroot | ||
| 57 | +fi | ||
| 58 | + | ||
| 59 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 60 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 61 | + exit 1 | ||
| 62 | +fi | ||
| 63 | + | ||
| 64 | +export PATH=$OHOS_SDK_NATIVE_DIR/llvm/bin:$PATH | ||
| 65 | + | ||
| 66 | +OHOS_TOOLCHAIN_FILE=$OHOS_SDK_NATIVE_DIR/build/cmake/ohos.toolchain.cmake | ||
| 67 | + | ||
| 68 | +if [ ! -f $OHOS_TOOLCHAIN_FILE ]; then | ||
| 69 | + echo "$OHOS_TOOLCHAIN_FILE does not exist" | ||
| 70 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 71 | + exit 1 | ||
| 72 | +fi | ||
| 73 | + | ||
| 74 | + | ||
| 75 | +sleep 1 | ||
| 76 | +onnxruntime_version=1.16.3 | ||
| 77 | +onnxruntime_dir=onnxruntime-ohos-arm64-v8a-$onnxruntime_version | ||
| 78 | + | ||
| 79 | +if [ ! -f $onnxruntime_dir/lib/libonnxruntime.so ]; then | ||
| 80 | + # wget -c https://github.com/csukuangfj/onnxruntime-libs/releases/download/v${onnxruntime_version}/$onnxruntime_dir.zip | ||
| 81 | + wget -c https://hf-mirror.com/csukuangfj/onnxruntime-libs/resolve/main/$onnxruntime_dir.zip | ||
| 82 | + unzip $onnxruntime_dir.zip | ||
| 83 | + rm $onnxruntime_dir.zip | ||
| 84 | +fi | ||
| 85 | + | ||
| 86 | +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/$onnxruntime_dir/lib | ||
| 87 | +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/$onnxruntime_dir/include | ||
| 88 | + | ||
| 89 | +echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" | ||
| 90 | +echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" | ||
| 91 | + | ||
| 92 | +if [ -z $SHERPA_ONNX_ENABLE_TTS ]; then | ||
| 93 | + SHERPA_ONNX_ENABLE_TTS=ON | ||
| 94 | +fi | ||
| 95 | + | ||
| 96 | +if [ -z $SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION ]; then | ||
| 97 | + SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=ON | ||
| 98 | +fi | ||
| 99 | + | ||
| 100 | +if [ -z $SHERPA_ONNX_ENABLE_BINARY ]; then | ||
| 101 | + SHERPA_ONNX_ENABLE_BINARY=OFF | ||
| 102 | +fi | ||
| 103 | + | ||
| 104 | +cmake \ | ||
| 105 | + -DOHOS_ARCH=arm64-v8a \ | ||
| 106 | + -DCMAKE_TOOLCHAIN_FILE=$OHOS_TOOLCHAIN_FILE \ | ||
| 107 | + -DSHERPA_ONNX_ENABLE_TTS=$SHERPA_ONNX_ENABLE_TTS \ | ||
| 108 | + -DSHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=$SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION \ | ||
| 109 | + -DSHERPA_ONNX_ENABLE_BINARY=$SHERPA_ONNX_ENABLE_BINARY \ | ||
| 110 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 111 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 112 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 113 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 114 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 115 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 116 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 117 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 118 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 119 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 120 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 121 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 122 | + -DCMAKE_INSTALL_PREFIX=./install \ | ||
| 123 | + .. | ||
| 124 | + | ||
| 125 | +# make VERBOSE=1 -j4 | ||
| 126 | +make -j2 | ||
| 127 | +make install/strip | ||
| 128 | +cp -fv $onnxruntime_dir/lib/libonnxruntime.so install/lib | ||
| 129 | +cp -fv $OHOS_SDK_NATIVE_DIR/llvm/lib/aarch64-linux-ohos/libc++_shared.so install/lib | ||
| 130 | + | ||
| 131 | +rm -rf install/share | ||
| 132 | +rm -rf install/lib/pkgconfig |
build-ohos-armeabi-v7a.sh
0 → 100755
| 1 | +#!/usr/bin/env bash | ||
| 2 | +set -ex | ||
| 3 | + | ||
| 4 | +dir=$PWD/build-ohos-armeabi-v7a | ||
| 5 | + | ||
| 6 | +mkdir -p $dir | ||
| 7 | +cd $dir | ||
| 8 | + | ||
| 9 | +# Please first download the commandline tools from | ||
| 10 | +# https://developer.huawei.com/consumer/cn/download/ | ||
| 11 | +# | ||
| 12 | +# Example filename on Linux: commandline-tools-linux-x64-5.0.5.200.zip | ||
| 13 | +# You can also download it from https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/tree/main | ||
| 14 | + | ||
| 15 | +# mkdir /star-fj/fangjun/software/huawei | ||
| 16 | +# cd /star-fj/fangjun/software/huawei | ||
| 17 | +# wget https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/resolve/main/commandline-tools-linux-x64-5.0.5.200.zip | ||
| 18 | +# unzip commandline-tools-linux-x64-5.0.5.200.zip | ||
| 19 | +# rm commandline-tools-linux-x64-5.0.5.200.zip | ||
| 20 | +if [ -z $OHOS_SDK_NATIVE_DIR ]; then | ||
| 21 | + OHOS_SDK_NATIVE_DIR=/star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 22 | + export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 23 | + # You can find the following content inside OHOS_SDK_NATIVE_DIR | ||
| 24 | + # ls -lh /star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 25 | + # total 524K | ||
| 26 | + # -rw-r--r-- 1 kuangfangjun root 501K Jan 1 2001 NOTICE.txt | ||
| 27 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build | ||
| 28 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build-tools | ||
| 29 | + # -rw-r--r-- 1 kuangfangjun root 371 Jan 1 2001 compatible_config.json | ||
| 30 | + # drwxr-xr-x 4 kuangfangjun root 0 Nov 6 22:36 docs | ||
| 31 | + # drwxr-xr-x 10 kuangfangjun root 0 Nov 6 22:36 llvm | ||
| 32 | + # -rw-r--r-- 1 kuangfangjun root 16K Jan 1 2001 nativeapi_syscap_config.json | ||
| 33 | + # -rw-r--r-- 1 kuangfangjun root 5.9K Jan 1 2001 ndk_system_capability.json | ||
| 34 | + # -rw-r--r-- 1 kuangfangjun root 167 Jan 1 2001 oh-uni-package.json | ||
| 35 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 sysroot | ||
| 36 | +fi | ||
| 37 | + | ||
| 38 | +# If you don't want to install commandline tools, you can install the SDK | ||
| 39 | +# using DevEco Studio. The following uses API version 10 as an example and | ||
| 40 | +# it has installed the SDK to | ||
| 41 | +# /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 42 | +# | ||
| 43 | +# Remember to select ``native`` when you install the SDK | ||
| 44 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 45 | + OHOS_SDK_NATIVE_DIR=/Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 46 | + # export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 47 | + # ls -lh /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native/ | ||
| 48 | + # total 1560 | ||
| 49 | + # -rw-r--r-- 1 fangjun staff 764K Jan 1 2001 NOTICE.txt | ||
| 50 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build | ||
| 51 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build-tools | ||
| 52 | + # drwxr-xr-x 10 fangjun staff 320B Nov 19 22:42 llvm | ||
| 53 | + # -rw-r--r-- 1 fangjun staff 4.0K Jan 1 2001 nativeapi_syscap_config.json | ||
| 54 | + # -rw-r--r-- 1 fangjun staff 1.9K Jan 1 2001 ndk_system_capability.json | ||
| 55 | + # -rw-r--r-- 1 fangjun staff 169B Jan 1 2001 oh-uni-package.json | ||
| 56 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 sysroot | ||
| 57 | +fi | ||
| 58 | + | ||
| 59 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 60 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 61 | + exit 1 | ||
| 62 | +fi | ||
| 63 | + | ||
| 64 | +export PATH=$OHOS_SDK_NATIVE_DIR/llvm/bin:$PATH | ||
| 65 | + | ||
| 66 | +OHOS_TOOLCHAIN_FILE=$OHOS_SDK_NATIVE_DIR/build/cmake/ohos.toolchain.cmake | ||
| 67 | + | ||
| 68 | +if [ ! -f $OHOS_TOOLCHAIN_FILE ]; then | ||
| 69 | + echo "$OHOS_TOOLCHAIN_FILE does not exist" | ||
| 70 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 71 | + exit 1 | ||
| 72 | +fi | ||
| 73 | + | ||
| 74 | + | ||
| 75 | +sleep 1 | ||
| 76 | +onnxruntime_version=1.16.3 | ||
| 77 | +onnxruntime_dir=onnxruntime-ohos-armeabi-v7a-$onnxruntime_version | ||
| 78 | + | ||
| 79 | +if [ ! -f $onnxruntime_dir/lib/libonnxruntime.so ]; then | ||
| 80 | + # wget -c https://github.com/csukuangfj/onnxruntime-libs/releases/download/v${onnxruntime_version}/$onnxruntime_dir.zip | ||
| 81 | + wget -c https://hf-mirror.com/csukuangfj/onnxruntime-libs/resolve/main/$onnxruntime_dir.zip | ||
| 82 | + unzip $onnxruntime_dir.zip | ||
| 83 | + rm $onnxruntime_dir.zip | ||
| 84 | +fi | ||
| 85 | + | ||
| 86 | +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/$onnxruntime_dir/lib | ||
| 87 | +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/$onnxruntime_dir/include | ||
| 88 | + | ||
| 89 | +echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" | ||
| 90 | +echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" | ||
| 91 | + | ||
| 92 | +if [ -z $SHERPA_ONNX_ENABLE_TTS ]; then | ||
| 93 | + SHERPA_ONNX_ENABLE_TTS=ON | ||
| 94 | +fi | ||
| 95 | + | ||
| 96 | +if [ -z $SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION ]; then | ||
| 97 | + SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=ON | ||
| 98 | +fi | ||
| 99 | + | ||
| 100 | +if [ -z $SHERPA_ONNX_ENABLE_BINARY ]; then | ||
| 101 | + SHERPA_ONNX_ENABLE_BINARY=OFF | ||
| 102 | +fi | ||
| 103 | + | ||
| 104 | +# See https://github.com/llvm/llvm-project/issues/57732 | ||
| 105 | +# we need to use -mfloat-abi=hard | ||
| 106 | +cmake \ | ||
| 107 | + -DOHOS_ARCH=armeabi-v7a \ | ||
| 108 | + -DCMAKE_CXX_FLAGS="-mfloat-abi=hard" \ | ||
| 109 | + -DCMAKE_C_FLAGS="-mfloat-abi=hard" \ | ||
| 110 | + -DCMAKE_TOOLCHAIN_FILE=$OHOS_TOOLCHAIN_FILE \ | ||
| 111 | + -DSHERPA_ONNX_ENABLE_TTS=$SHERPA_ONNX_ENABLE_TTS \ | ||
| 112 | + -DSHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=$SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION \ | ||
| 113 | + -DSHERPA_ONNX_ENABLE_BINARY=$SHERPA_ONNX_ENABLE_BINARY \ | ||
| 114 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 115 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 116 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 117 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 118 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 119 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 120 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 121 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 122 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 123 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 124 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 125 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 126 | + -DCMAKE_INSTALL_PREFIX=./install \ | ||
| 127 | + .. | ||
| 128 | + | ||
| 129 | +# make VERBOSE=1 -j4 | ||
| 130 | +make -j2 | ||
| 131 | +make install/strip | ||
| 132 | +cp -fv $onnxruntime_dir/lib/libonnxruntime.so install/lib | ||
| 133 | +cp -fv $OHOS_SDK_NATIVE_DIR/llvm/lib/arm-linux-ohos/libc++_shared.so install/lib | ||
| 134 | + | ||
| 135 | +rm -rf install/share | ||
| 136 | +rm -rf install/lib/pkgconfig |
build-ohos-x86-64.sh
0 → 100755
| 1 | +#!/usr/bin/env bash | ||
| 2 | +set -ex | ||
| 3 | + | ||
| 4 | +dir=$PWD/build-ohos-x86-64 | ||
| 5 | + | ||
| 6 | +mkdir -p $dir | ||
| 7 | +cd $dir | ||
| 8 | + | ||
| 9 | +# Please first download the commandline tools from | ||
| 10 | +# https://developer.huawei.com/consumer/cn/download/ | ||
| 11 | +# | ||
| 12 | +# Example filename on Linux: commandline-tools-linux-x64-5.0.5.200.zip | ||
| 13 | +# You can also download it from https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/tree/main | ||
| 14 | + | ||
| 15 | +# mkdir /star-fj/fangjun/software/huawei | ||
| 16 | +# cd /star-fj/fangjun/software/huawei | ||
| 17 | +# wget https://hf-mirror.com/csukuangfj/harmonyos-commandline-tools/resolve/main/commandline-tools-linux-x64-5.0.5.200.zip | ||
| 18 | +# unzip commandline-tools-linux-x64-5.0.5.200.zip | ||
| 19 | +# rm commandline-tools-linux-x64-5.0.5.200.zip | ||
| 20 | +if [ -z $OHOS_SDK_NATIVE_DIR ]; then | ||
| 21 | + OHOS_SDK_NATIVE_DIR=/star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 22 | + export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 23 | + # You can find the following content inside OHOS_SDK_NATIVE_DIR | ||
| 24 | + # ls -lh /star-fj/fangjun/software/huawei/command-line-tools/sdk/default/openharmony/native/ | ||
| 25 | + # total 524K | ||
| 26 | + # -rw-r--r-- 1 kuangfangjun root 501K Jan 1 2001 NOTICE.txt | ||
| 27 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build | ||
| 28 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 build-tools | ||
| 29 | + # -rw-r--r-- 1 kuangfangjun root 371 Jan 1 2001 compatible_config.json | ||
| 30 | + # drwxr-xr-x 4 kuangfangjun root 0 Nov 6 22:36 docs | ||
| 31 | + # drwxr-xr-x 10 kuangfangjun root 0 Nov 6 22:36 llvm | ||
| 32 | + # -rw-r--r-- 1 kuangfangjun root 16K Jan 1 2001 nativeapi_syscap_config.json | ||
| 33 | + # -rw-r--r-- 1 kuangfangjun root 5.9K Jan 1 2001 ndk_system_capability.json | ||
| 34 | + # -rw-r--r-- 1 kuangfangjun root 167 Jan 1 2001 oh-uni-package.json | ||
| 35 | + # drwxr-xr-x 3 kuangfangjun root 0 Nov 6 22:36 sysroot | ||
| 36 | +fi | ||
| 37 | + | ||
| 38 | +# If you don't want to install commandline tools, you can install the SDK | ||
| 39 | +# using DevEco Studio. The following uses API version 10 as an example and | ||
| 40 | +# it has installed the SDK to | ||
| 41 | +# /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 42 | +# | ||
| 43 | +# Remember to select ``native`` when you install the SDK | ||
| 44 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 45 | + OHOS_SDK_NATIVE_DIR=/Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native | ||
| 46 | + # export PATH=$OHOS_SDK_NATIVE_DIR/build-tools/cmake/bin:$PATH | ||
| 47 | + # ls -lh /Users/fangjun/software/huawei/OpenHarmony/Sdk/10/native/ | ||
| 48 | + # total 1560 | ||
| 49 | + # -rw-r--r-- 1 fangjun staff 764K Jan 1 2001 NOTICE.txt | ||
| 50 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build | ||
| 51 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 build-tools | ||
| 52 | + # drwxr-xr-x 10 fangjun staff 320B Nov 19 22:42 llvm | ||
| 53 | + # -rw-r--r-- 1 fangjun staff 4.0K Jan 1 2001 nativeapi_syscap_config.json | ||
| 54 | + # -rw-r--r-- 1 fangjun staff 1.9K Jan 1 2001 ndk_system_capability.json | ||
| 55 | + # -rw-r--r-- 1 fangjun staff 169B Jan 1 2001 oh-uni-package.json | ||
| 56 | + # drwxr-xr-x 3 fangjun staff 96B Nov 19 22:42 sysroot | ||
| 57 | +fi | ||
| 58 | + | ||
| 59 | +if [ ! -d $OHOS_SDK_NATIVE_DIR ]; then | ||
| 60 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 61 | + exit 1 | ||
| 62 | +fi | ||
| 63 | + | ||
| 64 | +export PATH=$OHOS_SDK_NATIVE_DIR/llvm/bin:$PATH | ||
| 65 | + | ||
| 66 | +OHOS_TOOLCHAIN_FILE=$OHOS_SDK_NATIVE_DIR/build/cmake/ohos.toolchain.cmake | ||
| 67 | + | ||
| 68 | +if [ ! -f $OHOS_TOOLCHAIN_FILE ]; then | ||
| 69 | + echo "$OHOS_TOOLCHAIN_FILE does not exist" | ||
| 70 | + echo "Please first download Command Line Tools for HarmonyOS" | ||
| 71 | + exit 1 | ||
| 72 | +fi | ||
| 73 | + | ||
| 74 | + | ||
| 75 | +sleep 1 | ||
| 76 | +onnxruntime_version=1.16.3 | ||
| 77 | +onnxruntime_dir=onnxruntime-ohos-x86_64-$onnxruntime_version | ||
| 78 | + | ||
| 79 | +if [ ! -f $onnxruntime_dir/lib/libonnxruntime.so ]; then | ||
| 80 | + # wget -c https://github.com/csukuangfj/onnxruntime-libs/releases/download/v${onnxruntime_version}/$onnxruntime_dir.zip | ||
| 81 | + wget -c https://hf-mirror.com/csukuangfj/onnxruntime-libs/resolve/main/$onnxruntime_dir.zip | ||
| 82 | + unzip $onnxruntime_dir.zip | ||
| 83 | + rm $onnxruntime_dir.zip | ||
| 84 | +fi | ||
| 85 | + | ||
| 86 | +export SHERPA_ONNXRUNTIME_LIB_DIR=$dir/$onnxruntime_dir/lib | ||
| 87 | +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$dir/$onnxruntime_dir/include | ||
| 88 | + | ||
| 89 | +echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" | ||
| 90 | +echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" | ||
| 91 | + | ||
| 92 | +if [ -z $SHERPA_ONNX_ENABLE_TTS ]; then | ||
| 93 | + SHERPA_ONNX_ENABLE_TTS=ON | ||
| 94 | +fi | ||
| 95 | + | ||
| 96 | +if [ -z $SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION ]; then | ||
| 97 | + SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=ON | ||
| 98 | +fi | ||
| 99 | + | ||
| 100 | +if [ -z $SHERPA_ONNX_ENABLE_BINARY ]; then | ||
| 101 | + SHERPA_ONNX_ENABLE_BINARY=OFF | ||
| 102 | +fi | ||
| 103 | + | ||
| 104 | +cmake \ | ||
| 105 | + -DOHOS_ARCH=x86_64 \ | ||
| 106 | + -DCMAKE_TOOLCHAIN_FILE=$OHOS_TOOLCHAIN_FILE \ | ||
| 107 | + -DSHERPA_ONNX_ENABLE_TTS=$SHERPA_ONNX_ENABLE_TTS \ | ||
| 108 | + -DSHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION=$SHERPA_ONNX_ENABLE_SPEAKER_DIARIZATION \ | ||
| 109 | + -DSHERPA_ONNX_ENABLE_BINARY=$SHERPA_ONNX_ENABLE_BINARY \ | ||
| 110 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 111 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 112 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 113 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 114 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 115 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 116 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 117 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 118 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 119 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 120 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 121 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 122 | + -DCMAKE_INSTALL_PREFIX=./install \ | ||
| 123 | + .. | ||
| 124 | + | ||
| 125 | +# make VERBOSE=1 -j4 | ||
| 126 | +make -j2 | ||
| 127 | +make install/strip | ||
| 128 | +cp -fv $onnxruntime_dir/lib/libonnxruntime.so install/lib | ||
| 129 | +cp -fv $OHOS_SDK_NATIVE_DIR/llvm/lib/x86_64-linux-ohos/libc++_shared.so install/lib | ||
| 130 | + | ||
| 131 | +rm -rf install/share | ||
| 132 | +rm -rf install/lib/pkgconfig |
-
请 注册 或 登录 后发表评论