1language: c
2
3matrix:
4  include:
5# OSX standard test build
6# this is really a GCC frontend with an LLVM back-end
7    - os: osx
8      env:
9        - MATRIX_EVAL="CC=gcc && CXX=g++"
10
11# OSX and pure GCCs
12# https://docs.travis-ci.com/user/languages/c/#GCC-on-OS-X
13    - os: osx
14      env:
15        - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
16
17    - os: osx
18      env:
19        - MATRIX_EVAL="brew install gcc5 && CC=gcc-5 && CXX=g++-5"
20
21    - os: osx
22      env:
23        - MATRIX_EVAL="brew install gcc6 && CC=gcc-6 && CXX=g++-6"
24
25    - os: osx
26      env:
27        - MATRIX_EVAL="brew install gcc && CC=gcc-7 && CXX=g++-7"
28
29# OSX and pure LLVMs - the version is controlled by the osx_image variable
30# images as per https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming
31    - os: osx
32      osx_image: xcode6.4
33      env:
34        - MATRIX_EVAL="CC=clang && CXX=clang"
35
36    - os: osx
37      osx_image: xcode7.3
38      env:
39        - MATRIX_EVAL="CC=clang && CXX=clang"
40
41    - os: osx
42      osx_image: xcode8.3
43      env:
44        - MATRIX_EVAL="CC=clang && CXX=clang"
45
46    - os: osx
47      osx_image: xcode9
48      env:
49        - MATRIX_EVAL="CC=clang && CXX=clang"
50
51    - os: osx
52      osx_image: xcode9.1
53      env:
54        - MATRIX_EVAL="CC=clang && CXX=clang"
55
56# Linux and GCCs
57    # gcc 4.8 at the time of writing
58    - os: linux
59      dist: trusty
60      env:
61        - MATRIX_EVAL="CC=gcc && CXX=g++"
62
63# for newer GCCs, add ubuntu-toolchain-r-test
64# https://docs.travis-ci.com/user/languages/c/
65    - os: linux
66      dist: trusty
67      addons:
68        apt:
69          sources:
70            - ubuntu-toolchain-r-test
71          packages:
72            - g++-4.9
73      env:
74         - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
75
76    - os: linux
77      dist: trusty
78      addons:
79        apt:
80          sources:
81            - ubuntu-toolchain-r-test
82          packages:
83            - g++-5
84      env:
85         - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
86
87    - os: linux
88      dist: trusty
89      addons:
90        apt:
91          sources:
92            - ubuntu-toolchain-r-test
93          packages:
94            - g++-6
95      env:
96        - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
97
98
99    - os: linux
100      dist: trusty
101      addons:
102        apt:
103          sources:
104            - ubuntu-toolchain-r-test
105          packages:
106            - g++-7
107      env:
108        - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
109
110# Linux and LLVMs
111# https://docs.travis-ci.com/user/languages/c/#Clang
112    - os: linux
113      dist: trusty
114      env:
115        - MATRIX_EVAL="CC=clang && CXX=clang"
116
117    - os: linux
118      dist: trusty
119      addons:
120        apt:
121          sources:
122            - ubuntu-toolchain-r-test
123            - llvm-toolchain-precise-3.6
124          packages:
125            - clang-3.6
126      env:
127        - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
128
129    - os: linux
130      dist: trusty
131      addons:
132        apt:
133          sources:
134            - ubuntu-toolchain-r-test
135            - llvm-toolchain-precise-3.7
136          packages:
137            - clang-3.7
138      env:
139        - MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
140
141    - os: linux
142      dist: trusty
143      addons:
144        apt:
145          sources:
146            - ubuntu-toolchain-r-test
147            - llvm-toolchain-precise-3.8
148          packages:
149            - clang-3.8
150      env:
151        - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
152
153    - os: linux
154      dist: trusty
155      addons:
156        apt:
157          sources:
158            - llvm-toolchain-trusty-3.9
159          packages:
160            - clang-3.9
161      env:
162        - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
163
164    - os: linux
165      dist: trusty
166      addons:
167        apt:
168          sources:
169            - llvm-toolchain-trusty-4.0
170          packages:
171            - clang-4.0
172      env:
173        - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
174
175    - os: linux
176      dist: trusty
177      addons:
178        apt:
179          sources:
180            - llvm-toolchain-trusty-5.0
181          packages:
182            - clang-5.0
183      env:
184        - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
185
186
187before_install:
188# avoid issues with outdated Homebrew installation on Mac OSX by updating it
189# before anything else
190# TODO: remove "brew update" line after 2017-11-15, see https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming and
191# https://github.com/travis-ci/travis-ci/issues/8552
192    - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
193    - eval "${MATRIX_EVAL}"
194
195script: autoreconf -V && autoreconf --force && ./configure && cat config.log && make && make check
196