ObjFW  .travis.yml at [a43bd84674]

File .travis.yml artifact 8e068612f0 part of check-in a43bd84674


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.3beta
      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

    # Nintendo DS and 3DS
    - os: linux
      dist: trusty
      env:
        - config=devkitarm

before_install:
  - if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then
            if ! sudo apt-get -qq update >apt_log 2>&1; then
                    cat apt_log;
                    exit 1;
            fi;
            if ! sudo apt-get -qq install -y gobjc-multilib >apt_log 2>&1; then
                    cat apt_log;
                    exit 1;
            fi;
    fi

  - if [ "$config" == "devkitarm" ]; then
            base_url="https://download.sourceforge.net/project/devkitpro";
            wget -q "$base_url/devkitARM/devkitARM_r46/devkitARM_r46-x86_64-linux.tar.bz2"
                    "$base_url/libctru/1.4.0/libctru-1.4.0.tar.bz2"
                    "$base_url/libnds/1.7.1/libnds-1.7.1.tar.bz2"
                    "$base_url/libfat/1.1.2/libfat-nds-1.1.2.tar.bz2"
                    "$base_url/filesystem/0.9.13-1/libfilesystem-0.9.13-1.tar.bz2";
            mkdir -p "$HOME/devkitPro/libctru";
            tar -C "$HOME/devkitPro" -xjf devkitARM_r46-x86_64-linux.tar.bz2;
            tar -C "$HOME/devkitPro/libctru" -xjf libctru-1.4.0.tar.bz2;
            mkdir -p "$HOME/devkitPro/libnds";
            tar -C "$HOME/devkitPro/libnds" -xjf libnds-1.7.1.tar.bz2;
            tar -C "$HOME/devkitPro/libnds" -xjf libfat-1.1.2.tar.bz2;
            tar -C "$HOME/devkitPro/libnds" -xjf libfilesystem-0.9.13-1.tar.bz2;
    fi

script:
  - echo -e '%s/-DSTDOUT$/&_SIMPLE/\nwq' | ed -s tests/Makefile

  - build() {
            if ! git clean -fxd >clean_log 2>&1; then
                    cat clean_log;
                    exit 1;
            fi;
            echo ">> Building with $@";
            ./autogen.sh;
            if ! ./configure ac_cv_path_TPUT= "$@"; then
                    cat config.log;
                    exit 1;
            fi;
            if ! make -j4 >make_log 2>&1; then
                    cat make_log;
                    exit 1;
            fi;
            if ! sudo PATH="$PATH" make install >install_log 2>&1; then
                    cat 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;
    fi

  - if [ "$TRAVIS_OS_NAME" = "osx" -a -z "$config" ]; then
            build_mac_32_64() {
                    build $@;
                    build OBJC="clang -m32" --host=i386-apple-darwin $@;
            };

            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;

            export IPHONEOS_DEPLOYMENT_TARGET="10.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 --host=i386-apple-darwin --enable-static;
    fi

  - if [ "$config" = "devkitpro" ]; then
            export DEVKITPRO="$HOME/devkitPro";
            export PATH="$DEVKITPRO/devkitARM/bin:$PATH";

            build --host=arm-none-eabi --with-3ds;
            build --host=arm-none-eabi --with-nds;
    fi