mirror of
https://github.com/nivekuil/rip
synced 2024-11-26 13:40:19 +00:00
60 lines
1.3 KiB
Bash
60 lines
1.3 KiB
Bash
# `install` phase: install stuff needed for the `script` phase
|
|
|
|
set -ex
|
|
|
|
. $(dirname $0)/utils.sh
|
|
|
|
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
|
|
;;
|
|
*)
|
|
# For other targets, this is handled by addons.apt.packages in .travis.yml
|
|
;;
|
|
esac
|
|
}
|
|
|
|
install_rustup() {
|
|
# uninstall the rust toolchain installed by travis, we are going to use rustup
|
|
sh ~/rust/lib/rustlib/uninstall.sh
|
|
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=$TRAVIS_RUST_VERSION
|
|
|
|
rustc -V
|
|
cargo -V
|
|
}
|
|
|
|
install_standard_crates() {
|
|
if [ $(host) != "$TARGET" ]; then
|
|
rustup target add $TARGET
|
|
fi
|
|
}
|
|
|
|
configure_cargo() {
|
|
local prefix=$(gcc_prefix)
|
|
|
|
if [ ! -z $prefix ]; then
|
|
# information about the cross compiler
|
|
${prefix}gcc -v
|
|
|
|
# tell cargo which linker to use for cross compilation
|
|
mkdir -p .cargo
|
|
cat >>.cargo/config <<EOF
|
|
[target.$TARGET]
|
|
linker = "${prefix}gcc"
|
|
EOF
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
install_c_toolchain
|
|
install_rustup
|
|
install_standard_crates
|
|
configure_cargo
|
|
|
|
# TODO if you need to install extra stuff add it here
|
|
}
|
|
|
|
main
|