dependency_setup.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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_xbps() {
  27. XBPS="$SUDO $1"
  28. $XBPS -S base-devel cmake wget expat-devel freetype-devel \
  29. fontconfig-devel jq openssl-devel clang libclang llvm \
  30. libllvm12 libgudev-devel
  31. }
  32. case "$(uname -s)" in
  33. Linux)
  34. if command -v apt >/dev/null; then
  35. echo "Setting up for apt" >&2
  36. setup_apt "$(command -v apt)" || exit 1
  37. echo "Dependencies installed!" >&2
  38. exit 0
  39. fi
  40. if command -v apt-get >/dev/null; then
  41. echo "Setting up for apt-get" >&2
  42. setup_apt "$(command -v apt-get)" || exit 1
  43. echo "Dependencies installed!" >&2
  44. exit 0
  45. fi
  46. if command -v xbps-install; then
  47. echo "Setting up for xbps" >&2
  48. setup_xbps "$(command -v xbps-install)" || exit 1
  49. echo "Dependencies installed!" >&2
  50. exit 0
  51. fi
  52. echo "Error: Could not recognize your package manager." >&2
  53. exit 1
  54. ;;
  55. Darwin)
  56. echo "Setting up for OSX" >&2
  57. setup_mac || exit 1
  58. echo "Dependencies installed!" >&2
  59. exit 0
  60. ;;
  61. *|"")
  62. echo "Unsupported OS, sorry." >&2
  63. exit 1
  64. ;;
  65. esac