Переглянути джерело

Simplify project system dependencies.

parazyd 3 роки тому
батько
коміт
745389c400
2 змінених файлів з 36 додано та 69 видалено
  1. 9 16
      README.md
  2. 27 53
      contrib/dependency_setup.sh

+ 9 - 16
README.md

@@ -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`

+ 27 - 53
contrib/dependency_setup.sh

@@ -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
 	;;