1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
wezterm/get-deps
HMH 6404099d25
IME support on X11 (#1043)
* 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.
2021-08-19 20:51:56 -07:00

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