mirror of
https://github.com/wez/wezterm.git
synced 2024-12-18 02:42:05 +03:00
6404099d25
* WIP: IME support for X11 * Handle text generated by IME. * Set IME position according to the cursor position. * Improve IME position handling. Geometry as well as window focus changes are now handled. * Dispatch IME strings like it's done on windows. * Make sure not to silently drop IME errors. * Respect `use_ime` configuration. * Add xcb-util as dependency. * Only update IME position if necessary. * Formatting. * Update xcb-imdkit-rs. * Set IME position under the start of the cursor. This seems to be the way it is commonly done among gui frameworks. (Tested with Firefox for GTK and Konsole for QT). * Update xcb-imdkit-rs. * Handle systems only providing libxcb-util0-dev. * Add libxcb to freebsd dependencies. Required by xcb-imdkit-rs. * Update xcb-imdkit-rs. * Try to use more recent gcc on centos7. * More recent C++ compiler on centos7 as well. * Also setup correct env on centos7 for tests.
206 lines
4.1 KiB
Bash
Executable File
206 lines
4.1 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-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-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-cache show libxcb-util-dev > /dev/null 2>&1 && XCBUTIL="libxcb-util-dev" || XCBUTIL="libxcb-util0-dev"
|
|
$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 \
|
|
"$XCBUTIL" \
|
|
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' \
|
|
'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 \
|
|
libxcb \
|
|
xcb-util \
|
|
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
|