set -ex

main() {
  local target=
  if [ $TRAVIS_OS_NAME = linux ]; then
    target=x86_64-unknown-linux-musl
    sort=sort
  else
    target=x86_64-apple-darwin
    sort=gsort  # for `sort --sort-version`, from brew's coreutils.
  fi

  # Builds for iOS are done on OSX, but require the specific target to be
  # installed.
  case $TARGET in
    aarch64-apple-ios)
      rustup target install aarch64-apple-ios
      ;;
    armv7-apple-ios)
      rustup target install armv7-apple-ios
      ;;
    armv7s-apple-ios)
      rustup target install armv7s-apple-ios
      ;;
    i386-apple-ios)
      rustup target install i386-apple-ios
      ;;
    x86_64-apple-ios)
      rustup target install x86_64-apple-ios
      ;;
  esac

  # Install cross for linux cross compilation
  if [ $TRAVIS_OS_NAME = linux ]; then
    cargo install cross --force
  fi

  # Install test dependencies
  # (Components for Nightly Rust is quite unstable,
  # so let's comment them out until we move on to Stable)
  # rustup component add rustfmt-preview
  # rustup component add clippy-preview
}

main
