Skip to content

Instantly share code, notes, and snippets.

@sfan5
Last active June 18, 2023 14:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sfan5/14a5afe7b1639c755258 to your computer and use it in GitHub Desktop.
Save sfan5/14a5afe7b1639c755258 to your computer and use it in GitHub Desktop.
Builds waifu2x-converter-cpp statically linked with a minimal OpenCV build
#!/bin/bash -e
OUTDIR=/tmp/waifu2x-cpp_install
OPENCV_VER=4.7.0
[ -d waifu2x-converter-cpp ] && (cd waifu2x-converter-cpp && git pull) || git clone https://github.com/DeadSix27/waifu2x-converter-cpp
[ -f opencv-$OPENCV_VER.tar.gz ] || wget https://github.com/opencv/opencv/archive/$OPENCV_VER.tar.gz -O opencv-$OPENCV_VER.tar.gz
[ -d opencv-$OPENCV_VER ] || tar -xaf opencv-$OPENCV_VER.tar.gz
cd opencv-$OPENCV_VER
options=$(egrep -o '^OCV_OPTION\(WITH_[A-Z0-9_]+' CMakeLists.txt | cut -d '(' -f 2)
cvlibs=
for option in $options; do
case "${option:5}" in
JPEG|OPENCL|PNG|PTHREADS_PF)
cvlibs+=" -D$option=1"
;;
*)
cvlibs+=" -D$option=0"
;;
esac
done
unset options
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCV_TRACE=0 \
-DBUILD_{DOCS,EXAMPLES,JAVA,PACKAGE,PERF_TESTS,SHARED_LIBS,TESTS,WITH_DEBUG_INFO}=0 \
\
-DBUILD_LIST="opencv_core,gapi,features2d,flann,imgcodecs,imgproc,ml" \
-DBUILD_opencv_apps=0 -DBUILD_opencv_python3=0 \
\
$cvlibs
make -j$(nproc)
make DESTDIR=$PWD/_install install
OPENCV_INSTALL_PATH=$PWD/_install/usr/local
cd ../..
cd waifu2x-converter-cpp
rm -rf build
mkdir build
cd build
CMAKE_PREFIX_PATH=$OPENCV_INSTALL_PATH \
cmake .. \
-DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release \
-DENABLE_CUDA=0 \
-DINSTALL_MODELS=1
make -j$(nproc)
make DESTDIR=$OUTDIR install
cd ../..
cat >$OUTDIR/waifu2x-converter-cpp <<'WRAPPER'
#!/bin/sh
dir="$( cd "$( dirname "$0" )" && pwd )"
LD_LIBRARY_PATH="$dir/lib" \
exec "$dir/bin/waifu2x-converter-cpp" \
--model-dir "$dir/share/waifu2x-converter-cpp" \
"$@"
WRAPPER
chmod +x $OUTDIR/waifu2x-converter-cpp
echo "Done."
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment