blob: c11479fed5701af1bb5b8b70e89d4f7e28cf3624 [file] [log] [blame]
language: cpp
matrix:
include:
- compiler: clang
os: linux
env: SWIGLANG=
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG= BUILDSYSTEM=cmake
dist: xenial
- os: linux
env: SWIGLANG= GCC=4.4
dist: xenial
- os: linux
env: SWIGLANG= GCC=4.6
dist: xenial
- os: linux
env: SWIGLANG= GCC=4.7
dist: xenial
- os: linux
env: SWIGLANG= GCC=4.8
dist: xenial
- os: linux
env: SWIGLANG= GCC=4.9
dist: xenial
- os: linux
env: SWIGLANG= GCC=6
dist: xenial
- os: linux
env: SWIGLANG= GCC=7
dist: xenial
- os: linux
env: SWIGLANG= GCC=8
dist: xenial
- os: linux
env: SWIGLANG= GCC=9
dist: xenial
- os: linux
env: SWIGLANG= GCC=10
dist: focal
- compiler: gcc
os: linux
env: SWIGLANG=csharp
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=d VER=2.066.0
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=d VER=2.086.1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=go VER=1.3
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=go VER=1.8
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=go VER=1.12 CSTD=gnu99
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=go VER=1.16 CSTD=gnu99
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=guile
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=java
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=6 CPP11=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=8 CPP11=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=10 CPP11=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=12 CPP11=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=14 CPP11=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=node VER=16 CPP14=1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=jsc
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=javascript ENGINE=v8
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=lua
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=lua VER=5.3
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=mzscheme
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ocaml
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=octave SWIGJOBS=-j2
dist: xenial # Octave v4.0.0
- compiler: gcc
os: linux
env: SWIGLANG=octave SWIGJOBS=-j2 CPP11=1
dist: bionic # Octave v4.2.2
- compiler: gcc
os: linux
env: SWIGLANG=perl5
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.4
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=php VER=8.0
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.0 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.1 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.2 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.3 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=php VER=7.4 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=php VER=8.0 CONFIGOPTS=--enable-cpp11-testing CPPSTD=c++11
dist: bionic
- compiler: gcc
os: linux
env: SWIGLANG=python # 2.7
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.2
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.3
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.4
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.5
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.6
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.7
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.8
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python PY3=3 VER=3.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES="-builtin -O"
dist: xenial
- os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin GCC=6 CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin GCC=6 CPP11=1 PY3=3 VER=3.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.4
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.5
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.7
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.8
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES="-builtin -O" PY3=3 VER=3.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-builtin PY3=3 VER=3.9 SWIGOPTPY3=
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-O
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=python SWIG_FEATURES=-O PY3=3 VER=3.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=r
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=1.9
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.0
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.1
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.2
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.3
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.4
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.5
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.6
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=2.7
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ruby VER=3.0 CSTD=c99
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=scilab
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=tcl
dist: xenial
- os: linux
env: SWIGLANG=csharp CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=go VER=1.6 CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=java CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=python CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=r CPP11=1 # Note: making 'R CMD SHLIB' use a different compiler is non-trivial
dist: xenial
- os: linux
env: SWIGLANG=ruby CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=tcl CPP11=1
dist: xenial
- os: linux
env: SWIGLANG=csharp GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=go VER=1.6 GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=java GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=python GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=ruby GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=tcl GCC=6 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=java GCC=7 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=python GCC=7 CPP14=1
dist: xenial
- os: linux
env: SWIGLANG=csharp GCC=8 CPP17=1
dist: xenial
- os: linux
env: SWIGLANG=java GCC=8 CPP17=1
dist: xenial
- os: linux
env: SWIGLANG=python GCC=8 CPP17=1 PY3=3 VER=3.9
dist: xenial
- os: linux
env: SWIGLANG=csharp GCC=9 CPP17=1
dist: xenial
- os: linux
env: SWIGLANG=java GCC=9 CPP17=1
dist: xenial
- os: linux
env: SWIGLANG=python GCC=9 CPP17=1 PY3=3 VER=3.9
dist: xenial
- os: linux
arch: s390x
env: SWIGLANG=ruby CPP11=1
dist: xenial
- compiler: gcc
os: osx
osx_image: xcode12.2
env: SWIGLANG=
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG= BUILDSYSTEM=cmake
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=csharp
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=go CSTD=gnu99
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=guile CSTD=c11
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=java
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=lua
# octave-6.1 not working
# - compiler: clang
# os: osx
# osx_image: xcode12.2
# env: SWIGLANG=octave SWIGJOBS=-j2 CPP11=1
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=perl5
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=python
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=python PY3=3
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=ruby
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=tcl
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=java CPP17=1
- compiler: clang
os: osx
osx_image: xcode12.2
env: SWIGLANG=python PY3=3 CPP17=1
allow_failures:
# Newer version of D not yet working/supported
- compiler: gcc
os: linux
env: SWIGLANG=d VER=2.086.1
dist: xenial
# Experimental languages
- compiler: gcc
os: linux
env: SWIGLANG=mzscheme
dist: xenial
- compiler: gcc
os: linux
env: SWIGLANG=ocaml
dist: xenial
before_install:
- date -u
- uname -a
- if test "$TRAVIS_OS_NAME" = "linux"; then lscpu; grep "model name" /proc/cpuinfo || echo 'Unknown CPU model'; grep "MemTotal" /proc/meminfo || echo 'Unknown system memory amount'; fi
- if test "$TRAVIS_OS_NAME" = "osx"; then sysctl -a | grep brand_string; fi
# Travis overrides CC environment with compiler predefined values
- if test -n "$GCC"; then export CC="gcc-$GCC" && export CXX="g++-$GCC"; fi
install:
- if test "$TRAVIS_OS_NAME" = "linux"; then source Tools/travis-linux-install.sh; fi
- if test "$TRAVIS_OS_NAME" = "osx"; then source Tools/travis-osx-install.sh; fi
- ls -la $(which $CC) $(which $CXX) && $CC --version && $CXX --version
script:
- if test "$BUILDSYSTEM" = "cmake"; then cmake --version && mkdir -p build/build && cd build/build && CXXFLAGS="-Wall -Wextra -Werror" CFLAGS="-Wall -Wextra -Werror" cmake -DCMAKE_INSTALL_PREFIX=~/.local ../.. && make install && ctest --output-on-failure -V && exit 0; fi
- echo 'Configuring...' && echo -en 'travis_fold:start:script.1\\r'
- if test -n "$CPP11"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++11 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++11; fi
- if test -n "$CPP14"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++14 $CXXFLAGS" "CFLAGS=-std=c11 $CFLAGS") && export CSTD=c11 && export CPPSTD=c++14; fi
- if test -n "$CPP17"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=c++17 $CXXFLAGS" "CFLAGS=-std=c17 $CFLAGS") && export CSTD=c17 && export CPPSTD=c++17; fi
- if test -n "$SWIGLANG"; then CONFIGOPTS+=(--without-alllang --with-$WITHLANG); fi
- echo "${CONFIGOPTS[@]}"
- ./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'
# Stricter compile flags for examples. Various headers and SWIG generated code prevents full use of -pedantic.
- if test -n "$SWIGLANG"; then cflags=$($TRAVIS_BUILD_DIR/Tools/testflags.py --language $SWIGLANG --cflags --std=$CSTD --compiler=$CC) && echo $cflags; fi
- if test -n "$SWIGLANG"; then cxxflags=$($TRAVIS_BUILD_DIR/Tools/testflags.py --language $SWIGLANG --cxxflags --std=$CPPSTD --compiler=$CC) && echo $cxxflags; fi
- if test -n "$SWIGLANG"; then make -s check-$SWIGLANG-version; fi
- if test -n "$SWIGLANG"; then make check-$SWIGLANG-enabled; 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'
# Skip on osx as often fails with: rm: Resource temporarily unavailable
- if test "$TRAVIS_OS_NAME" != "osx"; then make check-maintainer-clean && ../../configure $CONFIGOPTS; fi
- echo -en 'travis_fold:end:script.3\\r'