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: clang
      os: linux
      env:
        - VARIANT=examples-debug
      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=tools
      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

    ###################
    - language: cpp
      compiler: gcc
      os: linux
      env:
        - VARIANT=dlib_all_source_cpp
      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

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

    ###################
    - 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

    ###################
    - 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

