language: cpp
compiler:
  - clang
  - gcc
env:
  - SWIGLANG=
matrix:
  include:
    - compiler: gcc
      env: SWIGLANG=csharp
    - compiler: gcc
      env: SWIGLANG=d
    - compiler: gcc
      env: SWIGLANG=go
    - compiler: gcc
      env: SWIGLANG=guile
    - compiler: gcc
      env: SWIGLANG=java
    - compiler: gcc
      env: SWIGLANG=javascript ENGINE=node
    - compiler: gcc
      env: SWIGLANG=javascript ENGINE=jsc
    - compiler: gcc
      env: SWIGLANG=javascript ENGINE=v8
    - compiler: gcc
      env: SWIGLANG=lua
    - compiler: gcc
      env: SWIGLANG=octave SWIGJOBS=-j3 # 3.2
    - compiler: gcc
      env: SWIGLANG=octave SWIGJOBS=-j3 VER=3.8
    - compiler: gcc
      env: SWIGLANG=perl5
    - compiler: gcc
      env: SWIGLANG=php
    - compiler: gcc
      env: SWIGLANG=python VER=2.4
    - compiler: gcc
      env: SWIGLANG=python VER=2.5
    - compiler: gcc
      env: SWIGLANG=python VER=2.6
    - compiler: gcc
      env: SWIGLANG=python # 2.7
    - compiler: gcc
      env: SWIGLANG=python PY3=3 # 3.2
    - compiler: gcc
      env: SWIGLANG=python PY3=3 VER=3.3
    - compiler: gcc
      env: SWIGLANG=python PY3=3 VER=3.4
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-builtin
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-O
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-classic
    - compiler: gcc
      env: SWIGLANG=r
    - compiler: gcc
      env: SWIGLANG=ruby
    - compiler: gcc
      env: SWIGLANG=scilab
    - compiler: gcc
      env: SWIGLANG=tcl
  allow_failures:
    # Lots of failing tests currently
    - compiler: gcc
      env: SWIGLANG=ocaml
    # Occasional gcc internal compiler error
    - compiler: gcc
      env: SWIGLANG=octave SWIGJOBS=-j3 VER=3.8
    # Not quite working yet
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-classic
    # Not quite working yet
    - compiler: gcc
      env: SWIGLANG=python SWIG_FEATURES=-O
    # Runtime errors in Travis environment
    - compiler: gcc
      env: SWIGLANG=r
before_install:
  - date -u
  - uname -a
  - lsb_release -a
  - sudo apt-get -qq update
  - time sudo apt-get -qq install libboost-dev
  - if test -z "$SWIGLANG"; then sudo apt-get -qq install yodl; fi
  - if test "$SWIGLANG" = "csharp"; then sudo apt-get -qq install mono-devel; fi
  - if test "$SWIGLANG" = "d"; then wget http://downloads.dlang.org/releases/2014/dmd_2.066.0-0_amd64.deb; sudo dpkg -i dmd_2.066.0-0_amd64.deb; fi
  - if test "$SWIGLANG" = "go"; then go env | sed -e 's/^/export /' > goenvsetup && source goenvsetup && rm -f goenvsetup; fi # Until configure.ac is fixed
  - if test "$SWIGLANG" = "javascript" -a "$ENGINE" = "node"; then sudo apt-get install -qq rlwrap python-software-properties && echo 'yes' | sudo add-apt-repository ppa:chris-lea/node.js && sudo apt-get -qq update && sudo apt-get install -qq nodejs && sudo npm install -g node-gyp; fi
  - if test "$SWIGLANG" = "javascript" -a "$ENGINE" = "jsc"; then sudo apt-get install -qq libwebkitgtk-dev; fi
  - if test "$SWIGLANG" = "javascript" -a "$ENGINE" = "v8"; then sudo apt-get install -qq libv8-dev; fi
  - if test "$SWIGLANG" = "guile"; then sudo apt-get -qq install guile-2.0-dev; fi
  - if test "$SWIGLANG" = "lua"; then sudo apt-get -qq install lua5.1 liblua5.1-dev; fi
  # configure also looks for ocamldlgen, but this isn't packaged.  But it isn't used by default so this doesn't matter.
  - if test "$SWIGLANG" = "ocaml"; then sudo apt-get -qq install ocaml ocaml-findlib; fi
  - if test "$SWIGLANG" = "octave" -a -z "$VER"; then sudo apt-get -qq install octave3.2 octave3.2-headers; fi
  - if test "$SWIGLANG" = "octave" -a "$VER"; then sudo add-apt-repository -y ppa:kwwette/octaves && sudo apt-get -qq update && sudo apt-get -qq install liboctave${VER}-dev; fi
  - if test "$SWIGLANG" = "php"; then sudo apt-get install php5-cli php5-dev; fi
  - if test "$SWIGLANG" = "python"; then git clone https://github.com/jcrocholl/pep8.git && pushd pep8 && git checkout tags/1.5.7 && python ./setup.py build && sudo python ./setup.py install && popd; fi
  - if test "$SWIGLANG" = "python" -a "$PY3" -a -z "$VER"; then sudo apt-get install -qq python3-dev; fi
  - if test "$SWIGLANG" = "python" -a "$VER"; then sudo add-apt-repository -y ppa:fkrull/deadsnakes && sudo apt-get -qq update && sudo apt-get -qq install python${VER}-dev && export CONFIGOPTS="--with-python${PY3}=python${VER}"; fi
  - if test "$SWIGLANG" = "r"; then sudo apt-get -qq install r-base; fi
  - if test "$SWIGLANG" = "scilab"; then sudo apt-get -qq install scilab; fi
  - if test "$SWIGLANG" = "tcl"; then sudo apt-get -qq install tcl8.4-dev; fi
  - $CC --version
  - $CXX --version
  # Stricter compile flags for examples. Various headers and SWIG generated code prevents full use of -pedantic.
  - export cflags=$(Tools/testflags.py --language $SWIGLANG --cflags) && echo $cflags
  - export cxxflags=$(Tools/testflags.py --language $SWIGLANG --cxxflags) && echo $cxxflags
script:
  - echo 'Configuring...' && echo -en 'travis_fold:start:script.1\\r'
  - ./autogen.sh && mkdir -p build/build && cd build/build && ../../configure $CONFIGOPTS
  - echo -en 'travis_fold:end:script.1\\r'
  - make -s $SWIGJOBS
  - ./swig -version && ./swig -pcreversion
  - if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-ccache; fi
  - if test -z "$SWIGLANG"; then make -s $SWIGJOBS check-errors-test-suite; fi
  - echo 'Installing...' && echo -en 'travis_fold:start:script.2\\r'
  - if test -z "$SWIGLANG"; then sudo make -s install && swig -version && ccache-swig -V; fi
  - echo -en 'travis_fold:end:script.2\\r'
  - if test -n "$SWIGLANG"; then make -s check-$SWIGLANG-version; fi
  - if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-examples CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
  - if test -n "$SWIGLANG"; then make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$cxxflags"; fi
  - echo 'Cleaning...' && echo -en 'travis_fold:start:script.3\\r'
  - make check-maintainer-clean && ../../configure $CONFIGOPTS
  - echo -en 'travis_fold:end:script.3\\r'
branches:
  only:
    - master
