86 lines
2.1 KiB
Bash
86 lines
2.1 KiB
Bash
#!/bin/bash
|
|
OS=$(uname)
|
|
echo "Martin Eesmaa / VVC Compiler (vvenc and vvdec)"
|
|
echo "You're running on $OS of bash script version to compile VVC binaries"
|
|
echo "Checking and installing required packages..."
|
|
|
|
setup_linux() {
|
|
sudo apt update && sudo apt upgrade -y
|
|
sudo apt install build-essential cmake -y
|
|
}
|
|
|
|
setup_macos() {
|
|
echo "Please make sure Xcode is installed in your Applications."
|
|
if ! command -v brew &> /dev/null; then
|
|
echo "Homebrew is not installed. Please install Homebrew and rerun the script."
|
|
exit 1
|
|
fi
|
|
if ! brew list | grep -q cmake; then
|
|
echo "Installing cmake..."
|
|
brew install cmake
|
|
fi
|
|
}
|
|
|
|
setup_msys64() {
|
|
pacman -Syu --noconfirm
|
|
pacman -S --noconfirm base-devel cmake git
|
|
}
|
|
|
|
setup_freebsd() {
|
|
pkg update && pkg upgrade -y
|
|
pkg install -y cmake git gmake
|
|
}
|
|
|
|
build_repos() {
|
|
if [ ! -d vvenc ]; then
|
|
git clone --depth=1 https://github.com/fraunhoferhhi/vvenc
|
|
else
|
|
git pull -C vvenc
|
|
fi
|
|
|
|
if [ ! -d vvdec ]; then
|
|
git clone --depth=1 https://github.com/fraunhoferhhi/vvdec
|
|
else
|
|
git pull -C vvdec
|
|
fi
|
|
|
|
for REPO in vvenc vvdec; do
|
|
cd $REPO
|
|
mkdir build && cd build
|
|
if [ "$OS" = "Darwin" ]; then
|
|
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build . -j $(sysctl -n hw.ncpu)
|
|
else
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-static" ..
|
|
cmake --build . -j $(nproc)
|
|
fi
|
|
cd -
|
|
done
|
|
echo "Please see the build files starting with (vvenc/vvdec)/bin/release-static."
|
|
}
|
|
|
|
# Main script execution
|
|
case "$OS" in
|
|
Linux)
|
|
setup_linux
|
|
;;
|
|
Darwin)
|
|
setup_macos
|
|
;;
|
|
MSYS_NT*|MINGW64*)
|
|
setup_msys64
|
|
;;
|
|
FreeBSD)
|
|
setup_freebsd
|
|
;;
|
|
*)
|
|
echo "Unsupported OS: $OS"
|
|
echo "Supports Windows MSYS64, macOS, Linux & FreeBSD"
|
|
echo "May coming soon for some platforms..."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
build_repos
|
|
read -p "Finished building vvenc & vvdec. Press [Enter] to continue..."
|