language: c
matrix:
include:
# Linux
- os: linux
compiler: clang
dist: precise
sudo: required
- os: linux
compiler: gcc
dist: precise
sudo: required
- os: linux
arch: arm64
compiler: clang
dist: precise
sudo: required
- os: linux
arch: arm64
compiler: gcc
dist: precise
sudo: required
- os: linux
arch: ppc64le
compiler: clang
dist: precise
sudo: required
- os: linux
arch: ppc64le
compiler: gcc
dist: precise
sudo: required
# Clang seems to have broken exceptions on s390x
#- os: linux
# arch: s390x
# compiler: clang
# dist: precise
# sudo: required
- os: linux
arch: s390x
compiler: gcc
dist: precise
sudo: required
- os: linux
compiler: clang
dist: trusty
sudo: required
- os: linux
compiler: gcc
dist: trusty
sudo: required
- os: linux
compiler: clang
dist: xenial
sudo: required
- os: linux
compiler: gcc
dist: xenial
sudo: required
- os: linux
compiler: clang
dist: bionic
sudo: required
- os: linux
compiler: gcc
dist: bionic
sudo: required
# macOS
- os: osx
osx_image: xcode11.2
language: objective-c
env:
- no32bit=1
- noruntime=1 # Broken compiler in this version of Xcode
- os: osx
osx_image: xcode11.1
language: objective-c
env:
- no32bit=1
- noruntime=1 # Broken compiler in this version of Xcode
- os: osx
osx_image: xcode11
language: objective-c
env:
- no32bit=1
- noruntime=1 # Broken compiler in this version of Xcode
- os: osx
osx_image: xcode10.3
language: objective-c
env:
- no32bit=1
- os: osx
osx_image: xcode10.2
language: objective-c
env:
- no32bit=1
- os: osx
osx_image: xcode10.1
language: objective-c
- os: osx
osx_image: xcode10
language: objective-c
- os: osx
osx_image: xcode9.4
language: objective-c
- os: osx
osx_image: xcode9.3
language: objective-c
- os: osx
osx_image: xcode9.2
language: objective-c
- os: osx
osx_image: xcode9.1
language: objective-c
- os: osx
osx_image: xcode9
language: objective-c
- os: osx
osx_image: xcode8.3
language: objective-c
- os: osx
osx_image: xcode8
language: objective-c
- os: osx
osx_image: xcode7.3
language: objective-c
# iOS
- os: osx
osx_image: xcode11.2
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode11.1
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode11
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode10.3
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode10.2
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode10.1
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode10
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode9.4
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode9.3
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode9.2
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode9.1
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode9
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode8.3
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode8
language: objective-c
env:
- config=ios
- os: osx
osx_image: xcode7.3
language: objective-c
env:
- config=ios
# AmigaOS
- os: linux
dist: trusty
env:
- config=amigaos
# Nintendo 3DS
- os: linux
dist: trusty
env:
- config=nintendo_3ds
# Nintendo DS
- os: linux
dist: trusty
env:
- config=nintendo_ds
# Nintendo Wii
- os: linux
dist: trusty
env:
- config=wii
before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then
case "$TRAVIS_CPU_ARCH" in
amd64 | s390x)
gobjc_pkg="gobjc-multilib";
;;
*)
gobjc_pkg="gobjc";
;;
esac;
if ! sudo apt-get -qq install -y $gobjc_pkg >/tmp/apt_log 2>&1; then
cat /tmp/apt_log;
exit 1;
fi;
fi
- if [ "$config" = "nintendo_3ds" -o "$config" = "nintendo_ds"
-o "$config" = "wii" ]; then
wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb;
sudo dpkg -i devkitpro-pacman.deb;
fi
- if [ "$config" = "nintendo_3ds" ]; then
sudo dkp-pacman --noconfirm -Syu 3ds-dev;
fi
- if [ "$config" = "nintendo_ds" ]; then
sudo dkp-pacman --noconfirm -Syu nds-dev;
fi
- if [ "$config" = "wii" ]; then
sudo dkp-pacman --noconfirm -Syu wii-dev;
fi
- if [ "$config" = "amigaos" ]; then
wget -q https://franke.ms/download/amiga-gcc.tgz;
tar -C / -xzf amiga-gcc.tgz;
fi
script:
# This needs to use ed on macOS, as it has no GNU sed, and sed on Linux, as
# some Travis hosts have no ed.
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
echo -e '%s/-DSTDOUT$/&_SIMPLE/\nwq' | ed -s tests/Makefile;
else
sed -i 's/-DSTDOUT$/&_SIMPLE/' tests/Makefile;
fi
- build() {
if ! git clean -fxd >/tmp/clean_log 2>&1; then
cat /tmp/clean_log;
exit 1;
fi;
echo ">> Configuring with $@";
./autogen.sh;
if ! ./configure ac_cv_path_TPUT= "$@"; then
cat config.log;
exit 1;
fi;
echo ">> Building (configured with $@)";
if ! make -j4 >/tmp/make_log 2>&1; then
cat /tmp/make_log;
exit 1;
fi;
echo ">> Installing (configured with $@)";
if ! sudo PATH="$PATH" make install >/tmp/install_log 2>&1; then
cat /tmp/install_log;
exit 1;
fi;
}
- if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then
build_32_64() {
build OBJC="$CC" $@;
case "$TRAVIS_CPU_ARCH" in
amd64)
build OBJC="$CC -m32"
--host=i686-pc-linux-gnu $@;
;;
s390x)
build OBJC="$CC -m31"
--host=s390-pc-linux-gnu $@;
;;
esac
};
build_32_64;
build_32_64 --enable-seluid24;
build_32_64 --disable-compiler-tls;
true The following are not CPU-dependent, so only run them on amd64;
if [ "$TRAVIS_CPU_ARCH" = "amd64" ]; then
build_32_64 --disable-threads;
build_32_64 --disable-threads --disable-sockets;
build_32_64 --disable-threads --disable-files;
build_32_64 --disable-threads --disable-sockets
--disable-files;
build_32_64 --disable-sockets;
build_32_64 --disable-sockets --disable-files;
build_32_64 --disable-files;
build_32_64 --disable-shared;
build_32_64 --disable-shared --enable-seluid24;
build_32_64 --disable-compiler-tls --disable-threads;
fi;
fi
- if [ "$TRAVIS_OS_NAME" = "osx" -a -z "$config" ]; then
build_mac_32_64() {
build $@;
if [ -z "$no32bit" ]; then
build OBJC="clang -m32" --host=i386-apple-darwin $@;
fi;
};
if xcodebuild -version | grep 'Xcode 6' >/dev/null; then
export CPPFLAGS="-D_Nullable=__nullable
-D_Nonnull=__nonnull
-D_Null_unspecified=__null_unspecified";
fi;
build_mac_32_64;
build_mac_32_64 --disable-threads;
build_mac_32_64 --disable-threads --disable-sockets;
build_mac_32_64 --disable-threads --disable-files;
build_mac_32_64 --disable-threads --disable-sockets --disable-files;
build_mac_32_64 --disable-sockets;
build_mac_32_64 --disable-sockets --disable-files;
build_mac_32_64 --disable-files;
build_mac_32_64 --disable-shared;
if [ -z "$noruntime" ]; then
build_mac_32_64 --enable-runtime;
build_mac_32_64 --enable-runtime --enable-seluid24;
build_mac_32_64 --enable-runtime --disable-threads;
build_mac_32_64 --enable-runtime --disable-threads
--disable-sockets;
build_mac_32_64 --enable-runtime --disable-threads
--disable-files;
build_mac_32_64 --enable-runtime --disable-threads
--disable-sockets --disable-files;
build_mac_32_64 --enable-runtime --disable-sockets;
build_mac_32_64 --enable-runtime --disable-sockets
--disable-files;
build_mac_32_64 --enable-runtime --disable-files;
build_mac_32_64 --enable-runtime --disable-shared;
build_mac_32_64 --enable-runtime --disable-shared
--enable-seluid24;
fi;
fi
- if [ "$config" = "ios" ]; then
if xcodebuild -version | grep 'Xcode 6' >/dev/null; then
export CPPFLAGS="-D_Nullable=__nullable
-D_Nonnull=__nonnull
-D_Null_unspecified=__null_unspecified";
fi;
export IPHONEOS_DEPLOYMENT_TARGET="9.0";
clang="clang -isysroot $(xcrun --sdk iphoneos --show-sdk-path)";
export OBJC="$clang -arch armv7 -arch arm64";
export OBJCPP="$clang -arch armv7 -E";
build --host=arm-apple-darwin --enable-static;
sysroot="$(xcrun --sdk iphonesimulator --show-sdk-path)";
clang="clang -isysroot $sysroot";
export OBJC="$clang -arch i386 -arch x86_64";
export OBJCPP="$clang -arch i386 -E";
build WRAPPER=true --host=i386-apple-darwin --enable-static;
fi
- if [ "$config" = "amigaos" ]; then
export PATH="/opt/amiga/bin:$PATH";
build --host=m68k-amigaos;
build --host=m68k-amigaos --disable-amiga-lib;
build --host=m68k-amigaos --enable-static;
fi
- if [ "$config" = "nintendo_3ds" ]; then
export DEVKITPRO="/opt/devkitpro";
export PATH="$DEVKITPRO/devkitARM/bin:$PATH";
build --host=arm-none-eabi --with-3ds;
fi
- if [ "$config" = "nintendo_ds" ]; then
export DEVKITPRO="/opt/devkitpro";
export PATH="$DEVKITPRO/devkitARM/bin:$PATH";
build --host=arm-none-eabi --with-nds;
fi
- if [ "$config" = "wii" ]; then
export DEVKITPRO="/opt/devkitpro";
export PATH="$DEVKITPRO/devkitPPC/bin:$PATH";
build ac_cv_prog_wiiload= --host=powerpc-eabi --with-wii;
fi