# Use 'generic' to be able to override CC/CXX for clang
language: generic

matrix:
  include:
    - compiler: mingw-x86
      addons:
        apt:
          packages:
            - g++-mingw-w64-i686
            - mingw-w64-i686-dev
      script:
        - ./configure --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12 --enable-builtinzlib
        - make
      env: CROSS_COMPILE=i686-w64-mingw32- CFLAGS="-D_WIN32_WINNT=0x0501"
    - compiler: mingw-x64
      addons:
        apt:
          packages:
            - g++-mingw-w64-x86-64
            - mingw-w64-x86-64-dev
      script:
        - ./configure --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12 --enable-builtinzlib
        - make
      env: CROSS_COMPILE=x86_64-w64-mingw32- CFLAGS="-D_WIN32_WINNT=0x0501"
    - compiler: gcc
      # Install a more recent gcc than the default
      before_install:
        - sudo apt-get install -y g++-8
      env: CC=gcc-8 CXX=g++-8
    - compiler: clang
      # Install a more recent clang than the default
      before_install:
        - sudo apt-get install -y libstdc++-7-dev
        - sudo apt-get install -y clang-6.0
      env: CC=clang-6.0 CXX=clang++-6.0
    - os: osx
      osx_image: xcode8
      script:
        - xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj
    - os: osx
      osx_image: xcode10.1
      script:
        - brew install --force-bottle qt5
        - xcodebuild -target RetroArchQt -configuration Release -project pkg/apple/RetroArch_Metal.xcodeproj
      deploy:
        skip_cleanup: true
        provider: script
        script: bash travis_metal_deploy.sh
        on:
          branch: master

script:
  - ./configure
  - make

env:
  global:
   - MAKEFLAGS="-j2"
   - secure: "qc91ReC3OlzSh2gFaSH6TYzC2qIQvgA2AZff6J13eaH8xijAhuMzttZ0rMQJ0DWCIhPeUb0kIzVyaGoe4MwPALzpw1C1AznIWiZJ53HN+hWCOcS/af7YVPk6HPySnwqrS+Wv3AIIvIKFV2mxv21F/JbT/N+pArlRrp904Xj+KPo="
addons:
  apt:
    packages:
      - libsdl2-dev
      - libusb-1.0-0-dev
      - qtbase5-dev
      - qtdeclarative5-dev
    sources:
      - ubuntu-toolchain-r-test
      - llvm-toolchain-trusty-6.0
  coverity_scan:
    project:
      name: "RetroArch"
      description: "RetroArch is the official reference frontend for the libretro API."
    notification_email: libretro@gmail.com
    build_command_prepend: "./configure; make clean"
    build_command:   "make"
    branch_pattern: coverity_scan
notifications:
  email: false