1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-25 21:07:39 +03:00
wezterm/get-deps
Wez Furlong 38e350e9c8 ErrorKind::Unsupported is rust 1.53 and up
This isn't a hard requirement, but tracking 1.53 doesn't
feel like a burden as 1.54 is now the stable rust version.
2021-07-29 19:50:22 -07:00

199 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
min_rust=(1 53 0)
rust_ver=()
parse_rustc_version() {
local IFS
IFS=' '
local FIELDS
read -ra FIELDS <<< $(rustc --version)
IFS='.'
read -ra rust_ver <<< "${FIELDS[1]}"
}
check_rust_version() {
parse_rustc_version
# rust_ver=(1 46 0) for testing purposes
if [[ "${rust_ver[0]}" -gt "${min_rust[0]}" ]] ; then
return 0
fi
if [[ "${rust_ver[0]}" -lt "${min_rust[0]}" ]] ; then
return 1
fi
if [[ "${rust_ver[1]}" -gt "${min_rust[1]}" ]] ; then
return 0
fi
if [[ "${rust_ver[1]}" -lt "${min_rust[1]}" ]] ; then
return 1
fi
if [[ "${rust_ver[2]}" -gt "${min_rust[2]}" ]] ; then
return 0
fi
if [[ "${rust_ver[2]}" -lt "${min_rust[2]}" ]] ; then
return 1
fi
return 0
}
if ! check_rust_version ; then
rust_ver=$(IFS=. ; echo "${rust_ver[*]}")
min_rust=$(IFS=. ; echo "${min_rust[*]}")
echo "Installed rustc version $rust_ver is less than required $min_rust"
echo
echo "Using rustup to manage your installed version of Rust is recommended"
echo "https://www.rust-lang.org/en-US/install.html"
echo
echo "See https://wezfurlong.org/wezterm/install/source.html for complete"
echo "installation instructions for wezterm"
exit 1
fi
if test -z "${SUDO+x}" && hash sudo 2>/dev/null; then
SUDO="sudo"
fi
# Centos may not have lsb_release installed
if test -e /etc/centos-release || test -e /etc/fedora-release; then
if test -x /bin/dnf ; then
YUM="$SUDO dnf"
else
YUM="$SUDO yum"
fi
# Fedora 33 moved some perl bits around
$YUM install -y perl-FindBin perl-File-Compare || true
$YUM install -y \
make \
gcc \
gcc-c++ \
fontconfig-devel \
openssl-devel \
perl-interpreter \
python3 \
libxcb-devel \
libxkbcommon-devel \
libxkbcommon-x11-devel \
wayland-devel \
mesa-libEGL-devel \
xcb-util-keysyms-devel \
xcb-util-image-devel \
xcb-util-wm-devel \
rpm-build \
redhat-lsb-core
exit $?
fi
if test -x /usr/bin/lsb_release && test `lsb_release -si` = "openSUSE"; then
ZYPPER="$SUDO zypper"
$ZYPPER install -y perl-FindBin perl-File-Compare || true
$ZYPPER install -y \
make \
gcc \
gcc-c++ \
fontconfig-devel \
openssl-devel \
perl \
python3 \
libxcb-devel \
libxkbcommon-devel \
libxkbcommon-x11-devel \
wayland-devel \
Mesa-libEGL-devel \
xcb-util-keysyms-devel \
xcb-util-image-devel \
xcb-util-wm-devel \
rpm-build
exit $?
fi
if test -e /etc/debian_version ; then
APT="$SUDO apt-get"
$APT install -y \
bsdutils \
cmake \
dpkg-dev \
fakeroot \
gcc \
g++ \
libegl1-mesa-dev \
libssl-dev \
libfontconfig1-dev \
libwayland-dev \
libx11-xcb-dev \
libxcb-ewmh-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-keysyms1-dev \
libxcb-render0-dev \
libxcb-xkb-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
lsb-release \
python3 \
xdg-utils \
xorg-dev
exit $?
fi
if test -e /etc/arch-release ; then
PACMAN="$SUDO pacman"
$PACMAN -S --noconfirm --needed \
'cargo' \
'cmake' \
'fontconfig' \
'git' \
'hicolor-icon-theme' \
'libx11' \
'libxkbcommon-x11' \
'pkgconf' \
'python3' \
'rust' \
'wayland' \
'xcb-util-image' \
'xcb-util-keysyms' \
'xcb-util-wm'
exit $?
fi
case $OSTYPE in
darwin*|msys)
exit 0
;;
freebsd*)
PKG="$SUDO pkg"
$PKG install -y \
cmake \
curl \
egl-wayland \
expat \
fontconfig \
gcc \
gettext \
git \
gmake \
libxcb \
libxkbcommon \
mesa-devel \
openssl \
p5-ExtUtils-MakeMaker \
perl5 \
pkgconf \
python3 \
rust \
wayland \
xcb-util-image \
xcb-util-keysyms \
xcb-util-wm \
z \
zip
exit $?
;;
*)
echo "Please contribute the commands to install the deps"
echo "For `lsb_release -ds`"
exit 1
;;
esac