1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/usr/bin/env bash
- set -e
- DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
- ROOT="$(cd $DIR/../ && pwd)"
- ARCH=$(uname -m)
- if [[ $SHELL == "/bin/zsh" ]]; then
- RC_FILE="$HOME/.zshrc"
- elif [[ $SHELL == "/bin/bash" ]]; then
- RC_FILE="$HOME/.bash_profile"
- fi
- # Install brew if required
- if [[ $(command -v brew) == "" ]]; then
- echo "Installing Homebrew"
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- echo "[ ] installed brew t=$SECONDS"
- # make brew available now
- if [[ $ARCH == "x86_64" ]]; then
- echo 'eval "$(/usr/local/bin/brew shellenv)"' >> $RC_FILE
- eval "$(/usr/local/bin/brew shellenv)"
- else
- echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $RC_FILE
- eval "$(/opt/homebrew/bin/brew shellenv)"
- fi
- fi
- brew bundle --file=- <<-EOS
- brew "cppcheck"
- brew "git-lfs"
- brew "zlib"
- brew "capnp"
- brew "coreutils"
- brew "eigen"
- brew "ffmpeg"
- brew "glfw"
- brew "libarchive"
- brew "libusb"
- brew "libtool"
- brew "llvm"
- brew "openssl@3.0"
- brew "qt@5"
- brew "zeromq"
- cask "gcc-arm-embedded"
- brew "portaudio"
- brew "gcc@13"
- EOS
- echo "[ ] finished brew install t=$SECONDS"
- BREW_PREFIX=$(brew --prefix)
- # archive backend tools for pip dependencies
- export LDFLAGS="$LDFLAGS -L${BREW_PREFIX}/opt/zlib/lib"
- export LDFLAGS="$LDFLAGS -L${BREW_PREFIX}/opt/bzip2/lib"
- export CPPFLAGS="$CPPFLAGS -I${BREW_PREFIX}/opt/zlib/include"
- export CPPFLAGS="$CPPFLAGS -I${BREW_PREFIX}/opt/bzip2/include"
- # pycurl curl/openssl backend dependencies
- export LDFLAGS="$LDFLAGS -L${BREW_PREFIX}/opt/openssl@3/lib"
- export CPPFLAGS="$CPPFLAGS -I${BREW_PREFIX}/opt/openssl@3/include"
- export PYCURL_CURL_CONFIG=/usr/bin/curl-config
- export PYCURL_SSL_LIBRARY=openssl
- # install python dependencies
- $DIR/install_python_dependencies.sh
- echo "[ ] installed python dependencies t=$SECONDS"
- # brew does not link qt5 by default
- # check if qt5 can be linked, if not, prompt the user to link it
- QT_BIN_LOCATION="$(command -v lupdate || :)"
- if [ -n "$QT_BIN_LOCATION" ]; then
- # if qt6 is linked, prompt the user to unlink it and link the right version
- QT_BIN_VERSION="$(lupdate -version | awk '{print $NF}')"
- if [[ ! "$QT_BIN_VERSION" =~ 5\.[0-9]+\.[0-9]+ ]]; then
- echo
- echo "lupdate/lrelease available at PATH is $QT_BIN_VERSION"
- if [[ "$QT_BIN_LOCATION" == "$(brew --prefix)/"* ]]; then
- echo "Run the following command to link qt5:"
- echo "brew unlink qt@6 && brew link qt@5"
- else
- echo "Remove conflicting qt entries from PATH and run the following command to link qt5:"
- echo "brew link qt@5"
- fi
- fi
- else
- brew link qt@5
- fi
- echo
- echo "---- OPENPILOT SETUP DONE ----"
- echo "Open a new shell or configure your active shell env by running:"
- echo "source $RC_FILE"
|