• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1language: c
2sudo: false
3matrix:
4  include:
5    ###
6    ## Linux builds using various versions of GCC.
7    ###
8    - os: linux
9      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
10      addons:
11        apt:
12          sources:
13          - ubuntu-toolchain-r-test
14          packages:
15          - gcc-6
16          - g++-6
17    - os: linux
18      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5
19      addons:
20        apt:
21          sources:
22          - ubuntu-toolchain-r-test
23          packages:
24          - gcc-5
25          - g++-5
26    - os: linux
27      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
28      addons:
29        apt:
30          sources:
31          - ubuntu-toolchain-r-test
32          packages:
33          - gcc-4.9
34          - g++-4.9
35    - os: linux
36      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8
37      addons:
38        apt:
39          sources:
40          - ubuntu-toolchain-r-test
41          packages:
42          - gcc-4.8
43          - g++-4.8
44    - os: linux
45      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7
46      addons:
47        apt:
48          sources:
49          - ubuntu-toolchain-r-test
50          packages:
51          - gcc-4.7
52          - g++-4.7
53    - os: linux
54      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6
55      addons:
56        apt:
57          sources:
58          - ubuntu-toolchain-r-test
59          packages:
60          - gcc-4.6
61          - g++-4.6
62    # - os: linux
63    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5
64    #   addons:
65    #     apt:
66    #       sources:
67    #       - ubuntu-toolchain-r-test
68    #       packages:
69    #       - gcc-4.5
70    #       - g++-4.5
71    - os: linux
72      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
73      addons:
74        apt:
75          sources:
76          - ubuntu-toolchain-r-test
77          packages:
78          - gcc-4.4
79          - g++-4.4
80
81    ###
82    ## clang on Linux
83    ###
84    - os: linux
85      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8
86      addons:
87        apt:
88          sources:
89          - llvm-toolchain-precise-3.8
90          - ubuntu-toolchain-r-test
91          packages:
92          - clang-3.8
93    - os: linux
94      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.7 CXX_COMPILER=clang++-3.7
95      addons:
96        apt:
97          sources:
98          - llvm-toolchain-precise-3.7
99          - ubuntu-toolchain-r-test
100          packages:
101          - clang-3.7
102    - os: linux
103      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.6 CXX_COMPILER=clang++-3.6
104      addons:
105        apt:
106          sources:
107          - llvm-toolchain-precise-3.6
108          - ubuntu-toolchain-r-test
109          packages:
110          - clang-3.6
111    - os: linux
112      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5
113      addons:
114        apt:
115          sources:
116          - llvm-toolchain-precise-3.5
117          - ubuntu-toolchain-r-test
118          packages:
119          - clang-3.5
120
121    ###
122    ## PGI Community Edition on Linux
123    ###
124    - os: linux
125      env: BUILD_SYSTEM=cmake C_COMPILER=pgcc CXX_COMPILER=pgc++
126
127    ###
128    ## Python build on Linux
129    ###
130    - os: linux
131      env: BUILD_SYSTEM=python C_COMPILER=gcc-6 CXX_COMPILER=g++-6
132      addons:
133        apt:
134          sources:
135          - ubuntu-toolchain-r-test
136          packages:
137          - gcc-6
138          - g++-6
139
140    ###
141    ## CMake on OS X
142    ##
143    ## These all work, but it seems unnecessary to actually build them
144    ## all since we already test all these versions of GCC on Linux.
145    ## We'll just test 4.4 and the most recent version.
146    ###
147    # - os: osx
148    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
149    - os: osx
150      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5
151    # - os: osx
152    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
153    # - os: osx
154    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8
155    # - os: osx
156    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7
157    # - os: osx
158    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6
159    # - os: osx
160    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5
161    - os: osx
162      osx_image: beta-xcode6.2
163      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
164
165    ###
166    ## Python OS X builds
167    ###
168    - os: osx
169      env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=2.7.12 C_COMPILER=gcc CXX_COMPILER=g++
170    - os: osx
171      env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.4.4 C_COMPILER=gcc CXX_COMPILER=g++
172    - os: osx
173      env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.5.2 C_COMPILER=gcc CXX_COMPILER=g++
174
175    ###
176    ## Sanitizers
177    ###
178    - os: linux
179      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=address
180      addons:
181        apt:
182          sources:
183          - ubuntu-toolchain-r-test
184          - llvm-toolchain-precise-3.8
185          packages:
186          - clang-3.8
187    - os: linux
188      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=thread
189      addons:
190        apt:
191          sources:
192          - ubuntu-toolchain-r-test
193          - llvm-toolchain-precise-3.8
194          packages:
195          - clang-3.8
196    - os: linux
197      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
198      addons:
199        apt:
200          sources:
201          - ubuntu-toolchain-r-test
202          - llvm-toolchain-precise-3.8
203          packages:
204          - clang-3.8
205
206    ###
207    ## mingw
208    ###
209    - os: linux
210      env: BUILD_SYSTEM=cmake C_COMPILER=x86_64-w64-mingw32-gcc CXX_COMPILER=x86_64-w64-mingw32-g++ RC_COMPILER=x86_64-w64-mingw32-windres CROSS_COMPILE=yes
211      addons:
212        apt:
213          sources:
214          - ubuntu-toolchain-r-test
215          - george-edison55-precise-backports
216          packages:
217          - binutils-mingw-w64-x86-64
218          - g++-mingw-w64-x86-64
219          - gcc-mingw-w64-x86-64
220          - binutils-mingw-w64-x86-64
221          - wine
222          # Because 2.8.6 passes -rdynamic to the linker, which breaks the build.
223          - cmake
224          - cmake-data
225
226    - os: linux
227      env: BUILD_SYSTEM=maven
228      language: java
229
230    - os: linux
231      dist: trusty
232      sudo: required
233      env: BUILD_SYSTEM=bazel
234      addons:
235        apt:
236          sources:
237            - ubuntu-toolchain-r-test
238          packages:
239            - wget
240            - pkg-config
241
242    - os: osx
243      env: BUILD_SYSTEM=bazel
244
245before_install:
246###
247## If we use the matrix to set CC/CXX Travis, overwrites the values,
248## so instead we use C/CXX_COMPILER, then copy the values to CC/CXX
249## here (after Travis has set CC/CXX).
250###
251- if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi
252- if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi
253- ./.travis.sh before_install
254install:
255- ./.travis.sh install
256script:
257- ./.travis.sh script
258after_success:
259- ./.travis.sh after_success
260
261before_deploy:
262- if [ "${BUILD_SYSTEM}" = "python" ] && [ "${TRAVIS_OS_NAME}" = "osx" ]; then export WHEELS=$(ls ./dist/*.whl); fi
263- ./.travis.sh before_deploy
264
265deploy:
266- provider: releases
267  api_key:
268    secure: YcCBi6W/w4dtKCa59Wfm8L5lGWvK7KxaFNDr3yh1Hz5aStXXf758pEMHGewnlbfbwuj5a3SjBb1nLp1M69OQJfxm442uXBaBKo52PM9PPbD7NjvbNIso73pqcSODXQXKuZxDFpEhfuDTVq3hUkUqiwhChWhrFucJsSL51i7qSss=
269  file: "${WHEELS}"
270  skip_cleanup: true
271  on:
272    repo: "google/brotli"
273    tags: true
274    condition: "${BUILD_SYSTEM} = python && ${TRAVIS_OS_NAME} = osx"
275- provider: bintray
276  file: ".bintray.json"
277  user: "eustas"
278  key:
279    secure: "Kbam/lTAdz72fZivbs6riJT+Y4PbuKP7r6t5PAWxJxAAykjwnYTRe3zF472g9HCE14KYMsdB+KSYSgg6TGJnqGC9gL9xhhGU9U/WmA+vbMWS/MSnMWpK9IRpp77pM2i2NKZD4v33JuEwKFCBJP3Vj6QQ5Qd1NKdobuXJyznhgnw="
280  on:
281    condition: "${BUILD_SYSTEM} = bazel"
282  skip_cleanup: true
283