Build sherpa-onnx as a single shared library (#1078)
When `-D BUILD_SHARED_LIBS=ON` is passed to `cmake`, it builds a single shared library. Specifically, - For C APIs, it builds `libsherpa-onnx-c-api.so` - For Python APIs, it builds `_sherpa_onnx.cpython-xx-xx.so` - For Kotlin and Java APIs, it builds `libsherpa-onnx-jni.so` There is no `libsherpa-onnx-core.so` any longer. Note it affects only shared libraries.
This commit is contained in:
@@ -44,10 +44,6 @@ function process_linux() {
|
||||
|
||||
pushd linux
|
||||
|
||||
rm -v libpiper_phonemize.so libpiper_phonemize.so.1.2.0
|
||||
rm -v libonnxruntime.so
|
||||
rm -v libcargs.so
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
@@ -69,12 +65,6 @@ function process_macos() {
|
||||
cp -v sherpa_onnx/lib/*.dylib ../macos
|
||||
cd ..
|
||||
rm -rf t
|
||||
|
||||
pushd macos
|
||||
rm -v libcargs.dylib
|
||||
rm -v libonnxruntime.dylib
|
||||
rm -v libpiper_phonemize.1.2.0.dylib libpiper_phonemize.dylib
|
||||
popd
|
||||
}
|
||||
|
||||
process_linux
|
||||
|
||||
@@ -36,18 +36,8 @@ def get_dict():
|
||||
|
||||
def process_linux(s):
|
||||
libs = [
|
||||
"libespeak-ng.so",
|
||||
"libkaldi-decoder-core.so",
|
||||
"libkaldi-native-fbank-core.so",
|
||||
"libonnxruntime.so.1.17.1",
|
||||
"libssentencepiece_core.so",
|
||||
"libpiper_phonemize.so.1",
|
||||
"libsherpa-onnx-c-api.so",
|
||||
"libsherpa-onnx-core.so",
|
||||
"libsherpa-onnx-fstfar.so",
|
||||
"libsherpa-onnx-fst.so",
|
||||
"libsherpa-onnx-kaldifst-core.so",
|
||||
"libucd.so",
|
||||
]
|
||||
prefix = f"{src_dir}/linux/"
|
||||
libs = [prefix + lib for lib in libs]
|
||||
@@ -66,18 +56,8 @@ def process_linux(s):
|
||||
|
||||
def process_macos(s, rid):
|
||||
libs = [
|
||||
"libespeak-ng.dylib",
|
||||
"libkaldi-decoder-core.dylib",
|
||||
"libkaldi-native-fbank-core.dylib",
|
||||
"libonnxruntime.1.17.1.dylib",
|
||||
"libssentencepiece_core.dylib",
|
||||
"libpiper_phonemize.1.dylib",
|
||||
"libsherpa-onnx-c-api.dylib",
|
||||
"libsherpa-onnx-core.dylib",
|
||||
"libsherpa-onnx-fstfar.dylib",
|
||||
"libsherpa-onnx-fst.dylib",
|
||||
"libsherpa-onnx-kaldifst-core.dylib",
|
||||
"libucd.dylib",
|
||||
]
|
||||
prefix = f"{src_dir}/macos-{rid}/"
|
||||
libs = [prefix + lib for lib in libs]
|
||||
@@ -96,18 +76,8 @@ def process_macos(s, rid):
|
||||
|
||||
def process_windows(s, rid):
|
||||
libs = [
|
||||
"espeak-ng.dll",
|
||||
"kaldi-decoder-core.dll",
|
||||
"kaldi-native-fbank-core.dll",
|
||||
"onnxruntime.dll",
|
||||
"ssentencepiece_core.dll",
|
||||
"piper_phonemize.dll",
|
||||
"sherpa-onnx-c-api.dll",
|
||||
"sherpa-onnx-core.dll",
|
||||
"sherpa-onnx-fstfar.dll",
|
||||
"sherpa-onnx-fst.dll",
|
||||
"sherpa-onnx-kaldifst-core.dll",
|
||||
"ucd.dll",
|
||||
]
|
||||
|
||||
version = get_version()
|
||||
|
||||
@@ -44,7 +44,7 @@ windows_x86_wheel=$src_dir/$windows_x86_wheel_filename
|
||||
windows_arm64_wheel_filename=sherpa-onnx-${SHERPA_ONNX_VERSION}-win-arm64.tar.bz2
|
||||
windows_arm64_wheel=$src_dir/$windows_arm64_wheel_filename
|
||||
|
||||
if [ ! -f $src_dir/linux/libsherpa-onnx-core.so ]; then
|
||||
if [ ! -f $src_dir/linux/libsherpa-onnx-c-api.so ]; then
|
||||
echo "---linux x86_64---"
|
||||
cd linux
|
||||
mkdir -p wheel
|
||||
@@ -57,15 +57,12 @@ if [ ! -f $src_dir/linux/libsherpa-onnx-core.so ]; then
|
||||
unzip $linux_wheel_filename
|
||||
cp -v sherpa_onnx/lib/*.so* ../
|
||||
cd ..
|
||||
rm -fv libpiper_phonemize.so libpiper_phonemize.so.1.2.0
|
||||
rm -fv libonnxruntime.so
|
||||
rm -fv libcargs.so
|
||||
rm -rf wheel
|
||||
ls -lh
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ ! -f $src_dir/macos-x64/libsherpa-onnx-core.dylib ]; then
|
||||
if [ ! -f $src_dir/macos-x64/libsherpa-onnx-c-api.dylib ]; then
|
||||
echo "--- macOS x86_64---"
|
||||
cd macos-x64
|
||||
mkdir -p wheel
|
||||
@@ -80,15 +77,12 @@ if [ ! -f $src_dir/macos-x64/libsherpa-onnx-core.dylib ]; then
|
||||
|
||||
cd ..
|
||||
|
||||
rm -fv libcargs.dylib
|
||||
rm -fv libonnxruntime.dylib
|
||||
rm -fv libpiper_phonemize.1.2.0.dylib libpiper_phonemize.dylib
|
||||
rm -rf wheel
|
||||
ls -lh
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ ! -f $src_dir/macos-arm64/libsherpa-onnx-core.dylib ]; then
|
||||
if [ ! -f $src_dir/macos-arm64/libsherpa-onnx-c-api.dylib ]; then
|
||||
echo "--- macOS arm64---"
|
||||
cd macos-arm64
|
||||
mkdir -p wheel
|
||||
@@ -103,15 +97,12 @@ if [ ! -f $src_dir/macos-arm64/libsherpa-onnx-core.dylib ]; then
|
||||
|
||||
cd ..
|
||||
|
||||
rm -fv libcargs.dylib
|
||||
rm -fv libonnxruntime.dylib
|
||||
rm -fv libpiper_phonemize.1.2.0.dylib libpiper_phonemize.dylib
|
||||
rm -rf wheel
|
||||
ls -lh
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ ! -f $src_dir/windows-x64/sherpa-onnx-core.dll ]; then
|
||||
if [ ! -f $src_dir/windows-x64/sherpa-onnx-c-api.dll ]; then
|
||||
echo "---windows x64---"
|
||||
cd windows-x64
|
||||
mkdir -p wheel
|
||||
@@ -130,7 +121,7 @@ if [ ! -f $src_dir/windows-x64/sherpa-onnx-core.dll ]; then
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ ! -f $src_dir/windows-x86/sherpa-onnx-core.dll ]; then
|
||||
if [ ! -f $src_dir/windows-x86/sherpa-onnx-c-api.dll ]; then
|
||||
echo "---windows x86---"
|
||||
cd windows-x86
|
||||
mkdir -p wheel
|
||||
@@ -149,7 +140,7 @@ if [ ! -f $src_dir/windows-x86/sherpa-onnx-core.dll ]; then
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ ! -f $src_dir/windows-arm64/sherpa-onnx-core.dll ]; then
|
||||
if [ ! -f $src_dir/windows-arm64/sherpa-onnx-c-api.dll ]; then
|
||||
echo "---windows arm64---"
|
||||
cd windows-arm64
|
||||
mkdir -p wheel
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/x86_64-apple-darwin -lsherpa-onnx-c-api -lsherpa-onnx-core -lkaldi-native-fbank-core -lkaldi-decoder-core -lsherpa-onnx-kaldifst-core -lsherpa-onnx-fstfar -lsherpa-onnx-fst -lpiper_phonemize -lespeak-ng -lucd -lonnxruntime -lssentencepiece_core -Wl,-rpath,${SRCDIR}/lib/x86_64-apple-darwin
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/x86_64-apple-darwin -lsherpa-onnx-c-api -lonnxruntime -Wl,-rpath,${SRCDIR}/lib/x86_64-apple-darwin
|
||||
import "C"
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/aarch64-apple-darwin -lsherpa-onnx-c-api -lsherpa-onnx-core -lkaldi-native-fbank-core -lkaldi-decoder-core -lsherpa-onnx-kaldifst-core -lsherpa-onnx-fstfar -lsherpa-onnx-fst -lpiper_phonemize -lespeak-ng -lucd -lonnxruntime -lssentencepiece_core -Wl,-rpath,${SRCDIR}/lib/aarch64-apple-darwin
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/aarch64-apple-darwin -lsherpa-onnx-c-api -lonnxruntime -Wl,-rpath,${SRCDIR}/lib/aarch64-apple-darwin
|
||||
import "C"
|
||||
|
||||
6
scripts/go/_internal/build_linux_amd64.go
Normal file
6
scripts/go/_internal/build_linux_amd64.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build !android && linux && amd64 && !musl
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/x86_64-unknown-linux-gnu -lsherpa-onnx-c-api -lonnxruntime -Wl,-rpath,${SRCDIR}/lib/x86_64-unknown-linux-gnu
|
||||
import "C"
|
||||
6
scripts/go/_internal/build_linux_arm.go
Normal file
6
scripts/go/_internal/build_linux_arm.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build linux && arm && !arm7
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/arm-unknown-linux-gnueabihf -lsherpa-onnx-c-api -lonnxruntime -Wl,-rpath,${SRCDIR}/lib/arm-unknown-linux-gnueabihf
|
||||
import "C"
|
||||
6
scripts/go/_internal/build_linux_arm64.go
Normal file
6
scripts/go/_internal/build_linux_arm64.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build linux && arm64
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/aarch64-unknown-linux-gnu -lsherpa-onnx-c-api -lsherpa-onnx-core -lkaldi-native-fbank-core -lkaldi-decoder-core -lsherpa-onnx-kaldifst-core -lsherpa-onnx-fstfar -lsherpa-onnx-fst -lpiper_phonemize -lespeak-ng -lucd -lonnxruntime -lssentencepiece_core -Wl,-rpath,${SRCDIR}/lib/aarch64-unknown-linux-gnu
|
||||
import "C"
|
||||
6
scripts/go/_internal/build_windows_386.go
Normal file
6
scripts/go/_internal/build_windows_386.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build windows && 386
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/i686-pc-windows-gnu -lsherpa-onnx-c-api -lonnxruntime
|
||||
import "C"
|
||||
6
scripts/go/_internal/build_windows_amd64.go
Normal file
6
scripts/go/_internal/build_windows_amd64.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build windows && amd64
|
||||
|
||||
package sherpa_onnx
|
||||
|
||||
// #cgo LDFLAGS: -L ${SRCDIR}/lib/x86_64-pc-windows-gnu -lsherpa-onnx-c-api -lonnxruntime
|
||||
import "C"
|
||||
1
scripts/go/_internal/lib/x86_64-unknown-linux-gnu
Symbolic link
1
scripts/go/_internal/lib/x86_64-unknown-linux-gnu
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../build/lib
|
||||
@@ -17,8 +17,11 @@ echo "SHERPA_ONNX_VERSION $SHERPA_ONNX_VERSION"
|
||||
function linux() {
|
||||
echo "Process linux"
|
||||
git clone git@github.com:k2-fsa/sherpa-onnx-go-linux.git
|
||||
rm -v ./sherpa-onnx-go-linux/*.go
|
||||
|
||||
cp -v ./sherpa_onnx.go ./sherpa-onnx-go-linux/
|
||||
cp -v ./_internal/c-api.h ./sherpa-onnx-go-linux/
|
||||
cp -v ./_internal/build_linux_*.go ./sherpa-onnx-go-linux/
|
||||
|
||||
rm -rf sherpa-onnx-go-linux/lib/x86_64-unknown-linux-gnu/lib*
|
||||
dst=$(realpath sherpa-onnx-go-linux/lib/x86_64-unknown-linux-gnu)
|
||||
@@ -29,6 +32,10 @@ function linux() {
|
||||
|
||||
cp -v sherpa_onnx/lib/*.so* $dst
|
||||
|
||||
pushd $dst
|
||||
cp -v libonnxruntime.so.1.17.1 libonnxruntime.so
|
||||
popd
|
||||
|
||||
cd ..
|
||||
rm -rf t
|
||||
|
||||
@@ -41,6 +48,10 @@ function linux() {
|
||||
|
||||
cp -v sherpa_onnx/lib/*.so* $dst
|
||||
|
||||
pushd $dst
|
||||
cp -v libonnxruntime.so.1.17.1 libonnxruntime.so
|
||||
popd
|
||||
|
||||
cd ..
|
||||
rm -rf t
|
||||
|
||||
@@ -53,6 +64,10 @@ function linux() {
|
||||
|
||||
cp -v sherpa_onnx/lib/*.so* $dst
|
||||
|
||||
pushd $dst
|
||||
cp -v libonnxruntime.so.1.17.1 libonnxruntime.so
|
||||
popd
|
||||
|
||||
cd ..
|
||||
rm -rf t
|
||||
|
||||
@@ -71,8 +86,10 @@ function linux() {
|
||||
function osx() {
|
||||
echo "Process osx-x64"
|
||||
git clone git@github.com:k2-fsa/sherpa-onnx-go-macos.git
|
||||
rm -v ./sherpa-onnx-go-macos/*.go
|
||||
cp -v ./sherpa_onnx.go ./sherpa-onnx-go-macos/
|
||||
cp -v ./_internal/c-api.h ./sherpa-onnx-go-macos/
|
||||
cp -v ./_internal/build_darwin_*.go ./sherpa-onnx-go-macos/
|
||||
|
||||
rm -rf sherpa-onnx-go-macos/lib/x86_64-apple-darwin/lib*
|
||||
dst=$(realpath sherpa-onnx-go-macos/lib/x86_64-apple-darwin/)
|
||||
@@ -84,6 +101,10 @@ function osx() {
|
||||
|
||||
cp -v sherpa_onnx/lib/*.dylib $dst/
|
||||
|
||||
pushd $dst
|
||||
cp -v libonnxruntime.1.17.1.dylib libonnxruntime.dylib
|
||||
popd
|
||||
|
||||
cd ..
|
||||
rm -rf t
|
||||
|
||||
@@ -98,6 +119,10 @@ function osx() {
|
||||
|
||||
cp -v sherpa_onnx/lib/*.dylib $dst/
|
||||
|
||||
pushd $dst
|
||||
cp -v libonnxruntime.1.17.1.dylib libonnxruntime.dylib
|
||||
popd
|
||||
|
||||
cd ..
|
||||
rm -rf t
|
||||
echo "------------------------------"
|
||||
@@ -115,8 +140,10 @@ function osx() {
|
||||
function windows() {
|
||||
echo "Process windows"
|
||||
git clone git@github.com:k2-fsa/sherpa-onnx-go-windows.git
|
||||
rm -v ./sherpa-onnx-go-windows/*.go
|
||||
cp -v ./sherpa_onnx.go ./sherpa-onnx-go-windows/
|
||||
cp -v ./_internal/c-api.h ./sherpa-onnx-go-windows/
|
||||
cp -v ./_internal/build_windows_*.go ./sherpa-onnx-go-windows/
|
||||
|
||||
rm -fv sherpa-onnx-go-windows/lib/x86_64-pc-windows-gnu/*
|
||||
dst=$(realpath sherpa-onnx-go-windows/lib/x86_64-pc-windows-gnu)
|
||||
|
||||
@@ -67,15 +67,6 @@ target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
sherpa-onnx-c-api
|
||||
sherpa-onnx-core
|
||||
kaldi-decoder-core
|
||||
sherpa-onnx-kaldifst-core
|
||||
sherpa-onnx-fstfar
|
||||
sherpa-onnx-fst
|
||||
kaldi-native-fbank-core
|
||||
piper_phonemize
|
||||
espeak-ng
|
||||
ucd
|
||||
onnxruntime
|
||||
-Wl,-rpath,$ENV{SHERPA_ONNX_INSTALL_DIR}/lib
|
||||
)
|
||||
|
||||
@@ -2,11 +2,16 @@
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ ! -f ../../build/install/lib/libsherpa-onnx-core.dylib && ! -f ../../build/install/lib/libsherpa-onnx-core.so ]]; then
|
||||
if [[ ! -f ../../build/install/lib/libsherpa-onnx-c-api.dylib && ! -f ../../build/install/lib/libsherpa-c-api.so ]]; then
|
||||
pushd ../../
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON ..
|
||||
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=./install \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
..
|
||||
|
||||
make install
|
||||
popd
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user