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