151 lines · 2.8 KB · Text
RawDownload
#!/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"