ObjFW  Artifact [82e1b8c899]

Artifact 82e1b8c899f78516f86567999c6369e0ef3fe1c2543a221de0594e21111abf02:

  • File .travis.yml — part of check-in [8dca47ec20] at 2018-02-17 16:54:40 on branch trunk — .travis.yml: Several small improvements

    * Reduce the iOS deployment target to 9.0.
    * Define _Nonnull, _Nullable and _Null_unspecified for Xcode 6.
    Xcode 6 used __nonnull, __nullable and __null_unspecified instead,
    while already defining __has_feature(nullability).
    * Always set WRAPPER=true for iOS simulator builds.
    Old versions of Xcode generated binaries that target the simulator
    but could be executed outside of it, resulting in the tests being run
    as configure noticed it can run binaries, but the tests failing
    because they expected an iOS environment. (user: js, size: 8199) [annotate] [blame] [check-ins using]


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

    # Nintendo Wii
    - os: linux
      dist: trusty
      env:
        - config=devkitppc

    # PSP
    - os: linux
      dist: trusty
      env:
        - config=devkitpsp

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-nds-1.1.2.tar.bz2;
            tar -C "$HOME/devkitPro/libnds" -xjf libfilesystem-0.9.13-1.tar.bz2;
    fi

  - if [ "$config" = "devkitppc" ]; then
            base_url="https://download.sourceforge.net/project/devkitpro";
            wget -q "$base_url/devkitPPC/devkitPPC_r29-1/devkitPPC_r29-1-x86_64-linux.tar.bz2"
                    "$base_url/libogc/1.8.16/libogc-1.8.16.tar.bz2"
                    "$base_url/libfat/1.1.2/libfat-ogc-1.1.2.tar.bz2";

            mkdir -p "$HOME/devkitPro/libogc";
            tar -C "$HOME/devkitPro" -xjf devkitPPC_r29-1-x86_64-linux.tar.bz2;
            tar -C "$HOME/devkitPro/libogc" -xjf libogc-1.8.16.tar.bz2;
            tar -C "$HOME/devkitPro/libogc" -xjf libfat-ogc-1.1.2.tar.bz2;
    fi

  - if [ "$config" = "devkitpsp" ]; then
            wget -q https://download.sourceforge.net/project/devkitpro/devkitPSP/devkitPSP_r16-1-x86_64-linux.tar.bz2;

            mkdir -p "$HOME/devkitPro";
            tar -C "$HOME/devkitPro" -xjf devkitPSP_r16-1-x86_64-linux.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 ">> Configuring with $@";
            ./autogen.sh;
            if ! ./configure ac_cv_path_TPUT= "$@"; then
                    cat config.log;
                    exit 1;
            fi;
            echo ">> Building (configured with $@)";
            if ! make -j4 >make_log 2>&1; then
                    cat make_log;
                    exit 1;
            fi;
            echo ">> Installing (configured with $@)";
            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 $@;
            };

            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;

            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" = "devkitarm" ]; 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

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

            build ac_cv_prog_wiiload= --host=powerpc-eabi --with-wii;
    fi

  - if [ "$config" = "devkitpsp" ]; then
            export DEVKITPRO="$HOME/devkitPro";
            export DEVKITPSP="$DEVKITPRO/devkitPSP";
            export PATH="$DEVKITPSP/bin:$PATH";

            build --host=psp;
    fi