dependency_setup.sh 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/sh
  2. set -e
  3. if [ "$UID" != 0 ]; then
  4. SUDO="$(command -v sudo)"
  5. else
  6. SUDO=""
  7. fi
  8. brew_sh="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"
  9. setup_mac() {
  10. if ! command -v brew >/dev/null; then
  11. echo "brew not found, installing..." >&2
  12. bash -c "$(curl -fL "${brew_sh}")" || return 1
  13. fi
  14. for i in cmake gcc jq pkgconf llvm@13 freetype expat; do
  15. echo "Installing $i with brew..." >&2
  16. brew install "$i" || return 1
  17. done
  18. }
  19. setup_apt() {
  20. APTGET="$SUDO $1"
  21. $APTGET update || return 1
  22. $APTGET install -y build-essential cmake jq wget pkg-config \
  23. clang libclang-dev llvm-dev libudev-dev libfreetype6-dev \
  24. libexpat1-dev || return 1
  25. }
  26. setup_pacman() {
  27. PACMAN="$SUDO $1"
  28. $PACMAN -Sy base-devel cmake wget expat freetype2 fontconfig \
  29. jq openssl clang llvm libgudev
  30. }
  31. setup_xbps() {
  32. XBPS="$SUDO $1"
  33. $XBPS -S base-devel cmake wget expat-devel freetype-devel \
  34. fontconfig-devel jq openssl-devel clang libclang llvm \
  35. libllvm12 libgudev-devel
  36. }
  37. case "$(uname -s)" in
  38. Linux)
  39. if command -v apt >/dev/null; then
  40. echo "Setting up for apt" >&2
  41. setup_apt "$(command -v apt)" || exit 1
  42. echo "Dependencies installed!" >&2
  43. exit 0
  44. fi
  45. if command -v apt-get >/dev/null; then
  46. echo "Setting up for apt-get" >&2
  47. setup_apt "$(command -v apt-get)" || exit 1
  48. echo "Dependencies installed!" >&2
  49. exit 0
  50. fi
  51. if command -v pacman; then
  52. echo "Setting up for pacman" >&2
  53. setup_pacman "$(command -v pacman)" || exit 1
  54. echo "Dependencies installed!" >&2
  55. exit 0
  56. fi
  57. if command -v xbps-install; then
  58. echo "Setting up for xbps" >&2
  59. setup_xbps "$(command -v xbps-install)" || exit 1
  60. echo "Dependencies installed!" >&2
  61. exit 0
  62. fi
  63. echo "Error: Could not recognize your package manager." >&2
  64. exit 1
  65. ;;
  66. Darwin)
  67. echo "Setting up for OSX" >&2
  68. setup_mac || exit 1
  69. echo "Dependencies installed!" >&2
  70. exit 0
  71. ;;
  72. *|"")
  73. echo "Unsupported OS, sorry." >&2
  74. exit 1
  75. ;;
  76. esac