cargo/.travis.install.deps.sh

71 lines
2.1 KiB
Bash
Raw Normal View History

#!/bin/bash
set -x
2014-11-19 19:09:50 +00:00
set -e
2014-06-18 20:36:49 +00:00
2014-11-19 19:10:21 +00:00
if [ "${TRAVIS_OS_NAME}" = "osx" ] || [ "${PLATFORM}" = "mac" ] || [ "`uname`" = "Darwin" ]; then
2014-06-19 22:27:12 +00:00
target=apple-darwin
elif [ "${OS}" = "Windows_NT" ] || [ "${PLATFORM}" = "win" ]; then
windows=1
else
target=unknown-linux-gnu
fi
if [ "${TRAVIS}" = "true" ] && [ "${target}" = "unknown-linux-gnu" ]; then
2014-06-19 22:27:12 +00:00
# Install a 32-bit compiler for linux
sudo apt-get update
2014-09-02 18:51:39 +00:00
if [ "${BITS}" = "32" ]; then
sudo apt-get install libssl-dev:i386
fi
2014-07-22 15:08:55 +00:00
sudo apt-get install g++-multilib lib32stdc++6
2014-06-19 22:27:12 +00:00
fi
2014-06-18 20:36:49 +00:00
url=https://static-rust-lang-org.s3.amazonaws.com/dist/`cat src/rustversion.txt`
2014-06-18 20:36:49 +00:00
# Install both 64 and 32 bit libraries. Apparently travis barfs if you try to
# just install the right ones? This should enable cross compilation in the
# future anyway.
if [ -z "${windows}" ]; then
rm -rf rustc *.tar.gz
curl -O $url/rust-nightly-i686-$target.tar.gz
curl -O $url/rust-nightly-x86_64-$target.tar.gz
tar xfz rust-nightly-i686-$target.tar.gz
tar xfz rust-nightly-x86_64-$target.tar.gz
2014-06-18 20:36:49 +00:00
if [ "${BITS}" = "32" ]; then
src=x86_64
dst=i686
else
src=i686
dst=x86_64
fi
2015-02-24 12:00:58 +00:00
cp -r rust-nightly-$src-$target/rustc/lib/rustlib/$src-$target \
rust-nightly-$dst-$target/rustc/lib/rustlib
(cd rust-nightly-$dst-$target && \
2015-02-24 12:00:58 +00:00
find rustc/lib/rustlib/$src-$target/lib -type f | sed 's/^/file:/' >> \
2015-01-02 21:39:30 +00:00
manifest-rustc.in)
2014-06-19 22:27:12 +00:00
./rust-nightly-$dst-$target/install.sh --prefix=rustc
rm -rf rust-nightly-$src-$target
rm -rf rust-nightly-$dst-$target
rm -f rust-nightly-i686-$target.tar.gz
rm -f rust-nightly-x86_64-$target.tar.gz
else
rm -rf rustc *.exe
if [ "${BITS}" = "64" ]; then
2014-11-03 01:54:06 +00:00
triple=x86_64-pc-windows-gnu
else
2014-11-03 01:54:06 +00:00
triple=i686-pc-windows-gnu
fi
curl -O $url/rust-nightly-$triple.exe
innounp -y -x rust-nightly-$triple.exe
mv '{app}' rustc
2014-09-22 18:18:18 +00:00
# Don't use the bundled gcc, see rust-lang/rust#17442
2014-11-13 00:00:00 +00:00
rm -rf rustc/bin/rustlib/$triple/bin
# Don't use bundled gcc libs, see rust-lang/rust#19519
2014-12-19 18:38:32 +00:00
rm -rf rustc/bin/rustlib/$triple/lib/libmingw*.a
rm -f rust-nightly-$triple.exe
fi
2014-06-19 22:27:12 +00:00
set +x