sudo: required

matrix:
  include:
    ###################
    - language: cpp
      compiler: clang
      os: linux
      env:
        - VARIANT=test
        - DISABLED_TESTS=""
      script:
        - dlib/travis/build-and-test.sh

    ###################
    - language: cpp
      compiler: gcc
      os: linux
      env:
        - VARIANT=test-debug
        - DISABLED_TESTS=""
      script:
        - dlib/travis/build-and-test.sh

    ###################
    - language: cpp
      compiler: gcc
      os: linux
      env:
        - VARIANT=old-cmake
      before_install:
        - dlib/travis/get-old-cmakes.sh
      cache:
        - directories: cmake
      script:
        - dlib/travis/build-and-test.sh

    ########### test with C++17 ########
    - language: cpp
      compiler: gcc
      os: linux
      env:
        - VARIANT=test
        - CXXFLAGS=-std=c++17
          # Need to set MATRIX_EVAL to set CC and CXX env vars.  You would
          # think you could just set them in the env area like any other, but
          # travis is wonky about CC and CXX vars so you have to do it this way.
        - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
        - DISABLED_TESTS=""
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-7
      script:
        - dlib/travis/build-and-test.sh

    ###################
    # Disabled to avoid spending too many travis-ci credits each month.
    #- language: python
    #  python: 3.5
    #  env:
    #    - VARIANT=python-api
    #  script:
    #    - dlib/travis/build-and-test.sh

    ###################
    - language: python
      python: 3.8
      env:
        - VARIANT=python-api
      script:
        - dlib/travis/build-and-test.sh

    ###################
    # Disabled to avoid spending too many travis-ci credits each month.  They
    # also charge 5x as many credits for osx as linux.
    #- language: cpp
    #  os: osx
    #  osx_image: xcode9.2
    #  env:
    #    - VARIANT=test
    #    # Don't test the timer because it relies on the machine running it not
    #    # being under high load, but that seems to be unlikely on the travis
    #    # osx VMs.
    #    - DISABLED_TESTS="--no_test_timer"
    #  script:
    #    - dlib/travis/build-and-test.sh

