Simplify project system dependencies.

This commit is contained in:
parazyd
2022-11-08 11:38:08 +01:00
parent f062a2bbe9
commit 745389c400
2 changed files with 36 additions and 69 deletions

View File

@@ -36,28 +36,21 @@ Minimum Rust version supported is **1.65.0 (stable)**.
The following dependencies are also required:
| Dependency | Debian-based |
|------------------------------|------------------|
| gcc, gcc-c++, kernel headers | build-essential |
| cmake | cmake |
| jq | jq |
| wget | wget |
| pkg-config | pkg-config |
| clang | clang |
| clang libs | libclang-dev |
| llvm libs | llvm-dev |
| udev libs | libudev-dev |
| freetype2 libs | libfreetype6-dev |
| expat xml lib | libexpat1-dev |
| Dependency | Debian-based |
|----------------|------------------|
| git | git |
| make | make |
| jq | jq |
| gcc | gcc |
| pkg-config | pkg-config |
| openssl libs | openssl-dev |
Users of Debian-based systems (e.g. Ubuntu) can simply run the
following to install the required dependencies:
```shell
# apt-get update
# apt-get install -y build-essential cmake jq wget pkg-config \
clang libclang-dev llvm-dev libudev-dev libfreetype6-dev \
libexpat1-dev
# apt-get install -y git make jq gcc pkg-config openssl-dev
```
Alternatively, users can try using the automated script under `contrib`

View File

@@ -1,10 +1,10 @@
#!/bin/sh
set -e
if [ "$UID" != 0 ]; then
SUDO="$(command -v sudo)"
if [ "$(id -u)" != 0 ]; then
SUDO="${SUDO:-$(command -v sudo)}"
else
SUDO=""
SUDO="${SUDO:-}"
fi
brew_sh="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"
@@ -15,99 +15,73 @@ setup_mac() {
bash -c "$(curl -fL "${brew_sh}")" || return 1
fi
for i in cmake gcc jq pkgconf llvm@13 freetype expat; do
for i in cmake gcc jq pkgconf llvm@13; 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
apt_deps="git make jq gcc pkg-config libssl-dev"
$1 install "$apt_deps" || return 1
}
setup_pacman() {
PACMAN="$SUDO $1"
$PACMAN -Sy base-devel cmake wget expat freetype2 fontconfig \
jq openssl clang llvm libgudev
pacman_deps="git make jq gcc pkgconf openssl"
$1 -Sy "$pacman_deps" || return 1
}
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
xbps_deps="git make jq gcc pkg-config openssl-devel"
$1 -S "$xbps_deps" || return 1
}
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
dnf_deps="git make jq gcc pkg-config openssl-devel findutils"
$1 install -y "$dnf_deps" || 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
apk_deps="git make jq gcc musl-dev openssl-dev"
$1 add "$apk_deps" || 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
zypper_deps="git make jq gcc pkg-config openssl-devel findutils"
$1 install -y "$zypper_deps" || 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
emerge_deps="dev-vcs/git app-misc/jq dev-util/pkgconf dev-libs/openssl"
$1 "$emerge_deps" || 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
setup_apt "$SUDO $(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
setup_apt "$SUDO $(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
setup_pacman "$SUDO $(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
setup_xbps "$SUDO $(command -v xbps-install)" || exit 1
echo "Dependencies installed!" >&2
exit 0
fi
@@ -115,28 +89,28 @@ Linux)
if command -v dnf; then
echo "Setting up for dnf" >&2
setup_dnf "$(command -v dnf)" || exit 1
setup_dnf "$SUDO $(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
setup_apk "$SUDO $(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
setup_zypper "$SUDO $(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
setup_emerge "$SUDO $(command -v emerge)" || exit 1
echo "Dependencies installed!" >&2
exit 0
fi
@@ -152,7 +126,7 @@ Darwin)
exit 0
;;
*|"")
""|*)
echo "Unsupported OS, sorry." >&2
exit 1
;;