mirror of https://github.com/alibaba/MNN.git
52 lines
1.4 KiB
Bash
Executable File
52 lines
1.4 KiB
Bash
Executable File
set -e
|
|
|
|
usage() {
|
|
echo "Usage: $0 -o path [-b]"
|
|
echo -e "\t-o package files output directory"
|
|
echo -e "\t-v MNN dist version"
|
|
echo -e "\t-b opencl backend"
|
|
exit 1
|
|
}
|
|
|
|
while getopts "o:v:hb" opt; do
|
|
case "$opt" in
|
|
o ) path=$OPTARG ;;
|
|
v ) mnn_version=$OPTARG ;;
|
|
b ) opencl=true ;;
|
|
h|? ) usage ;;
|
|
esac
|
|
done
|
|
|
|
torch_libs="$(pwd)/pymnn_build/tools/converter/libtorch/lib"
|
|
./schema/generate.sh
|
|
rm -rf $path && mkdir -p $path
|
|
PACKAGE_PATH=$(realpath $path)
|
|
|
|
CMAKE_ARGS="-DMNN_BUILD_CONVERTER=on -DMNN_BUILD_TRAIN=ON -DCMAKE_BUILD_TYPE=Release -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_SEP_BUILD=OFF -DMNN_USE_THREAD_POOL=OFF -DMNN_OPENMP=ON -DMNN_BUILD_OPENCV=ON -DMNN_IMGCODECS=ON -DMNN_BUILD_TORCH=ON"
|
|
if [ ! -z $opencl ]; then
|
|
CMAKE_ARGS="$CMAKE_ARGS -DMNN_OPENCL=ON"
|
|
fi
|
|
rm -rf pymnn_build && mkdir pymnn_build
|
|
pushd pymnn_build
|
|
cmake $CMAKE_ARGS .. && make MNN MNNTrain MNNConvert MNNOpenCV -j24
|
|
popd
|
|
|
|
pushd pymnn/pip_package
|
|
rm -rf build && mkdir build
|
|
rm -rf dist && mkdir dist
|
|
rm -rf wheelhouse && mkdir wheelhouse
|
|
|
|
#Compile wheels
|
|
for PYBIN in /opt/python/*/bin; do
|
|
"${PYBIN}/pip" install -U numpy
|
|
"${PYBIN}/python" setup.py bdist_wheel --version $mnn_version
|
|
done
|
|
|
|
# Bundle external shared libraries into the wheels
|
|
export LD_LIBRARY_PATH=$torch_libs:$LD_LIBRARY_PATH
|
|
for whl in dist/*.whl; do
|
|
auditwheel repair "$whl" --plat manylinux2014_x86_64 -w wheelhouse
|
|
done
|
|
cp wheelhouse/* $PACKAGE_PATH
|
|
popd
|