env.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. case $TRAVIS_OS_NAME in
  2. linux)
  3. HOST=x86_64-unknown-linux-gnu
  4. NM=nm
  5. OBJDUMP=objdump
  6. LINUX=y
  7. ;;
  8. osx)
  9. HOST=x86_64-apple-darwin
  10. NM=gnm
  11. OBJDUMP=gobjdump
  12. OSX=y
  13. ;;
  14. esac
  15. # NOTE For rustup
  16. export PATH="$HOME/.cargo/bin:$PATH"
  17. CARGO=cargo
  18. RUN_TESTS=y
  19. # NOTE For the host and its 32-bit variants we don't need prefixed tools or QEMU
  20. if [[ $TARGET != $HOST && ! $TARGET =~ ^i.86- ]]; then
  21. GCC_TRIPLE=${TARGET//unknown-/}
  22. case $TARGET in
  23. armv7-unknown-linux-gnueabihf)
  24. GCC_TRIPLE=arm-linux-gnueabihf
  25. ;;
  26. powerpc64le-unknown-linux-gnu)
  27. # QEMU crashes even when executing the simplest cross compiled C program:
  28. # `int main() { return 0; }`
  29. RUN_TESTS=n
  30. ;;
  31. thumbv*-none-eabi*)
  32. CARGO=xargo
  33. GCC_TRIPLE=arm-none-eabi
  34. # Bare metal targets. No `std` or `test` crates for these targets.
  35. RUN_TESTS=n
  36. ;;
  37. esac
  38. export CARGO_TARGET_$(echo $TARGET | tr a-z- A-Z_)_LINKER=$GCC_TRIPLE-gcc
  39. if [[ $RUN_TESTS == y ]]; then
  40. # NOTE(export) so this can reach the processes that `cargo test` spawns
  41. export QEMU_LD_PREFIX=/usr/$GCC_TRIPLE
  42. fi
  43. PREFIX=$GCC_TRIPLE-
  44. fi