blob: e4cf4927934d86976ed321770e38a317e0cb3d2c [file] [log] [blame]
language: rust
sudo: false
rust: nightly
matrix:
fast_finish: true
include:
- name: "i586-unknown-linux-gnu"
env: TARGET=i586-unknown-linux-gnu
- name: "i686-unknown-linux-gnu"
env: TARGET=i686-unknown-linux-gnu
- name: "x86_64-unknown-linux-gnu"
env: TARGET=x86_64-unknown-linux-gnu
install: true
- name: "x86_64-unknown-linux-gnu-emulated (runs all assert_instr tests)"
env: TARGET=x86_64-unknown-linux-gnu-emulated STDSIMD_TEST_EVERYTHING=1 RUSTFLAGS="--cfg stdsimd_intel_sde"
install: true
- name: "x86_64-linux-android - no assert_instr"
env: TARGET=x86_64-linux-android STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "arm-unknown-linux-gnueabihf"
env: TARGET=arm-unknown-linux-gnueabihf
- name: "arm-linux-androideabi - no assert_instr"
env: TARGET=arm-linux-androideabi STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "armv7-unknown-linux-gnueabihf - NEON"
env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon"
- name: "aarch64-unknown-linux-gnu"
env: TARGET=aarch64-unknown-linux-gnu
- name: "mips-unknown-linux-gnu - build-only"
env: TARGET=mips-unknown-linux-gnu NORUN=1
- name: "mipsel-unknown-linux-musl - build-only"
env: TARGET=mipsel-unknown-linux-musl NORUN=1
- name: "mips64-unknown-linux-gnuabi64 - build-only"
env: TARGET=mips64-unknown-linux-gnuabi64 NORUN=1
- name: "mips64el-unknown-linux-gnuabi64 - build-only"
env: TARGET=mips64el-unknown-linux-gnuabi64 NORUN=1
- name: "aarch64-linux-android - no assert_instr"
env: TARGET=aarch64-linux-android STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "powerpc-unknown-linux-gnu - no assert_instr"
env: TARGET=powerpc-unknown-linux-gnu STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "powerpc64-unknown-linux-gnu - no assert_instr"
env: TARGET=powerpc64-unknown-linux-gnu STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "powerpc64le-unknown-linux-gnu - no assert_instr"
env: TARGET=powerpc64le-unknown-linux-gnu STDSIMD_DISABLE_ASSERT_INSTR=1
- name: "s390x-unknown-linux-gnu"
env: TARGET=s390x-unknown-linux-gnu
- name: "i686-apple-darwin"
env: TARGET=i686-apple-darwin NO_DOCKER=1
os: osx
osx_image: xcode10
- name: "x86_64-apple-darwin"
env: TARGET=x86_64-apple-darwin NO_DOCKER=1
os: osx
osx_image: xcode10
install: true
- name: "wasm32-unknown-unknown"
env: TARGET=wasm32-unknown-unknown
- name: "nvptx64-nvidia-cuda - cross compiled, build libcore only"
env: TARGET=nvptx64-nvidia-cuda NORUN=1 NOSTD=1
- name: "thumbv6m-none-eabi - build libcore only"
env: TARGET=thumbv6m-none-eabi NORUN=1 NOSTD=1 NO_DOCKER=1
- name: "thumbv7m-none-eabi - build libcore only"
env: TARGET=thumbv7m-none-eabi NORUN=1 NOSTD=1 NO_DOCKER=1
- name: "thumbv7em-none-eabi - build libcore only"
env: TARGET=thumbv7em-none-eabi NORUN=1 NOSTD=1 NO_DOCKER=1
- name: "thumbv7em-none-eabihf - build libcore only"
env: TARGET=thumbv7em-none-eabihf NORUN=1 NOSTD=1 NO_DOCKER=1
- name: "Game Boy Advance - build libcore only"
env: NORUN=1 NOSTD=1 NO_DOCKER=1
install:
- rustup component add rust-src
- cargo install xargo
script:
# Obtain the devkitPro tools, using `target/` as a temp directory. This
# is required because we need to use their linker. `lld` uses the `BLX`
# instruction, which was not available in thumb state code until ARMv5.
- mkdir -p target
- cd target
- wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
- sudo dpkg -i devkitpro-pacman.deb
- sudo dkp-pacman -Sy
- sudo dkp-pacman -Syu
- sudo dkp-pacman -S -v --noconfirm gba-tools devkitARM
- export PATH="$PATH:/opt/devkitpro/devkitARM/bin"
- export PATH="$PATH:/opt/devkitpro/tools/bin"
- cd ..
# Pull the target spec up into the current directory and then build
- mv ci/gba.json gba.json
- xargo build --all --target=gba
- name: "Documentation"
install: true
script: ci/dox.sh
- name: "Automatic verification: x86 and x86_64"
script: cargo test --manifest-path crates/stdsimd-verify/Cargo.toml
install: true
- name: "rustfmt"
install: true
script: |
if rustup component add rustfmt-preview ; then
cargo fmt --all -- --check
fi
rust: stable
- name: "clippy"
install: true
script: |
if rustup component add clippy-preview ; then
cargo clippy --all -- -D clippy::pedantic
fi
- name: "Shellcheck"
install: true
script:
- shellcheck --version
- shellcheck ci/*.sh
install: travis_retry rustup target add $TARGET
script:
- cargo generate-lockfile
- |
if [ "${NO_DOCKER}" = "1" ]; then
ci/run.sh $TARGET
else
ci/run-docker.sh $TARGET
fi
notifications:
email:
on_success: never
env:
global:
secure: "jmh7FfVwtPYQN/xPrVYmX7ys70GvX9YsKYtDpp8UwtIihCr81KHi2P2a1/KZNvQN0gPO+nneKieCbNQSCEtxDG9plUoB+OhX8ov9g3ImTJbyt+oW35Vlqq9ftB+Hr/Wn42o4OSTYxRfy1gf9VMePBaJfdkuym3BB75K4s+k+akuVqJv+KAm3zz0wSqU4O/evj2EGz1ldMzqxpogrO2WJQkXyl4xaW/1E0y8IZfRy0bJPKALFUpTDp39ZiWvzjNdr8CXUW1DChJdFPNo7yswxyl/NL5e/meHqF2dzS5b0YyOhcCzlBm7eZoEwyHZWB73t7n5Tuo0uYpX/kBXPAvtDrljQjBNcpm9vJtg6sj3oG0bGAI8pJfNNpLdHLHO6CjmORGP/rzZLeRdEFVb8t7UIXG7l3NcoBpRNiwPFY4gpE5dgiRsKjNrtmNe3GahhsYwbPkc+QUeQFIDtYYRxdJVZj+KvU9jIEpRh5Zv8FZBfsfx0LcLEdtRBjJxFNGGO5NY8nP0OWNVyt4ckRbRMtVzcbcOdzcfUc74/wZYZj8SrfcbSqsfylMQbxLAHJCynvuFmoMf3udPqP3aPuO+4EjDYDIQ1kHwKK87lwqlXFHdhRepAmhRR//g3bDUxzXd96KJqbFU3MYZnn/jzIi0kl+jx3FxivT380cYLVjrD29aGc7M="