1# Build matrix / environment variables are explained on: 2# http://about.travis-ci.org/docs/user/build-configuration/ 3# This file can be validated on: http://www.yamllint.com/ 4# Or using the Ruby based travel command line tool: 5# gem install travis --no-rdoc --no-ri 6# travis lint .travis.yml 7language: cpp 8sudo: false 9addons: 10 homebrew: 11 packages: 12 - clang-format 13 - meson 14 - ninja 15 update: false # do not update homebrew by default 16 apt: 17 sources: 18 - ubuntu-toolchain-r-test 19 - llvm-toolchain-xenial-8 20 packages: 21 - clang-format-8 22 - clang-8 23 - valgrind 24matrix: 25 allow_failures: 26 - os: osx 27 include: 28 - name: Mac clang meson static release testing 29 os: osx 30 osx_image: xcode11 31 compiler: clang 32 env: 33 CXX="clang++" 34 CC="clang" 35 LIB_TYPE=static 36 BUILD_TYPE=release 37 LANGUAGE_STANDARD="11" 38 script: ./.travis_scripts/meson_builder.sh 39 - name: Linux xenial clang meson static release testing 40 os: linux 41 dist: xenial 42 compiler: clang 43 env: 44 CXX="clang++" 45 CC="clang" 46 LIB_TYPE=static 47 BUILD_TYPE=release 48 LANGUAGE_STANDARD="11" 49 # before_install and install steps only needed for linux meson builds 50 before_install: 51 - source ./.travis_scripts/travis.before_install.${TRAVIS_OS_NAME}.sh 52 install: 53 - source ./.travis_scripts/travis.install.${TRAVIS_OS_NAME}.sh 54 script: ./.travis_scripts/meson_builder.sh 55 - name: Linux xenial gcc-4.6 meson static release with C++03 testing 56 os: linux 57 dist: xenial 58 compiler: gcc 59 addons: 60 apt: 61 sources: 62 - ubuntu-toolchain-r-test 63 packages: 64 - g++-4.6 65 env: 66 CC=gcc-4.6 67 CXX=g++-4.6 68 LIB_TYPE=static 69 BUILD_TYPE=release 70 LANGUAGE_STANDARD="03" 71 # before_install and install steps only needed for linux meson builds 72 before_install: 73 - source ./.travis_scripts/travis.before_install.${TRAVIS_OS_NAME}.sh 74 install: 75 - source ./.travis_scripts/travis.install.${TRAVIS_OS_NAME}.sh 76 script: ./.travis_scripts/meson_builder.sh 77 - name: Linux xenial gcc-4.6 meson static release with C++98 testing 78 os: linux 79 dist: xenial 80 compiler: gcc 81 addons: 82 apt: 83 sources: 84 - ubuntu-toolchain-r-test 85 packages: 86 - g++-4.6 87 env: 88 CC=gcc-4.6 89 CXX=g++-4.6 90 LIB_TYPE=static 91 BUILD_TYPE=release 92 LANGUAGE_STANDARD="98" 93 # before_install and install steps only needed for linux meson builds 94 before_install: 95 - source ./.travis_scripts/travis.before_install.${TRAVIS_OS_NAME}.sh 96 install: 97 - source ./.travis_scripts/travis.install.${TRAVIS_OS_NAME}.sh 98 script: ./.travis_scripts/meson_builder.sh 99 100 - name: Linux xenial gcc-5.4 cmake-3.12 coverage 101 os: linux 102 dist: xenial 103 compiler: gcc 104 env: 105 CXX=g++ 106 CC=gcc 107 DO_Coverage=ON 108 BUILD_TOOL="Unix Makefiles" 109 BUILD_TYPE=Debug 110 LIB_TYPE=shared 111 DESTDIR=/tmp/cmake_json_cpp 112 LANGUAGE_STANDARD="11" 113 before_install: 114 - pip install --user cpp-coveralls 115 script: ./.travis_scripts/cmake_builder.sh 116 after_success: 117 - coveralls --include src/lib_json --include include 118 - name: Linux xenial gcc-4.6 cmake-3.12 with C++98 testing 119 os: linux 120 dist: xenial 121 compiler: gcc 122 addons: 123 apt: 124 sources: 125 - ubuntu-toolchain-r-test 126 packages: 127 - g++-4.6 128 - valgrind 129 env: 130 CC=gcc-4.6 131 CXX=g++-4.6 132 DO_MemCheck=ON 133 BUILD_TOOL="Unix Makefiles" 134 LIB_TYPE=static 135 BUILD_TYPE=release 136 DESTDIR=/tmp/cmake_json_cpp 137 LANGUAGE_STANDARD="98" 138 before_install: 139 - sudo apt-get update 140 - sudo apt-get install python3 141 script: ./.travis_scripts/cmake_builder.sh 142 - name: Linux xenial gcc-5.4 cmake-3.12 with C++98 testing 143 os: linux 144 dist: xenial 145 compiler: gcc 146 env: 147 CC=gcc 148 CXX=g++ 149 DO_MemCheck=ON 150 BUILD_TOOL="Unix Makefiles" 151 LIB_TYPE=static 152 BUILD_TYPE=release 153 DESTDIR=/tmp/cmake_json_cpp 154 LANGUAGE_STANDARD="98" 155 script: ./.travis_scripts/cmake_builder.sh 156 - name: Linux xenial clang cmake-3.12 with C++11 testing 157 os: linux 158 dist: xenial 159 compiler: clang 160 env: 161 CC=clang 162 CXX=clang++ 163 DO_MemCheck=ON 164 BUILD_TOOL="Unix Makefiles" 165 LIB_TYPE=static 166 BUILD_TYPE=release 167 DESTDIR=/tmp/cmake_json_cpp 168 LANGUAGE_STANDARD="11" 169 script: ./.travis_scripts/cmake_builder.sh 170 - name: Linux xenial clang cmake-3.12 with C++98 testing 171 os: linux 172 dist: xenial 173 compiler: gcc 174 env: 175 CC=clang 176 CXX=clang++ 177 DO_MemCheck=ON 178 BUILD_TOOL="Unix Makefiles" 179 LIB_TYPE=static 180 BUILD_TYPE=release 181 DESTDIR=/tmp/cmake_json_cpp 182 LANGUAGE_STANDARD="98" 183 script: ./.travis_scripts/cmake_builder.sh 184notifications: 185 email: false 186