language: c

# BUILD="native": native builds
# BUILD="32": 32-bit builds
# BUILD="cross": cross compile build
# TREE="out": out-of-tree build
# NO INSTALL_PACKAGES variable: build with minimal dependencies

matrix:
    include:
        ### native builds ###
        - os: linux
          env: BUILD="native" INSTALL_PACKAGES="$BUILD"
          compiler: gcc-5
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test']
                  packages: ['gcc-5']

        - os: linux
          env: BUILD="native" TREE="out" INSTALL_PACKAGES="$BUILD"
          compiler: gcc-7
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test']
                  packages: ['gcc-7']

        - os: linux
          env: BUILD="native" TREE="out"
          compiler: clang-4.0
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-4.0']
                  packages: ['clang-4.0']

        - os: linux
          env: BUILD="native" INSTALL_PACKAGES="$BUILD"
          compiler: clang-5.0
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
                  packages: ['clang-5.0']

        - os: linux
          env: BUILD="native"
          compiler: clang-3.9
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-3.9']
                  packages: ['clang-3.9']

        ### 32-bit builds ###
        - os: linux
          env: BUILD="32" INSTALL_PACKAGES="$BUILD"
          compiler: gcc-4.9
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test']
                  packages: ['gcc-4.9', 'gcc-4.9-multilib', 'linux-libc-dev:i386']

        - os: linux
          env: BUILD="32" TREE="out" INSTALL_PACKAGES="$BUILD"
          compiler: gcc-6
          addons:
              apt:
                  sources: ['ubuntu-toolchain-r-test']
                  packages: ['gcc-6', 'gcc-6-multilib', 'linux-libc-dev:i386']

        ### cross-compile builds ###
        - os: linux
          env: BUILD="cross" INSTALL_PACKAGES="$BUILD"
          compiler: arm-linux-gnueabihf-gcc
          addons:
              apt:
                  packages: ['gcc-arm-linux-gnueabihf', 'libc6-dev-armhf-cross']

        - os: linux
          env: BUILD="cross" TREE="out" INSTALL_PACKAGES="$BUILD"
          compiler: aarch64-linux-gnu-gcc
          addons:
              apt:
                  packages: ['gcc-aarch64-linux-gnu', 'libc6-dev-arm64-cross']

        - os: linux
          env: BUILD="cross" TREE="out"
          compiler: powerpc64le-linux-gnu-gcc
          addons:
              apt:
                  packages: ['gcc-powerpc64le-linux-gnu', 'libc6-dev-ppc64el-cross']

notifications:
    email:
        secure: "b/xcA/K5OyQvPPnd0PRahTH5LJu8lgz8goGHvhXpHo+ZPsPgTDXNFo5cX9fSOkMuFKeoW8iGl0wOgK2+ptc8mbYDw277K4RFIHRHeV/KIoE1EzjQnEFiL8J0oHCAvDj12o0AXeriTyY9gICXKbR31Br6Zh5eKViDJe2OAGeHeDU="

before_install:
    # travis-ci/travis-ci#9112: remove all third party repositories except ubuntu-toolchain-r-test
    - if [ -f /etc/apt/sources.list.d/ubuntu-toolchain-r-test*.list ]; then
          cp -v /etc/apt/sources.list.d/ubuntu-toolchain-r-test*.list /tmp
      ; fi
    - sudo rm -fv /etc/apt/sources.list.d/*
    - if [ -f /tmp/ubuntu-toolchain-r-test*.list ]; then
          sudo cp -v /tmp/ubuntu-toolchain-r-test*.list /etc/apt/sources.list.d/
      ; fi

    # workaround apt related for error:
    # Err:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty InRelease
    # The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F
    - sudo apt update -o Acquire::Retries=100 -o Acquire::http::Timeout="60" -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true

    # installing / removing dependencies
    - if [ "$INSTALL_PACKAGES" = "" ]; then
          sudo apt remove $(cat .travis.packages_native | grep -v -e 'libc6' -e 'libc6-dev' -e 'linux-libc-dev' -e 'libacl1')
      ; else
          sudo apt install -qq $(cat .travis.packages_native)
      ; fi

    - if [ "$INSTALL_PACKAGES" = "32" ]; then
          sudo apt install -qq $(cat .travis.packages_i386)
      ; fi
    - if [ ! "$TREE" ]; then
          TREE="in"
      ; fi

script: ./build.sh -o $TREE -t $BUILD -c $CC
