12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/usr/bin/env bash
- # Copyright (c) 2024 Xiaomi Corporation
- #
- # This script is to build sherpa-ncnn for WebAssembly (NodeJS)
- #
- # See also
- # https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-webassembly
- #
- # Please refer to
- # https://k2-fsa.github.io/sherpa/ncnn/wasm/index.html
- # for more details.
- set -ex
- if [ x"$EMSCRIPTEN" == x"" ]; then
- if ! command -v emcc &> /dev/null; then
- echo "Please install emscripten first"
- echo ""
- echo "You can use the following commands to install it:"
- echo ""
- echo "git clone https://github.com/emscripten-core/emsdk.git"
- echo "cd emsdk"
- echo "git pull"
- echo "./emsdk install latest"
- echo "./emsdk activate latest"
- echo "source ./emsdk_env.sh"
- exit 1
- else
- EMSCRIPTEN=$(dirname $(realpath $(which emcc)))
- fi
- fi
- export EMSCRIPTEN=$EMSCRIPTEN
- echo "EMSCRIPTEN: $EMSCRIPTEN"
- if [ ! -f $EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake ]; then
- echo "Cannot find $EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake"
- echo "Please make sure you have installed emsdk correctly"
- exit 1
- fi
- mkdir -p build-wasm-simd-for-nodejs
- pushd build-wasm-simd-for-nodejs
- export SHERPA_NCNN_IS_USING_BUILD_WASM_SH=ON
- cmake \
- -DCMAKE_INSTALL_PREFIX=./install \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake \
- -DNCNN_THREADS=OFF \
- -DNCNN_OPENMP=OFF \
- -DNCNN_SIMPLEOMP=OFF \
- -DNCNN_RUNTIME_CPU=OFF \
- -DNCNN_SSE2=ON \
- -DNCNN_AVX2=OFF \
- -DNCNN_AVX=OFF \
- -DNCNN_BUILD_TOOLS=OFF \
- -DNCNN_BUILD_EXAMPLES=OFF \
- -DNCNN_BUILD_BENCHMARK=OFF \
- \
- -DSHERPA_NCNN_ENABLE_WASM=ON \
- -DSHERPA_NCNN_ENABLE_WASM_FOR_NODEJS=ON \
- -DBUILD_SHARED_LIBS=OFF \
- -DSHERPA_NCNN_ENABLE_PYTHON=OFF \
- -DSHERPA_NCNN_ENABLE_PORTAUDIO=OFF \
- -DSHERPA_NCNN_ENABLE_JNI=OFF \
- -DSHERPA_NCNN_ENABLE_BINARY=OFF \
- -DSHERPA_NCNN_ENABLE_TEST=OFF \
- -DSHERPA_NCNN_ENABLE_C_API=ON \
- -DSHERPA_NCNN_ENABLE_GENERATE_INT8_SCALE_TABLE=OFF \
- -DSHERPA_NCNN_ENABLE_FFMPEG_EXAMPLES=OFF \
- ..
- make -j2
- make install
- ls -lh install/bin/wasm
|