language: rust
rust:
  - 1.33.0
  - stable
  - beta
  - nightly

# Need to cache the whole `.cargo` directory to keep .crates.toml for
# cargo-update to work
cache:
  directories:
    - /home/travis/.cargo

# But don't cache the cargo registry
before_cache:
  - rm -rf /home/travis/.cargo/registry
  
addons:
  apt:
    packages:
      - gcc-arm-linux-gnueabihf
      - libc6-dev-armhf-cross
      - libpulse-dev
      - portaudio19-dev
      - libasound2-dev
      - libsdl2-dev

before_script:
    - rustup component add rustfmt
    - mkdir -p ~/.cargo
    - echo '[target.armv7-unknown-linux-gnueabihf]' > ~/.cargo/config
    - echo 'linker = "arm-linux-gnueabihf-gcc"' >> ~/.cargo/config
    - rustup target add armv7-unknown-linux-gnueabihf

script:
    - cargo fmt --all -- --check
    - cargo build --locked --no-default-features
    - cargo build --locked --examples
    - cargo build --locked --no-default-features --features "with-tremor"
    - cargo build --locked --no-default-features --features "with-vorbis"
    - cargo build --locked --no-default-features --features "alsa-backend"
    - cargo build --locked --no-default-features --features "portaudio-backend"
    - cargo build --locked --no-default-features --features "pulseaudio-backend"
    - cargo build --locked --no-default-features --features "jackaudio-backend"
    - cargo build --locked --no-default-features --features "rodio-backend"
    - cargo build --locked --no-default-features --features "sdl-backend"
    - cargo build --locked --no-default-features --target armv7-unknown-linux-gnueabihf

notifications:
  email: false
  webhooks:
    urls:
      - https://webhooks.gitter.im/e/780b178b15811059752e
    on_success: change  # options: [always|never|change] default: always
    on_failure: always  # options: [always|never|change] default: always
    on_start: never     # options: [always|never|change] default: always