Files
UltraGrid/bootstrap_gpujpeg.sh
2021-08-10 14:43:15 +01:00

93 lines
2.4 KiB
Bash
Executable File

#!/bin/sh -e
UG_SRC_PATH=$(dirname $0)
SRC_DIR=ext-deps/gpujpeg
BUILD_DIR=$SRC_DIR/build
INSTALL_DIR=$SRC_DIR/install
CMAKE_ARGUMENTS="-DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_POSITION_INDEPENDENT_CODE=ON"
SUDO=
UPDATE=no
DOWNLOAD_ONLY=no
while getopts 'dfhsu' opt; do
case "$opt" in
'h'|'?')
cat <<-EOF
Downlads and builds GPUJPEG to be used with UltraGrid. It is downloaded to $SRC_DIR
and statically built. UltraGrid configure then automatically finds the library with
pkgconfig in $INSTALL_DIR/share/pkgconfig when called from same directory as this script.
Usage:
$0 [-d|-f|-s|-u]
Options:
-d - download only
-f - remove previously downloaded GPUJPEG
-s - causes GPUJPEG to be compiled as a dynamic library and installed system-wide
-u - update previously downloaded GPUJPEG
EOF
exit 0
;;
'd')
DOWNLOAD_ONLY=yes
;;
'f')
rm -rf $SRC_DIR
;;
's')
CMAKE_ARGUMENTS="-DBUILD_SHARED_LIBS=ON"
SUDO=$(command -v sudo || true)
;;
'u')
UPDATE=yes
;;
esac
done
download_win_gpujpeg_from_github() {
echo "MSYS2 detected - downloading prebuilt GPUJPEG instead"
if [ $UPDATE = no -a -d $SRC_DIR ]; then
echo "$SRC_DIR already exists and is a not empty directory!" >&2
echo "Use -u (or -f) to update"
exit 1
fi
mkdir -p ext-deps
rm -f GPUJPEG.zip
wget https://github.com/CESNET/GPUJPEG/releases/download/continuous/GPUJPEG.zip
[ $UPDATE = yes ] && rm -rf $SRC_DIR
unzip -d ext-deps GPUJPEG
rm GPUJPEG.zip
[ $DOWNLOAD_ONLY = yes ] && exit 0
cp -r $SRC_DIR/bin $SRC_DIR/include $SRC_DIR/lib $MSYSTEM_PREFIX
echo "Installed to $MSYSTEM_PREFIX"
mkdir -p bin
cp $SRC_DIR/bin/*dll bin
exit 0
}
if [ $OPTIND -eq 1 ]; then
echo "See also '$0 -h' for available options."
fi
if [ "${MSYSTEM:-}" = MSYS ]; then
download_win_gpujpeg_from_github
fi
if [ $UPDATE = yes ]; then
( cd $SRC_DIR; git pull )
else
git clone --depth 1 https://github.com/CESNET/GPUJPEG.git $SRC_DIR
fi
[ $DOWNLOAD_ONLY = yes ] && exit 0
cmake $CMAKE_ARGUMENTS $SRC_DIR -B$BUILD_DIR
CMAKE_COMPILE_FLAGS=
CMAKE_VER=`cmake --version | head -n 1 | cut -f 3 -d\ `
if [ "$($UG_SRC_PATH/.github/scripts/Linux/utils/semver.sh $CMAKE_VER 3.12)" -ge 0 ]; then
CMAKE_COMPILE_FLAGS=--parallel
fi
cmake --build $BUILD_DIR $CMAKE_COMPILE_FLAGS
${SUDO} cmake --install $BUILD_DIR
# vim: set noexpandtab: