#!/usr/bin/env bash set -ex # install the wasm toolchainwhich rustup > /dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y # if sudo is not installed, define an empty aliasmaysudo=$(command -v sudo || command -v doas || true) # Ubuntu, Debian, etc.# https://packages.ubuntu.com/apt=$(command -v apt-get || true)if [[ -n $apt ]]; then deps=( gcc g++ libasound2-dev libfontconfig-dev libwayland-dev libxkbcommon-x11-dev libssl-dev libstdc++-12-dev libzstd-dev libvulkan1 libgit2-dev make clang mold jq gettext-base elfutils ) $maysudo "$apt" install -y "${deps[@]}" exit 0fi # Fedora, CentOS, RHEL, etc.# https://packages.fedoraproject.org/dnf=$(command -v dnf || true)if [[ -n $dnf ]]; then deps=( gcc g++ clang mold alsa-lib-devel fontconfig-devel wayland-devel libxkbcommon-x11-devel openssl-devel libzstd-devel # Perl dependencies are needed for openssl-sys crate see https://docs.rs/openssl/latest/openssl/ perl-FindBin perl-IPC-Cmd perl-File-Compare perl-File-Copy vulkan-loader ) # libxkbcommon-x11-devel is in the crb repo on RHEL and CentOS, not needed for Fedora if ! grep -q "Fedora" /etc/redhat-release; then $maysudo "$dnf" config-manager --set-enabled crb fi $maysudo "$dnf" install -y "${deps[@]}" exit 0fi # openSUSE# https://software.opensuse.org/zyp=$(command -v zypper || true)if [[ -n $zyp ]]; then deps=( gcc gcc-c++ clang make alsa-devel fontconfig-devel wayland-devel libxkbcommon-x11-devel openssl-devel libzstd-devel libvulkan1 mold ) $maysudo "$zyp" install -y "${deps[@]}" exit 0fi # Arch, Manjaro, etc.# https://archlinux.org/packagespacman=$(command -v pacman || true)if [[ -n $pacman ]]; then deps=( gcc clang alsa-lib fontconfig wayland libgit2 libxkbcommon-x11 openssl zstd pkgconf mold ) $maysudo "$pacman" -S --needed --noconfirm "${deps[@]}" exit 0fi # Void# https://voidlinux.org/packages/xbps=$(command -v xbps-install || true)if [[ -n $xbps ]]; then deps=( alsa-lib-devel fontconfig-devel libxcb-devel libxkbcommon-devel libzstd-devel openssl-devel wayland-devel vulkan-loader mold ) $maysudo "$xbps" -Syu "${deps[@]}" exit 0fi # Gentoo# https://packages.gentoo.org/emerge=$(command -v emerge || true)if [[ -n $emerge ]]; then deps=( app-arch/zstd dev-libs/openssl dev-libs/wayland media-libs/alsa-lib media-libs/fontconfig media-libs/vulkan-loader x11-libs/libxcb x11-libs/libxkbcommon sys-devel/mold ) $maysudo "$emerge" -u "${deps[@]}" exit 0fi echo "Unsupported Linux distribution in script/linux"
#!/usr/bin/env bash
set -ex
# install the wasm toolchain
which rustup > /dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# if sudo is not installed, define an empty alias
maysudo=$(command -v sudo || command -v doas || true)
# Ubuntu, Debian, etc.
# https://packages.ubuntu.com/
apt=$(command -v apt-get || true)
if [[ -n $apt ]]; then
deps=(
gcc
g++
libasound2-dev
libfontconfig-dev
libwayland-dev
libxkbcommon-x11-dev
libssl-dev
libstdc++-12-dev
libzstd-dev
libvulkan1
libgit2-dev
make
clang
mold
jq
gettext-base
elfutils
)
$maysudo "$apt" install -y "${deps[@]}"
exit 0
fi
# Fedora, CentOS, RHEL, etc.
# https://packages.fedoraproject.org/
dnf=$(command -v dnf || true)
if [[ -n $dnf ]]; then
deps=(
gcc
g++
clang
mold
alsa-lib-devel
fontconfig-devel
wayland-devel
libxkbcommon-x11-devel
openssl-devel
libzstd-devel
# Perl dependencies are needed for openssl-sys crate see https://docs.rs/openssl/latest/openssl/
perl-FindBin
perl-IPC-Cmd
perl-File-Compare
perl-File-Copy
vulkan-loader
)
# libxkbcommon-x11-devel is in the crb repo on RHEL and CentOS, not needed for Fedora
if ! grep -q "Fedora" /etc/redhat-release; then
$maysudo "$dnf" config-manager --set-enabled crb
fi
$maysudo "$dnf" install -y "${deps[@]}"
exit 0
fi
# openSUSE
# https://software.opensuse.org/
zyp=$(command -v zypper || true)
if [[ -n $zyp ]]; then
deps=(
gcc
gcc-c++
clang
make
alsa-devel
fontconfig-devel
wayland-devel
libxkbcommon-x11-devel
openssl-devel
libzstd-devel
libvulkan1
mold
)
$maysudo "$zyp" install -y "${deps[@]}"
exit 0
fi
# Arch, Manjaro, etc.
# https://archlinux.org/packages
pacman=$(command -v pacman || true)
if [[ -n $pacman ]]; then
deps=(
gcc
clang
alsa-lib
fontconfig
wayland
libgit2
libxkbcommon-x11
openssl
zstd
pkgconf
mold
)
$maysudo "$pacman" -S --needed --noconfirm "${deps[@]}"
exit 0
fi
# Void
# https://voidlinux.org/packages/
xbps=$(command -v xbps-install || true)
if [[ -n $xbps ]]; then
deps=(
alsa-lib-devel
fontconfig-devel
libxcb-devel
libxkbcommon-devel
libzstd-devel
openssl-devel
wayland-devel
vulkan-loader
mold
)
$maysudo "$xbps" -Syu "${deps[@]}"
exit 0
fi
# Gentoo
# https://packages.gentoo.org/
emerge=$(command -v emerge || true)
if [[ -n $emerge ]]; then
deps=(
app-arch/zstd
dev-libs/openssl
dev-libs/wayland
media-libs/alsa-lib
media-libs/fontconfig
media-libs/vulkan-loader
x11-libs/libxcb
x11-libs/libxkbcommon
sys-devel/mold
)
$maysudo "$emerge" -u "${deps[@]}"
exit 0
fi
echo "Unsupported Linux distribution in script/linux"