summaryrefslogtreecommitdiff
path: root/apps/desktop/script/setup
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-03-27 21:15:00 +0100
committerMaze Winther <mazewinther@gmail.com>2026-03-29 15:58:42 +0200
commitd862e56e34ad1a76836cc2716b473a61879f2205 (patch)
treebf7279fe478810fca345567fbf6ed5fa1ffa8603 /apps/desktop/script/setup
parentd08fbd73e1d1257d87ed21e85fb4dcfc33c094e1 (diff)
downloadopencut-d862e56e34ad1a76836cc2716b473a61879f2205.tar.gz
feat: init desktop app
Diffstat (limited to 'apps/desktop/script/setup')
-rw-r--r--apps/desktop/script/setup110
1 files changed, 110 insertions, 0 deletions
diff --git a/apps/desktop/script/setup b/apps/desktop/script/setup
new file mode 100644
index 00000000..3152a080
--- /dev/null
+++ b/apps/desktop/script/setup
@@ -0,0 +1,110 @@
+#!/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