OpenCut/apps/desktop/script/setup

111 lines
2.0 KiB
Bash

#!/usr/bin/env bash
# Installs the native system libraries GPUI needs to compile on Linux/macOS.
# Run script/setup-rust first if you don't have Rust installed yet.
set -euo pipefail
if [ "$(id -u)" -eq 0 ]; then
maysudo=''
else
maysudo="$(command -v sudo || command -v doas || true)"
fi
# Ubuntu, Debian, Mint, Pop!_OS, Kali, Raspbian, etc.
apt=$(command -v apt-get || true)
if [[ -n $apt ]]; then
deps=(
curl
build-essential
pkg-config
gcc
g++
make
libasound2-dev
libfontconfig-dev
libglib2.0-dev
libssl-dev
libva-dev
libvulkan1
libwayland-dev
libx11-xcb-dev
libxkbcommon-x11-dev
libzstd-dev
libsqlite3-dev
)
$maysudo "$apt" update
$maysudo "$apt" install -y "${deps[@]}"
echo "Desktop native dependencies installed."
exit 0
fi
# Fedora, RHEL, CentOS, Alma, etc.
dnf=$(command -v dnf || true)
if [[ -n $dnf ]]; then
deps=(
gcc
gcc-c++
make
pkg-config
alsa-lib-devel
fontconfig-devel
glib2-devel
openssl-devel
libva-devel
vulkan-loader
wayland-devel
libxcb-devel
libxkbcommon-x11-devel
libzstd-devel
sqlite-devel
curl
)
$maysudo "$dnf" install -y "${deps[@]}"
echo "Desktop native dependencies installed."
exit 0
fi
# Arch, Manjaro, etc.
pacman=$(command -v pacman || true)
if [[ -n $pacman ]]; then
deps=(
gcc
make
pkgconf
alsa-lib
fontconfig
glib2
openssl
libva
vulkan-loader
wayland
libxcb
libxkbcommon-x11
zstd
sqlite
curl
)
$maysudo "$pacman" -Syu --needed --noconfirm "${deps[@]}"
echo "Desktop native dependencies installed."
exit 0
fi
# macOS
if [[ "$(uname)" == "Darwin" ]]; then
if ! xcode-select -p &> /dev/null; then
echo "Installing Xcode Command Line Tools..."
xcode-select --install
echo "Re-run this script after the Xcode install completes."
exit 0
fi
echo "Desktop native dependencies installed."
exit 0
fi
echo "Unsupported platform. See apps/desktop/README.md for manual setup instructions."
exit 1