| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #!/bin/sh
- set -e
- if [ "$UID" != 0 ]; then
- SUDO="$(command -v sudo)"
- else
- SUDO=""
- fi
- brew_sh="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"
- setup_mac() {
- if ! command -v brew >/dev/null; then
- echo "brew not found, installing..." >&2
- bash -c "$(curl -fL "${brew_sh}")" || return 1
- fi
- for i in cmake gcc jq pkgconf llvm@13 freetype expat; do
- echo "Installing $i with brew..." >&2
- brew install "$i" || return 1
- done
- }
- setup_apt() {
- APTGET="$SUDO $1"
- $APTGET update || return 1
- $APTGET install -y build-essential cmake jq wget pkg-config \
- clang libclang-dev llvm-dev libudev-dev libfreetype6-dev \
- libexpat1-dev curl gcc make libssl-dev fonts-lato \
- libfontconfig-dev || return 1
- }
- setup_pacman() {
- PACMAN="$SUDO $1"
- $PACMAN -Sy base-devel cmake wget expat freetype2 fontconfig \
- jq openssl clang llvm libgudev
- }
- setup_xbps() {
- XBPS="$SUDO $1"
- $XBPS -S base-devel cmake wget expat-devel freetype-devel \
- fontconfig-devel jq openssl-devel clang libclang llvm \
- libllvm12 libgudev-devel
- }
- setup_dnf() {
- DNF="$SUDO $1"
- $DNF install -y gcc gcc-c++ kernel-headers cmake jq wget \
- pkg-config clang clang-libs llvm-libs \
- rust-libudev-devel rust-freetype-rs-devel \
- rust-expat-sys-devel openssl-devel findutils \
- fontconfig-devel || return 1
- }
- setup_apk() {
- APK="$SUDO $1"
- $APK update
- $APK add cmake jq wget clang curl gcc make llvm-dev openssl-dev expat-dev \
- freetype-dev libudev-zero-dev libgudev-dev pkgconf clang-dev \
- fontconfig-dev build-base || return 1
- }
- setup_zypper() {
- ZYPPER="$SUDO $1"
- $ZYPPER install -y gcc gcc-c++ kernel-headers cmake jq wget git \
- pkg-config clang openssl-devel findutils \
- fontconfig-devel || return 1
- }
- case "$(uname -s)" in
- Linux)
- if command -v apt >/dev/null; then
- echo "Setting up for apt" >&2
- setup_apt "$(command -v apt)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v apt-get >/dev/null; then
- echo "Setting up for apt-get" >&2
- setup_apt "$(command -v apt-get)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v pacman; then
- echo "Setting up for pacman" >&2
- setup_pacman "$(command -v pacman)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v xbps-install; then
- echo "Setting up for xbps" >&2
- setup_xbps "$(command -v xbps-install)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v dnf; then
- echo "Setting up for dnf" >&2
- setup_dnf "$(command -v dnf)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v apk; then
- echo "Setting up for apk" >&2
- setup_apk "$(command -v apk)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- if command -v zypper; then
- echo "Setting up for zypper" >&2
- setup_zypper "$(command -v zypper)" || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- fi
- echo "Error: Could not recognize your package manager." >&2
- exit 1
- ;;
- Darwin)
- echo "Setting up for OSX" >&2
- setup_mac || exit 1
- echo "Dependencies installed!" >&2
- exit 0
- ;;
- *|"")
- echo "Unsupported OS, sorry." >&2
- exit 1
- ;;
- esac
|