blob: 48bca719d3e47be188fc10fcf70a1065b6618331 [file] [log] [blame]
Evan Nemerson3e33d762016-06-23 12:20:37 -07001language: c
Evan Nemerson01f9cf92016-07-28 20:13:29 -07002sudo: false
Evan Nemerson3e33d762016-06-23 12:20:37 -07003matrix:
Evan Nemerson37be4e32016-06-28 20:35:16 -07004 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
Evan Nemerson97b846f2016-07-26 20:59:28 -070062 # - 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
Evan Nemerson37be4e32016-06-28 20:35:16 -070071 - 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
Evan Nemerson3e33d762016-06-23 12:20:37 -070080
Evan Nemerson37be4e32016-06-28 20:35:16 -070081 ###
Evan Nemerson1d15c952016-07-22 19:14:29 -070082 ## clang on Linux
Evan Nemerson37be4e32016-06-28 20:35:16 -070083 ###
84 - os: linux
Evan Nemerson1d15c952016-07-22 19:14:29 -070085 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
Evan Nemerson37be4e32016-06-28 20:35:16 -0700120
121 ###
122 ## Python build on Linux
123 ###
124 - os: linux
125 env: BUILD_SYSTEM=python C_COMPILER=gcc-6 CXX_COMPILER=g++-6
126 addons:
127 apt:
128 sources:
129 - ubuntu-toolchain-r-test
130 packages:
131 - gcc-6
132 - g++-6
133
134 ###
135 ## CMake on OS X
136 ##
137 ## These all work, but it seems unnecessary to actually build them
138 ## all since we already test all these versions of GCC on Linux.
139 ## We'll just test 4.4 and the most recent version.
140 ###
141 - os: osx
142 env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
143 # - os: osx
144 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5
145 # - os: osx
146 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
147 # - os: osx
148 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8
149 # - os: osx
150 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7
151 # - os: osx
152 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6
153 # - os: osx
154 # env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5
155 - os: osx
156 env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
157
158 ###
159 ## Python OS X builds
160 ###
161 - os: osx
162 env: BUILD_SYSTEM=python INSTALL_TYPE=system PYTHON_VERSION=2.7
163 - os: osx
164 env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=2.7.10
165 - os: osx
166 env: BUILD_SYSTEM=python INSTALL_TYPE=homebrew PYTHON_VERSION=2.7.10
167 - os: osx
168 env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.4.3
169 - os: osx
170 env: BUILD_SYSTEM=python INSTALL_TYPE=homebrew PYTHON_VERSION=3.4.3
171 - os: osx
172 env: BUILD_SYSTEM=python INSTALL_TYPE=macpython PYTHON_VERSION=3.5.0
173 - os: osx
174 env: BUILD_SYSTEM=python INSTALL_TYPE=homebrew PYTHON_VERSION=3.5.0
175
176 ###
177 ## Sanitizers
Evan Nemerson37be4e32016-06-28 20:35:16 -0700178 ###
Evan Nemerson45862fc2016-07-22 20:09:09 -0700179 - os: linux
Evan Nemerson26a59352016-07-26 08:22:58 -0700180 env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=address
Evan Nemerson45862fc2016-07-22 20:09:09 -0700181 addons:
182 apt:
183 sources:
184 - ubuntu-toolchain-r-test
Evan Nemerson26a59352016-07-26 08:22:58 -0700185 - llvm-toolchain-precise-3.8
Evan Nemerson45862fc2016-07-22 20:09:09 -0700186 packages:
Evan Nemerson26a59352016-07-26 08:22:58 -0700187 - clang-3.8
188 - os: linux
189 env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=thread
190 addons:
191 apt:
192 sources:
193 - ubuntu-toolchain-r-test
194 - llvm-toolchain-precise-3.8
195 packages:
196 - clang-3.8
197 - os: linux
198 env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
199 addons:
200 apt:
201 sources:
202 - ubuntu-toolchain-r-test
203 - llvm-toolchain-precise-3.8
204 packages:
205 - clang-3.8
Evan Nemerson37be4e32016-06-28 20:35:16 -0700206
Evan Nemerson03657e82016-07-28 13:31:09 -0700207 ###
208 ## mingw
209 ###
210 - os: linux
211 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
212 addons:
213 apt:
214 sources:
215 - ubuntu-toolchain-r-test
216 - george-edison55-precise-backports
217 packages:
218 - binutils-mingw-w64-x86-64
219 - g++-mingw-w64-x86-64
220 - gcc-mingw-w64-x86-64
221 - binutils-mingw-w64-x86-64
222 - wine
223 # Because 2.8.6 passes -rdynamic to the linker, which breaks the build.
224 - cmake
225 - cmake-data
226
Evan Nemerson37be4e32016-06-28 20:35:16 -0700227before_install:
228###
Evan Nemerson26a59352016-07-26 08:22:58 -0700229## If we use the matrix to set CC/CXX Travis, overwrites the values,
Evan Nemerson37be4e32016-06-28 20:35:16 -0700230## so instead we use C/CXX_COMPILER, then copy the values to CC/CXX
231## here (after Travis has set CC/CXX).
232###
233- if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi
234- if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi
Cosimo Lupobb3d9242015-08-11 12:39:49 +0100235install:
Evan Nemerson37be4e32016-06-28 20:35:16 -0700236- ./.travis.sh install
Cosimo Lupobb3d9242015-08-11 12:39:49 +0100237script:
Evan Nemerson37be4e32016-06-28 20:35:16 -0700238- ./.travis.sh script
Cosimo Lupobb3d9242015-08-11 12:39:49 +0100239after_success:
Evan Nemerson37be4e32016-06-28 20:35:16 -0700240- ./.travis.sh after_success
Evan Nemerson3e33d762016-06-23 12:20:37 -0700241
Cosimo Lupobb3d9242015-08-11 12:39:49 +0100242before_deploy:
Evan Nemerson3e33d762016-06-23 12:20:37 -0700243- if [ "${BUILD_SYSTEM}" = "python" ]; then export WHEELS=$(ls ./dist/*.whl); fi
Cosimo Lupo6dcb0dd2015-08-12 15:57:03 +0100244
Zoltan Szabadka070dacb2015-08-31 15:34:42 +0200245deploy:
246 provider: releases
247 api_key:
248 secure: YcCBi6W/w4dtKCa59Wfm8L5lGWvK7KxaFNDr3yh1Hz5aStXXf758pEMHGewnlbfbwuj5a3SjBb1nLp1M69OQJfxm442uXBaBKo52PM9PPbD7NjvbNIso73pqcSODXQXKuZxDFpEhfuDTVq3hUkUqiwhChWhrFucJsSL51i7qSss=
Evan Nemerson3e33d762016-06-23 12:20:37 -0700249 file: "${WHEELS}"
Zoltan Szabadka070dacb2015-08-31 15:34:42 +0200250 skip_cleanup: true
251 on:
Evan Nemerson3e33d762016-06-23 12:20:37 -0700252 repo: "google/brotli"
Zoltan Szabadka070dacb2015-08-31 15:34:42 +0200253 tags: true
Evan Nemerson3e33d762016-06-23 12:20:37 -0700254 condition: "${BUILD_SYSTEM} = python"