mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 07:08:05 -05:00
160 lines
3.5 KiB
Bash
160 lines
3.5 KiB
Bash
#!/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
|
|
}
|
|
|
|
setup_emerge() {
|
|
EMERGE="$SUDO $1"
|
|
|
|
$EMERGE dev-util/cmake app-misc/jq net-misc/wget dev-util/pkgconf \
|
|
virtual/libudev media-libs/freetype dev-libs/expat \
|
|
net-misc/curl net-libs/libssh media-libs/fontconfig || return 1
|
|
# sys-devel/clang failed, but it worked anyway
|
|
}
|
|
|
|
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
|
|
|
|
if command -v emerge; then
|
|
echo "Setting up for emerge" >&2
|
|
setup_emerge "$(command -v emerge)" || 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
|