# Travis-CI Config
#
# You may use the Deployer to upload packages and builds to external servers.
# See deployer/travis/deployer_defaults.sh for environment variables to configure.

language: c
sudo: required
dist: trusty

matrix:
    include:
################################
# Test Buildbots
# Deployer does not operate on these. See Deployer Buildbots, below.
# These bots are disabled when a deployment is triggered by 'deployer' branch name AND DPL_TERMINATE_TESTS=1.
# These bots remain enabled when a deployment is triggered by release tag.
################################
        - os: linux
          addons:
            apt:
              sources:
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.4
          compiler: gcc-4.4
          env: GCC44=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-4.4 (Ubuntu/Linaro 4.4.7-8ubuntu1) 4.4.7
        - os: linux
          addons:
            apt:
              sources:
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.6
          compiler: gcc-4.6
          env: GCC46=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-4.6 (Ubuntu/Linaro 4.6.4-6ubuntu2) 4.6.4
        - os: linux
          addons:
            apt:
              sources:
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.7
          compiler: gcc-4.7
          env: GCC47=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-4.7
        - os: linux
          compiler: gcc
          env: GCC48=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          env: GCC48=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-7
          compiler: gcc-7
          env: WFLAGS="-Wno-tautological-compare -Wno-error=implicit-fallthrough -Wno-implicit-fallthrough" GCC72=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-7 (Ubuntu 7.2.0-1ubuntu1~14.04) 7.2.0 20170802
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-8
          compiler: gcc-8
          env: WFLAGS="-Wno-tautological-compare -Wno-error=implicit-fallthrough -Wno-implicit-fallthrough -Wno-error=format-overflow -Wno-error=format-truncation" GCC81=1
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #gcc-8 (Ubuntu 7.2.0-1ubuntu1~14.04) 8.1.0
        - os: linux
          compiler: clang
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #clang version 3.5.0 (tags/RELEASE_350/final)
        - os: linux
          addons:
            apt:
              sources:
              - llvm-toolchain-precise-3.5
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - clang-3.5
          compiler: clang-3.5
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #Ubuntu clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
        - os: linux
          addons:
            apt:
              sources:
              - llvm-toolchain-precise-3.6
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - clang-3.6
          compiler: clang-3.6
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #Ubuntu clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2)
        - os: linux
          addons:
            apt:
              sources:
              - llvm-toolchain-precise-3.7
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - clang-3.7
          compiler: clang-3.7
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #Ubuntu clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1)
        - os: linux
          addons:
            apt:
              sources:
              - llvm-toolchain-precise-3.8
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - clang-3.8
          compiler: clang-3.8
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #clang version 3.8.1-svn271127-1~exp1 (branches/release_38)
        - os: linux
          addons:
            apt:
              sources:
              - llvm-toolchain-precise-3.9
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - clang-3.9
          compiler: clang-3.9
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #clang version 3.9.X
#        - os: linux
#          addons:
#            apt:
#              sources:
#              - llvm-toolchain-precise-4.0
#              - ubuntu-toolchain-r-test
#              - sourceline: 'ppa:stjr/srb2'
#              packages:
#              - libsdl2-mixer-dev
#              - libpng-dev
#              - libgl1-mesa-dev
#              - libgme-dev
#              - libopenmpt-dev
#              - p7zip-full
#              - clang-4.0
#          compiler: clang-4.0
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #clang version 4.0.X
#        - os: linux
#          addons:
#            apt:
#              sources:
#              - llvm-toolchain-precise-5.0
#              - ubuntu-toolchain-r-test
#              - sourceline: 'ppa:stjr/srb2'
#              packages:
#              - libsdl2-mixer-dev
#              - libpng-dev
#              - libgl1-mesa-dev
#              - libgme-dev
#              - libopenmpt-dev
#              - p7zip-full
#              - clang-5.0
#          compiler: clang-5.0
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #clang version 5.0.X
#        - os: osx
#          osx_image: beta-xcode6.1
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
#        - os: osx
#          osx_image: beta-xcode6.2
#          compiler: gcc
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
##        - os: osx
##          osx_image: beta-xcode6.3
##          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
##          #I think xcode.6.3 VM is broken, it does not boot
#        - os: osx
#          osx_image: xcode6.4
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
#        - os: osx
#          osx_image: xcode7
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 7.0.0 (clang-700.0.72)
#        - os: osx
#          osx_image: xcode7.1
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 7.0.0 (clang-700.1.76)
#        - os: osx
#          osx_image: xcode7.2
#          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
#          #Apple LLVM version 7.0.2 (clang-700.1.81)
#        - os: osx
#          osx_image: xcode7.3
#          #Apple LLVM version 7.3.0 (clang-703.0.31)
#        - os: osx
#          osx_image: xcode7.3
#          #Apple LLVM version 7.3.0 (clang-703.0.31)
        - os: osx
          if: env(DPL_ENABLED) != "1" OR env(DPL_TERMINATE_TESTS) != "1" OR NOT branch =~ /^.*deployer.*$/
          #Default: macOS 10.13 and Xcode 9.4.1


################################
# Deployer Buildbots - OSX
################################
        - os: osx
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=osx
          - _DPL_FTP_TARGET=1
          - _DPL_PACKAGE_BINARY=1
          #Apple LLVM version 7.3.0 (clang-703.0.31)


################################
# Deployer Buildbots - Linux assets
# Set DPL_TERMINATE_ASSETS to disable all of these
# List Ubuntu LTS next, newest to oldest
# Then list non-LTS, newest to oldest
################################
        - os: linux
          addons:
            apt:
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: xenial
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_ASSETS) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=bionic-asset
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - _DPL_PACKAGE_MAIN=0
          - _DPL_PACKAGE_ASSET=1
          - PACKAGE_DISTRO=bionic
          #- PACKAGE_SUBVERSION=~18.04bionic
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5

        ################################
        # The below asset bots produce packages that occupy too much space.
        # It would be nice if the asset files were not included in the source package itself,
        # so these can deploy to each Ubuntu target without manual intervention.
        #
        # Currently, to get around Launchpad's space limitation,
        # copy the packages from *one* bot and the space usage is not increased.
        ################################
        # - os: linux
        #   addons:
        #     apt:
        #       packages:
        #       - libsdl2-mixer-dev
        #       - libpng-dev
        #       - libgl1-mesa-dev
        #       - libgme-dev
        #       - p7zip-full
        #       - gcc-4.8
        #   compiler: gcc-4.8
        #   dist: trusty
        #   if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
        #       AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
        #       AND env(DPL_TERMINATE_ASSETS) != "1"
        #   env:
        #   - _DPL_JOB_ENABLED=1
        #   - _DPL_JOB_NAME=trusty-asset
        #   - _DPL_DPUT_TARGET=1
        #   - _DPL_PACKAGE_SOURCE=1
        #   - _DPL_PACKAGE_MAIN=0
        #   - _DPL_PACKAGE_ASSET=1
        #   - PACKAGE_DISTRO=trusty
        #   #- PACKAGE_SUBVERSION=~14.04trusty
        #   #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        # - os: linux
        #   addons:
        #     apt:
        #       packages:
        #       - libsdl2-mixer-dev
        #       - libpng-dev
        #       - libgl1-mesa-dev
        #       - libgme-dev
        #       - p7zip-full
        #       - gcc-4.8
        #   compiler: gcc-4.8
        #   dist: xenial
        #   if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
        #       AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
        #       AND env(DPL_TERMINATE_ASSETS) != "1"
        #   env:
        #   - _DPL_JOB_ENABLED=1
        #   - _DPL_JOB_NAME=disco-asset
        #   - _DPL_DPUT_TARGET=1
        #   - _DPL_PACKAGE_SOURCE=1
        #   - _DPL_PACKAGE_MAIN=0
        #   - _DPL_PACKAGE_ASSET=1
        #   - PACKAGE_DISTRO=disco
        #   #- PACKAGE_SUBVERSION=~19.04disco
        #   #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        # - os: linux
        #   addons:
        #     apt:
        #       packages:
        #       - libsdl2-mixer-dev
        #       - libpng-dev
        #       - libgl1-mesa-dev
        #       - libgme-dev
        #       - p7zip-full
        #       - gcc-4.8
        #   compiler: gcc-4.8
        #   dist: xenial
        #   if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
        #       AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
        #       AND env(DPL_TERMINATE_ASSETS) != "1"
        #   env:
        #   - _DPL_JOB_ENABLED=1
        #   - _DPL_JOB_NAME=cosmic-asset
        #   - _DPL_DPUT_TARGET=1
        #   - _DPL_PACKAGE_SOURCE=1
        #   - _DPL_PACKAGE_MAIN=0
        #   - _DPL_PACKAGE_ASSET=1
        #   - PACKAGE_DISTRO=cosmic
        #   #- PACKAGE_SUBVERSION=~18.10cosmic
        #   #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        # - os: linux
        #   addons:
        #     apt:
        #       packages:
        #       - libsdl2-mixer-dev
        #       - libpng-dev
        #       - libgl1-mesa-dev
        #       - libgme-dev
        #       - p7zip-full
        #       - gcc-4.8
        #   compiler: gcc-4.8
        #   dist: xenial
        #   if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
        #       AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
        #       AND env(DPL_TERMINATE_ASSETS) != "1"
        #   env:
        #   - _DPL_JOB_ENABLED=1
        #   - _DPL_JOB_NAME=xenial-asset
        #   - _DPL_DPUT_TARGET=1
        #   - _DPL_PACKAGE_SOURCE=1
        #   - _DPL_PACKAGE_MAIN=0
        #   - _DPL_PACKAGE_ASSET=1
        #   - PACKAGE_DISTRO=xenial
        #   #- PACKAGE_SUBVERSION=~16.04xenial
        #   #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5


################################
# Deployer Buildbots - Linux binaries
# List Ubuntu LTS, newest to oldest
# Then list non-LTS, newest to oldest
################################
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: xenial
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=eoan
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - PACKAGE_DISTRO=eoan
          - PACKAGE_SUBVERSION=~19.10eoan
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: xenial
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=disco
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - PACKAGE_DISTRO=disco
          - PACKAGE_SUBVERSION=~19.04disco
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: xenial
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=bionic
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - PACKAGE_DISTRO=bionic
          - PACKAGE_SUBVERSION=~18.04bionic
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: xenial
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=xenial
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - PACKAGE_DISTRO=xenial
          - PACKAGE_SUBVERSION=~16.04xenial
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
        - os: linux
          addons:
            apt:
              sources:
              - ubuntu-toolchain-r-test
              - sourceline: 'ppa:stjr/srb2'
              packages:
              - libsdl2-mixer-dev
              - libpng-dev
              - libgl1-mesa-dev
              - libgme-dev
              - libopenmpt-dev
              - libcurl4-openssl-dev
              - p7zip-full
              - gcc-4.8
          compiler: gcc-4.8
          dist: trusty
          if: env(DPL_ENABLED) = "1" AND (env(_DPL_JOB_ENABLED) = "1" OR env(DPL_JOB_ENABLE_ALL) = "1")
              AND (branch =~ /^.*deployer.*$/ OR (tag IS present AND env(DPL_TAG_ENABLED) = "1"))
              AND env(DPL_TERMINATE_MAIN) != "1"
          env:
          - _DPL_JOB_ENABLED=1
          - _DPL_JOB_NAME=trusty
          - _DPL_DPUT_TARGET=1
          - _DPL_PACKAGE_SOURCE=1
          - PACKAGE_DISTRO=trusty
          - PACKAGE_SUBVERSION=~14.04trusty
          #gcc-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
    allow_failures:
      - compiler: clang-3.5
      - compiler: clang-3.6
      - compiler: clang-3.7
      - compiler: clang-3.8
      - compiler: clang-3.9
      - compiler: clang-4.0
      - compiler: clang-5.0


cache:
  apt: true
  ccache: true
  directories:
  - $HOME/srb2_cache


addons:
  apt:
    sources:
    - sourceline: 'ppa:stjr/srb2'
    packages:
    - libsdl2-mixer-dev
    - libpng-dev
    - libgl1-mesa-dev
    - libgme-dev
    - zlib1g-dev
    - libopenmpt-dev
    - libcurl4-openssl-dev
    - p7zip-full
  homebrew:
    taps:
    - mazmazz/srb2
    packages:
    - sdl2_mixer
    - game-music-emu
    - p7zip
    - libopenmpt
    - cmake
    - curl
    update: true



before_install:
  # Initialize Deployer defaults
  - . ./deployer/travis/deployer_defaults.sh

  # Initialize Deployer; check if Deployer is enabled
  # This needs to be run in the current shell so that $__DPL_ACTIVE is set for this session
  - . ./deployer/travis/deployer.sh

  # Also check if we should now terminate -- see `deployer.sh` for conditions.
  # This should never happen on non-release buildbots when Deployer is not triggered.
  - if [[ "$__DPL_TRY_TERMINATE_EARLY" == "1" ]]; then
      if [[ "$__DPL_ACTIVE" != "1" ]]; then
        echo "Exiting early because this job is not deploying.";
        exit;
      fi;
    fi

  # If we're triggered by release tag, force ASSET_FILES_OPTIONAL_GET=1
  - if [[ "$__DPL_TAG_ELIGIBLE" = "1" ]]; then
      ASSET_FILES_OPTIONAL_GET=1;
    fi;


install:
  # Install OS X library dependencies via Homebrew
  # Do this differently for release buildbots:
  #     * `brew install --build-bottle` builds libraries for x86_64's lowest common denominator CPU, core2
  #     * `sdl2_mixer` requires options from the formula tap https://github.com/mazmazz/homebrew-srb2
  #     * `brew postinstall` runs post-install scripts after building a bottle
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      if [[ "$__DPL_ACTIVE" == "1" ]]; then
        brew install --build-bottle sdl2 game-music-emu;
        brew install --build-bottle mazmazz/srb2/sdl2_mixer --with-flac --with-mpg123;
        brew postinstall sdl2 game-music-emu mazmazz/srb2/sdl2_mixer;
      fi;
    fi
  - mkdir -p $HOME/srb2_cache


before_script:
  # OLDPWD is root repo folder
  - OLDPWD=$PWD
  - __ASSET_DIRECTORY="$OLDPWD/assets/installer"
  - mkdir -p "$__ASSET_DIRECTORY"
  - cd "$HOME/srb2_cache"

  # Get stat command so we know what the cached archive date is.
  # stat is different for OSX
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      STATCMD="stat -f %m";
    else
      STATCMD="stat -c %y";
    fi

  # Get asset files (required for MD5)
  # See `deployer_defaults.sh` for asset download path
  - if [[ "$ASSET_ARCHIVE_PATH" != "" ]]; then
      if [ -f "$(basename $ASSET_ARCHIVE_PATH)" ]; then
        echo "$(basename $ASSET_ARCHIVE_PATH) cache date -- $($STATCMD $(basename $ASSET_ARCHIVE_PATH))";
      fi;
      wget --verbose --server-response -N "$ASSET_ARCHIVE_PATH";
      7z x "$(basename $ASSET_ARCHIVE_PATH)" -o"$__ASSET_DIRECTORY" -aos;
    fi;

  # Get optional files too
  - if [[ "$__DPL_ACTIVE" == "1" ]] && [[ "$ASSET_FILES_OPTIONAL_GET" == "1" ]] && [[ "$ASSET_ARCHIVE_OPTIONAL_PATH" != "" ]]; then
      if [ -f "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH)" ]; then
        echo "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH) cache date -- $($STATCMD $(basename $ASSET_ARCHIVE_OPTIONAL_PATH))";
      fi;
      wget --verbose --server-response -N "$ASSET_ARCHIVE_OPTIONAL_PATH";
      7z x "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH)" -o"$__ASSET_DIRECTORY" -aos;
    fi;

  # Go back to root repo folder
  - cd "$OLDPWD"

  # Prepare CMake asset lists
  - SRB2_ASSET_HASHED=$(echo ${ASSET_FILES_HASHED// /\;})
  - SRB2_ASSET_DOCS=$(echo ${ASSET_FILES_DOCS// /\;})
  - SRB2_ASSET_DIRECTORY="$__ASSET_DIRECTORY"

  # Prepare CMake
  - mkdir build
  - cd build
  - mkdir package
  - export CFLAGS="-Wall -W -Werror $WFLAGS"
  - export CCACHE_COMPRESS=true
  # If OS X, set -march=core2 to build compatible binaries with old Macs
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      export CFLAGS="${CFLAGS} -march=core2";
    fi;
  - cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/bin -DCPACK_PACKAGE_DIRECTORY=$PWD/package
      -DSRB2_ASSET_HASHED="${SRB2_ASSET_HASHED}" -DSRB2_ASSET_DOCS="${SRB2_ASSET_DOCS}"
      -DSRB2_ASSET_DIRECTORY="${SRB2_ASSET_DIRECTORY}"
      -DCPACK_PACKAGE_DESCRIPTION_SUMMARY="${PROGRAM_NAME}"
      -DCPACK_PACKAGE_VENDOR="${PROGRAM_VENDOR}"
      -DSRB2_SDL2_EXE_NAME="${PROGRAM_FILENAME}"

script:
  # Build our Makefile from Cmake!
  - if [[ "$__DPL_ACTIVE" == "1" ]]; then
      . ../deployer/travis/deployer_build.sh;
    else
      make -k;
    fi;

after_success:
  # Run the upload scripts
  # These do nothing if Deployer is not triggered
  - . ../deployer/travis/deployer_ftp.sh
  - . ../deployer/travis/deployer_dput.sh