151 lines
4.9 KiB
Bash
Executable File
151 lines
4.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Note: This script is to build sherpa-onnx for flutter/dart, which requires
|
|
# us to use shared libraries for sherpa-onnx.
|
|
#
|
|
# Note: We still use static libraries for onnxruntime.
|
|
|
|
set -e
|
|
|
|
dir=build-ios-shared
|
|
mkdir -p $dir
|
|
cd $dir
|
|
onnxruntime_version=1.17.1
|
|
onnxruntime_dir=ios-onnxruntime/$onnxruntime_version
|
|
|
|
SHERPA_ONNX_GITHUB=github.com
|
|
|
|
if [ "$SHERPA_ONNX_GITHUB_MIRROW" == true ]; then
|
|
SHERPA_ONNX_GITHUB=hub.nuaa.cf
|
|
fi
|
|
|
|
if [ ! -z CMAKE_VERBOSE_MAKEFILE ]; then
|
|
CMAKE_VERBOSE_MAKEFILE=ON
|
|
else
|
|
CMAKE_VERBOSE_MAKEFILE=OFF
|
|
fi
|
|
|
|
if [ ! -f $onnxruntime_dir/onnxruntime.xcframework/ios-arm64/onnxruntime.a ]; then
|
|
mkdir -p $onnxruntime_dir
|
|
pushd $onnxruntime_dir
|
|
wget -c https://${SHERPA_ONNX_GITHUB}/csukuangfj/onnxruntime-libs/releases/download/v${onnxruntime_version}/onnxruntime.xcframework-${onnxruntime_version}.tar.bz2
|
|
tar xvf onnxruntime.xcframework-${onnxruntime_version}.tar.bz2
|
|
rm onnxruntime.xcframework-${onnxruntime_version}.tar.bz2
|
|
cd ..
|
|
ln -sf $onnxruntime_version/onnxruntime.xcframework .
|
|
popd
|
|
fi
|
|
|
|
# First, for simulator
|
|
echo "Building for simulator (x86_64)"
|
|
|
|
export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/ios-arm64_x86_64-simulator
|
|
export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/Headers
|
|
|
|
echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR"
|
|
echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR"
|
|
|
|
# Note: We use -DENABLE_ARC=1 here to fix the linking error:
|
|
#
|
|
# The symbol _NSLog is not defined
|
|
#
|
|
if [[ ! -f build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ]]; then
|
|
cmake \
|
|
-DSHERPA_ONNX_ENABLE_BINARY=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_EXE=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_TESTS=OFF \
|
|
-DBUILD_ESPEAK_NG_EXE=OFF \
|
|
-DBUILD_ESPEAK_NG_TESTS=OFF \
|
|
-S .. -D CMAKE_VERBOSE_MAKEFILE=$CMAKE_VERBOSE_MAKEFILE \
|
|
-DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \
|
|
-DPLATFORM=SIMULATOR64 \
|
|
-DENABLE_BITCODE=0 \
|
|
-DENABLE_ARC=1 \
|
|
-DENABLE_VISIBILITY=1 \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=./build/simulator_x86_64/install \
|
|
-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=OFF \
|
|
-DSHERPA_ONNX_ENABLE_C_API=ON \
|
|
-DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
|
|
-DDEPLOYMENT_TARGET=13.0 \
|
|
-B build/simulator_x86_64
|
|
|
|
cmake --build build/simulator_x86_64 -j 4 --target install
|
|
fi
|
|
|
|
echo "Building for simulator (arm64)"
|
|
|
|
if [[ ! -f build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ]]; then
|
|
cmake \
|
|
-DSHERPA_ONNX_ENABLE_BINARY=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_EXE=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_TESTS=OFF \
|
|
-DBUILD_ESPEAK_NG_EXE=OFF \
|
|
-DBUILD_ESPEAK_NG_TESTS=OFF \
|
|
-S .. -D CMAKE_VERBOSE_MAKEFILE=$CMAKE_VERBOSE_MAKEFILE \
|
|
-DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \
|
|
-DPLATFORM=SIMULATORARM64 \
|
|
-DENABLE_BITCODE=0 \
|
|
-DENABLE_ARC=1 \
|
|
-DENABLE_VISIBILITY=1 \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=./build/simulator_arm64/install \
|
|
-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=OFF \
|
|
-DSHERPA_ONNX_ENABLE_C_API=ON \
|
|
-DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
|
|
-DDEPLOYMENT_TARGET=13.0 \
|
|
-B build/simulator_arm64
|
|
|
|
cmake --build build/simulator_arm64 -j 4 --target install
|
|
fi
|
|
|
|
echo "Building for arm64"
|
|
|
|
if [[ ! -f build/os64/install/lib/libsherpa-onnx-c-api.dylib ]]; then
|
|
export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/ios-arm64
|
|
|
|
cmake \
|
|
-DSHERPA_ONNX_ENABLE_BINARY=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_EXE=OFF \
|
|
-DBUILD_PIPER_PHONMIZE_TESTS=OFF \
|
|
-DBUILD_ESPEAK_NG_EXE=OFF \
|
|
-DBUILD_ESPEAK_NG_TESTS=OFF \
|
|
-S .. -D CMAKE_VERBOSE_MAKEFILE=$CMAKE_VERBOSE_MAKEFILE \
|
|
-DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \
|
|
-DPLATFORM=OS64 \
|
|
-DENABLE_BITCODE=0 \
|
|
-DENABLE_ARC=1 \
|
|
-DENABLE_VISIBILITY=1 \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=./build/os64/install \
|
|
-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=OFF \
|
|
-DSHERPA_ONNX_ENABLE_C_API=ON \
|
|
-DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
|
|
-DDEPLOYMENT_TARGET=13.0 \
|
|
-B build/os64
|
|
|
|
cmake --build build/os64 -j 4 --target install
|
|
fi
|
|
|
|
echo "Collect dynamic libraries "
|
|
mkdir -p ios-arm64 ios-arm64-simulator ios-x86_64-simulator
|
|
|
|
cp -v ./build/os64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64/
|
|
cp -v ./build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64-simulator
|
|
cp -v .//build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ios-x86_64-simulator
|