summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: c434c2eb3fe23894ea7caad91a9dc69213761d5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
language: cpp
matrix:
  include:
    - 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

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'