# Appveyor configuration template for Rust using rustup for Rust installation
# https://github.com/starkat99/appveyor-rust

## Operating System (VM environment) ##

# Rust needs at least Visual Studio 2013 Appveyor OS for MSVC targets.
os: Visual Studio 2015

## Build Matrix ##
environment:
  matrix:

### MSVC Toolchains ###
  # Stable 64-bit MSVC
    - channel: stable
      target: x86_64-pc-windows-msvc
  # Stable 32-bit MSVC
    - channel: stable
      target: i686-pc-windows-msvc
  # Beta 64-bit MSVC
    - channel: beta
      target: x86_64-pc-windows-msvc
  # Beta 32-bit MSVC
    - channel: beta
      target: i686-pc-windows-msvc
  # Nightly 64-bit MSVC
    - channel: nightly
      target: x86_64-pc-windows-msvc
  # Nightly 32-bit MSVC
    - channel: nightly
      target: i686-pc-windows-msvc

### GNU Toolchains ###

  # Stable 64-bit GNU
    - channel: stable
      target: x86_64-pc-windows-gnu
  # Stable 32-bit GNU
    - channel: stable
      target: i686-pc-windows-gnu
  # Beta 64-bit GNU
    - channel: beta
      target: x86_64-pc-windows-gnu
  # Beta 32-bit GNU
    - channel: beta
      target: i686-pc-windows-gnu
  # Nightly 64-bit GNU
    - channel: nightly
      target: x86_64-pc-windows-gnu
  # Nightly 32-bit GNU
    - channel: nightly
      target: i686-pc-windows-gnu

## Install Script ##
install:
  - appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
  - rustup-init -yv --default-toolchain %channel% --default-host %target%
  - set PATH=%PATH%;%USERPROFILE%\.cargo\bin
  - rustc -vV
  - cargo -vV

## Build Script ##

# This prevents the "directory does not contain a project or solution file"
# error.
build: false

# Uses 'cargo build' to build. AppVeyor cannot run tests on this crate as it
# redirects the console's output, and its state then cannot be retrieved, let
# alone modified.
test_script:
  - cargo build --verbose %cargoflags%
