• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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