commit
b33ad9b37f
|
@ -0,0 +1,71 @@
|
||||||
|
language: generic
|
||||||
|
sudo: false
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- env: TARGET=aarch64-unknown-linux-gnu
|
||||||
|
os: linux
|
||||||
|
dist: trusty
|
||||||
|
sudo: required
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- binfmt-support
|
||||||
|
- qemu-user-static
|
||||||
|
- env: TARGET=arm-unknown-linux-gnueabi
|
||||||
|
os: linux
|
||||||
|
sudo: required
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- binfmt-support
|
||||||
|
- gcc-arm-linux-gnueabi
|
||||||
|
- libc6-armel-cross
|
||||||
|
- libc6-dev-armel-cross
|
||||||
|
- qemu-user-static
|
||||||
|
- env: TARGET=arm-unknown-linux-gnueabihf
|
||||||
|
os: linux
|
||||||
|
sudo: required
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages: &armhf
|
||||||
|
- binfmt-support
|
||||||
|
- gcc-arm-linux-gnueabihf
|
||||||
|
- libc6-armhf-cross
|
||||||
|
- libc6-dev-armhf-cross
|
||||||
|
- qemu-user-static
|
||||||
|
- env: TARGET=armv7-unknown-linux-gnueabihf
|
||||||
|
os: linux
|
||||||
|
sudo: required
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages: *armhf
|
||||||
|
- env: TARGET=i686-apple-darwin
|
||||||
|
os: osx
|
||||||
|
- env: TARGET=i686-unknown-linux-gnu
|
||||||
|
os: linux
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- gcc-multilib
|
||||||
|
- env: TARGET=x86_64-apple-darwin
|
||||||
|
os: osx
|
||||||
|
- env: TARGET=x86_64-unknown-linux-gnu
|
||||||
|
os: linux
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- export PATH="$PATH:$HOME/.cargo/bin"
|
||||||
|
|
||||||
|
install:
|
||||||
|
- bash ci/install.sh
|
||||||
|
|
||||||
|
script:
|
||||||
|
- bash ci/script.sh
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
on_success: never
|
|
@ -0,0 +1,27 @@
|
||||||
|
case $TRAVIS_OS_NAME in
|
||||||
|
linux)
|
||||||
|
export HOST=x86_64-unknown-linux-gnu
|
||||||
|
export NM=nm
|
||||||
|
export OBJDUMP=objdump
|
||||||
|
;;
|
||||||
|
osx)
|
||||||
|
export HOST=x86_64-apple-darwin
|
||||||
|
export NM=gnm
|
||||||
|
export OBJDUMP=gobjdump
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $TARGET in
|
||||||
|
aarch64-unknown-linux-gnu)
|
||||||
|
export PREFIX=aarch64-linux-gnu-
|
||||||
|
export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu
|
||||||
|
;;
|
||||||
|
arm*-unknown-linux-gnueabi)
|
||||||
|
export PREFIX=arm-linux-gnueabi-
|
||||||
|
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabi
|
||||||
|
;;
|
||||||
|
arm*-unknown-linux-gnueabihf)
|
||||||
|
export PREFIX=arm-linux-gnueabihf-
|
||||||
|
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,59 @@
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
. $(dirname $0)/env.sh
|
||||||
|
|
||||||
|
install_binutils() {
|
||||||
|
case $TRAVIS_OS_NAME in
|
||||||
|
osx)
|
||||||
|
brew install binutils
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
install_c_toolchain() {
|
||||||
|
case $TARGET in
|
||||||
|
aarch64-unknown-linux-gnu)
|
||||||
|
sudo apt-get install -y --no-install-recommends \
|
||||||
|
gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
install_rust() {
|
||||||
|
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=nightly
|
||||||
|
|
||||||
|
rustc -V
|
||||||
|
cargo -V
|
||||||
|
}
|
||||||
|
|
||||||
|
add_rustup_target() {
|
||||||
|
if [[ $TARGET != $HOST ]]; then
|
||||||
|
rustup target add $TARGET
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_cargo() {
|
||||||
|
if [[ $PREFIX ]]; then
|
||||||
|
${PREFIX}gcc -v
|
||||||
|
|
||||||
|
mkdir -p .cargo
|
||||||
|
cat >>.cargo/config <<EOF
|
||||||
|
[target.$TARGET]
|
||||||
|
linker = "${PREFIX}gcc"
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
install_binutils
|
||||||
|
install_c_toolchain
|
||||||
|
install_rust
|
||||||
|
add_rustup_target
|
||||||
|
configure_cargo
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
|
@ -0,0 +1,33 @@
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
. $(dirname $0)/env.sh
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cargo build --target $TARGET
|
||||||
|
cargo build --target $TARGET --release
|
||||||
|
}
|
||||||
|
|
||||||
|
run_tests() {
|
||||||
|
if [[ $QEMU_LD_PREFIX ]]; then
|
||||||
|
export RUST_TEST_THREADS=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cargo test --target $TARGET
|
||||||
|
cargo test --target $TARGET --release
|
||||||
|
}
|
||||||
|
|
||||||
|
inspect() {
|
||||||
|
$PREFIX$NM -g --defined-only target/**/debug/*.rlib
|
||||||
|
set +e
|
||||||
|
$PREFIX$OBJDUMP -Cd target/**/debug/*.rlib
|
||||||
|
$PREFIX$OBJDUMP -Cd target/**/release/*.rlib
|
||||||
|
set -e
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
build
|
||||||
|
run_tests
|
||||||
|
inspect
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue