#!/bin/bash
# Script installing dependencies
# Inspired by https://github.com/google/fruit

set -e

# Helper for travis folding
travis_fold() {
  local action=$1
  local name=$2
  echo -en "travis_fold:${action}:${name}\r"
}

# Helper for installing packages via homebrew
install_brew_package() {
  if brew list -1 | grep -q "^$1\$"; then
    # Package is installed, upgrade if needed
    brew outdated "$1" || brew upgrade "$@"
  else
    # Package not installed yet, install.
    brew install "$@" || brew link --overwrite "$@"
  fi
}

# Skip this run?
if [ -f build/skip.txt ]
then
  exit 0
fi

# Update packages
travis_fold start brew_update
brew update
travis_fold end brew_update

travis_fold start brew_install_util
# For md5sum
install_brew_package md5sha1sum
# For `timeout'
install_brew_package coreutils

install_brew_package cmake

# Install compiler
case "${COMPILER}" in
gcc)         install_brew_package gcc ;;
gcc-6)       install_brew_package gcc@6 ;;
clang)       ;;
clang-4)     install_brew_package llvm@4 --with-clang --with-libcxx;;
*) echo "Compiler not supported: ${COMPILER}. See travis/install_osx.sh"; exit 1 ;;
esac
travis_fold end brew_install_util


# Install dependencies
travis_fold start brew_install_dependencies
install_brew_package gmp --c++11
install_brew_package cln
install_brew_package ginac
install_brew_package doxygen
install_brew_package boost --c++11
install_brew_package z3 # optional
install_brew_package glpk
install_brew_package hwloc
install_brew_package eigen
travis_fold end brew_install_dependencies