swig/Tools/travis-linux-install.sh
William S Fulton 6606a164f0 Migrate Travis tests from trusty to xenial
Ubuntu trusty 14.04 is end of life April 2019.
Ubuntu xenial 16.04 is the main platform for Travis now.
Some languages are not working on xenial, so I've left them on trusty
for now.
2019-04-30 23:44:33 +01:00

134 lines
3.8 KiB
Bash
Executable file

#!/bin/bash
set -e # exit on failure (same as -o errexit)
lsb_release -a
travis_retry sudo apt-get -qq update
if [[ "$CC" == gcc-5 ]]; then
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get install -qq g++-5
elif [[ "$CC" == gcc-6 ]]; then
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get install -qq g++-6
elif [[ "$CC" == gcc-7 ]]; then
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get install -qq g++-7
elif [[ "$CC" == gcc-8 ]]; then
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get install -qq g++-8
fi
travis_retry sudo apt-get -qq install libboost-dev
WITHLANG=$SWIGLANG
case "$SWIGLANG" in
"") ;;
"csharp")
travis_retry sudo apt-get -qq install mono-devel
;;
"d")
travis_retry wget http://downloads.dlang.org/releases/2014/dmd_2.066.0-0_amd64.deb
travis_retry sudo dpkg -i dmd_2.066.0-0_amd64.deb
;;
"go")
if [[ "$VER" ]]; then
eval "$(gimme ${VER}.x)"
fi
;;
"javascript")
case "$ENGINE" in
"node")
travis_retry wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
travis_retry nvm install ${VER}
nvm use ${VER}
if [ "$VER" == "0.10" ] || [ "$VER" == "0.12" ] ; then
# travis_retry sudo apt-get install -qq nodejs node-gyp
travis_retry npm install -g node-gyp@$VER
else
travis_retry npm install -g node-gyp
fi
;;
"jsc")
travis_retry sudo apt-get install -qq libwebkitgtk-dev
;;
"v8")
travis_retry sudo apt-get install -qq libv8-dev
;;
esac
;;
"guile")
travis_retry sudo apt-get -qq install guile-2.0-dev
;;
"lua")
if [[ -z "$VER" ]]; then
travis_retry sudo apt-get -qq install lua5.2 liblua5.2-dev
else
travis_retry sudo apt-get -qq install lua${VER} liblua${VER}-dev
fi
;;
"mzscheme")
travis_retry sudo apt-get -qq install racket
;;
"ocaml")
travis_retry sudo apt-get -qq install ocaml camlp4
;;
"octave")
if [[ -z "$VER" ]]; then
travis_retry sudo apt-get -qq install liboctave-dev
else
# Travis adds external PPAs which contain newer versions of packages
# than in baseline trusty. These newer packages prevent some of the
# Octave packages in ppa:kwwette/octave, which rely on the older
# packages in trusty, from installing. To prevent these kind of
# interactions arising, clean out all external PPAs added by Travis
# before installing Octave
sudo rm -rf /etc/apt/sources.list.d/*
travis_retry sudo apt-get -qq update
travis_retry sudo add-apt-repository -y ppa:kwwette/octaves
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get -qq install liboctave${VER}-dev
fi
;;
"php")
travis_retry sudo add-apt-repository -y ppa:ondrej/php
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get -qq install php$VER-cli php$VER-dev
;;
"python")
pip install --user pycodestyle
if [[ "$PY3" ]]; then
travis_retry sudo apt-get install -qq python3-dev
fi
WITHLANG=$SWIGLANG$PY3
if [[ "$VER" ]]; then
travis_retry sudo add-apt-repository -y ppa:deadsnakes/ppa
travis_retry sudo apt-get -qq update
travis_retry sudo apt-get -qq install python${VER}-dev
WITHLANG=$SWIGLANG$PY3=$SWIGLANG$VER
fi
;;
"r")
travis_retry sudo apt-get -qq install r-base
;;
"ruby")
if [[ "$VER" ]]; then
travis_retry rvm install $VER
fi
;;
"scilab")
travis_retry sudo apt-get -qq install scilab
;;
"tcl")
travis_retry sudo apt-get -qq install tcl-dev
;;
esac
set +e # turn off exit on failure (same as +o errexit)