23 name: GCC on Linux, Amd64
27 - CONFIG_OPTS="--enable-debug --disable-flto"
29 name: Clang on Linux, Amd64
33 - CONFIG_OPTS="--enable-debug --disable-flto"
35 name: Clang on OS X, Amd64
40 - CONFIG_OPTS="--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl/"
42 name: Libevent, GCC on Linux, Amd64
47 - CONFIG_OPTS="--with-libevent"
49 name: Libevent, Clang on Linux, Amd64
54 - CONFIG_OPTS="--with-libevent"
56 name: Libevent, Clang on OS X, Amd64
62 - CONFIG_OPTS="--with-ssl=/usr/local/opt/openssl/ --with-libevent=/usr/local/opt/libevent/"
64 name: UBsan, GCC on Linux, Amd64
71 name: UBsan, Clang on Linux, Amd64
78 name: Asan, GCC on Linux, Amd64
85 name: Asan, Clang on Linux, Amd64
92 name: GCC on Linux, Aarch64
97 - CONFIG_OPTS="--enable-debug --disable-flto"
99 name: Clang on Linux, Aarch64
104 - CONFIG_OPTS="--enable-debug --disable-flto"
106 name: GCC on Linux, PowerPC64
111 - CONFIG_OPTS="--enable-debug --disable-flto"
113 name: Clang on Linux, PowerPC64
118 - CONFIG_OPTS="--enable-debug --disable-flto"
120 name: GCC on Linux, s390x
125 - CONFIG_OPTS="--enable-debug --disable-flto"
127 name: Clang on Linux, s390x
132 - CONFIG_OPTS="--enable-debug --disable-flto"
135 name: Apple iPhone on iOS, armv7
139 - AUTOTOOLS_HOST=armv7-apple-ios
140 - OPENSSL_HOST=ios-cross
143 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
146 name: Apple iPhone on iOS, arm64
150 - AUTOTOOLS_HOST=aarch64-apple-ios
151 - OPENSSL_HOST=ios64-cross
154 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
157 name: Apple TV on iOS, arm64
161 - AUTOTOOLS_HOST=aarch64-apple-ios
162 - OPENSSL_HOST=ios64-cross
165 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
168 name: Apple Watch on iOS, armv7
172 - AUTOTOOLS_HOST=armv7-apple-ios
173 - OPENSSL_HOST=ios-cross
176 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
179 name: iPhoneSimulator on OS X, i386
182 - AUTOTOOLS_HOST=i386-apple-ios
183 - OPENSSL_HOST=iphoneos-cross
185 - IOS_SDK=iPhoneSimulator
186 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
189 name: iPhoneSimulator on OS X, x86_64
192 - AUTOTOOLS_HOST=x86_64-apple-ios
193 - OPENSSL_HOST=iphoneos-cross
195 - IOS_SDK=iPhoneSimulator
196 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
199 name: AppleTVSimulator on OS X, x86_64
202 - AUTOTOOLS_HOST=x86_64-apple-ios
203 - OPENSSL_HOST=iphoneos-cross
205 - IOS_SDK=AppleTVSimulator
206 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
209 name: WatchSimulator on OS X, i386
212 - AUTOTOOLS_HOST=i386-apple-ios
213 - OPENSSL_HOST=iphoneos-cross
215 - IOS_SDK=WatchSimulator
216 - IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU"
218 name: Android armv7a, Linux, Amd64
224 - AUTOTOOLS_HOST=armv7a-linux-androideabi
225 - OPENSSL_HOST=android-arm
228 - ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU"
229 - ANDROID_SDK_ROOT="$HOME/android-sdk"
230 - ANDROID_NDK_ROOT="$HOME/android-ndk"
232 name: Android aarch64, Linux, Amd64
238 - AUTOTOOLS_HOST=aarch64-linux-android
239 - OPENSSL_HOST=android-arm64
240 - ANDROID_CPU=aarch64
242 - ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU"
243 - ANDROID_SDK_ROOT="$HOME/android-sdk"
244 - ANDROID_NDK_ROOT="$HOME/android-ndk"
246 name: Android x86, Linux, Amd64
252 - AUTOTOOLS_HOST=i686-linux-android
253 - OPENSSL_HOST=android-x86
256 - ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU"
257 - ANDROID_SDK_ROOT="$HOME/android-sdk"
258 - ANDROID_NDK_ROOT="$HOME/android-ndk"
260 name: Android x86_64, Linux, Amd64
266 - AUTOTOOLS_HOST=x86_64-linux-android
267 - OPENSSL_HOST=android-x86_64
270 - ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU"
271 - ANDROID_SDK_ROOT="$HOME/android-sdk"
272 - ANDROID_NDK_ROOT="$HOME/android-ndk"
276 name: Android armv7a, Linux, Amd64
278 name: Android aarch64, Linux, Amd64
280 name: Android x86, Linux, Amd64
282 name: Android x86_64, Linux, Amd64
286 if [ "$TEST_ANDROID" = "yes" ]; then
287 ./contrib/android/install_tools.sh
288 elif [ "$TEST_IOS" = "yes" ]; then
289 ./contrib/ios/install_tools.sh
292 # The Travis docs say to avoid calling exit in the script. It leads to
293 # some code duplication to avoid failures in cross-compiles. Also see
294 # https://docs.travis-ci.com/user/job-lifecycle/ in the Travis docs.
297 if [ "$TEST_UBSAN" = "yes" ]; then
298 export CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover"
302 elif [ "$TEST_ASAN" = "yes" ]; then
303 export CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address"
307 elif [ "$TEST_IOS" = "yes" ]; then
308 export AUTOTOOLS_BUILD="$(./config.guess)"
309 export PKG_CONFIG_PATH="$IOS_PREFIX/lib/pkgconfig"
310 source ./contrib/ios/setenv_ios.sh
311 ./contrib/ios/install_openssl.sh
312 ./contrib/ios/install_expat.sh
314 --build="$AUTOTOOLS_BUILD" --host="$AUTOTOOLS_HOST" \
315 --prefix="$IOS_PREFIX" \
316 --with-ssl="$IOS_PREFIX" --disable-gost \
317 --with-libexpat="$IOS_PREFIX";
320 elif [ "$TEST_ANDROID" = "yes" ]; then
321 export AUTOTOOLS_BUILD="$(./config.guess)"
322 export PKG_CONFIG_PATH="$ANDROID_PREFIX/lib/pkgconfig"
323 ./contrib/android/install_ndk.sh
324 source ./contrib/android/setenv_android.sh
325 ./contrib/android/install_openssl.sh
326 ./contrib/android/install_expat.sh
328 --build="$AUTOTOOLS_BUILD" --host="$AUTOTOOLS_HOST" \
329 --prefix="$ANDROID_PREFIX" \
330 --with-ssl="$ANDROID_PREFIX" --disable-gost \
331 --with-libexpat="$ANDROID_PREFIX";
334 elif [ "$TEST_OSX" = "yes" ]; then
335 ./configure --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl/
338 (cd testdata/clang-analysis.tdir; bash clang-analysis.test)
340 ./configure ${CONFIG_OPTS}
343 (cd testdata/clang-analysis.tdir; bash clang-analysis.test)