language: c
matrix:
include:
# Linux
- os: linux
compiler: gcc
dist: trusty
sudo: required
- os: linux
compiler: clang
dist: trusty
sudo: required
- os: linux
compiler: gcc
dist: precise
sudo: required
- os: linux
compiler: clang
dist: precise
sudo: required
# macOS
- 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
- os: osx
osx_image: xcode6.4
language: objective-c
# 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
- os: osx
osx_image: xcode6.4
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
# TODO: Enable once libogc is updated
#- os: linux
# dist: trusty
# env:
# - config=wii
before_install:
- if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then
if ! sudo apt-get -qq update >/tmp/apt_log 2>&1; then
cat /tmp/apt_log;
exit 1;
fi;
if ! sudo apt-get -qq install -y gobjc-multilib >/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 http://franke.ms/download/amiga-toolchain-centos.tgz;
tar -C / -xzf amiga-toolchain-centos.tgz;
fi
script:
- echo -e '%s/-DSTDOUT$/&_SIMPLE/\nwq' | ed -s tests/Makefile
- 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" $@;
build OBJC="$CC -m32" --host=i686-pc-linux-gnu $@;
};
build_32_64;
build_32_64 --enable-seluid24;
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;
build_32_64 --disable-compiler-tls --disable-threads;
fi
- if [ "$TRAVIS_OS_NAME" = "osx" -a -z "$config" ]; then
build_mac_32_64() {
build $@;
build OBJC="clang -m32" --host=i386-apple-darwin $@;
};
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;
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
- 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 --sysroot $(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 --sysroot $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