language: rust
rust:
  - stable
  - beta
  - nightly

cache: cargo

matrix:
  allow_failures:
    - rust: nightly

addons:
  apt:
    packages:
      - gcc-arm-linux-gnueabihf
      - libc6-dev-armhf-cross
      - libpulse-dev
      - portaudio19-dev

before_script:
    - mkdir -p ~/.cargo
    - echo '[target.armv7-unknown-linux-gnueabihf]' > ~/.cargo/config
    - echo 'linker = "arm-linux-gnueabihf-gcc"' >> ~/.cargo/config
    - sh ~/rust-installer/rustup.sh --prefix=$(rustc --print sysroot) -y --disable-sudo --add-target=armv7-unknown-linux-gnueabihf

script:
    - cargo build --no-default-features --features "with-syntex"
    - cargo build --no-default-features --features "with-syntex with-tremor"
    - cargo build --no-default-features --features "with-syntex portaudio-backend"
    - cargo build --no-default-features --features "with-syntex pulseaudio-backend"
    - cargo build --no-default-features --features "with-syntex alsa-backend"
    - cargo build --no-default-features --features "with-syntex" --target armv7-unknown-linux-gnueabihf

    # Building without syntex only works on nightly
    - if [[ $TRAVIS_RUST_VERSION == *"nightly"* ]]; then
        cargo build --no-default-features --features "nightly";
      fi

notifications:
    email: false