mirror of
https://github.com/wez/wezterm.git
synced 2024-12-22 12:51:31 +03:00
38e350e9c8
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.
199 lines
3.9 KiB
Bash
Executable File
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
|