# Notes:
#   - Minimal appveyor.yml file is an empty file. All sections are optional.
#   - Indent each level of configuration with 2 spaces. Do not use tabs!
#   - All section names are case-sensitive.
#   - Section names should be unique on each level.

#---------------------------------#
#      general configuration      #
#---------------------------------#

# version format
version: '{build}-{branch}'

# branches to build
branches:
  # whitelist
  only:
    - develop
    - release
    - default

# Do not build on tags (GitHub and BitBucket)
skip_tags: true

#---------------------------------#
#    environment configuration    #
#---------------------------------#

# clone directory
clone_folder: c:\projects\valentina

# set clone depth
clone_depth: 1                       # clone entire repository history if not defined

# fetch repository as zip archive
shallow_clone: false                 # default is "false"

environment:
  matrix:
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.15\mingw81_32
    QT_VERSION: Qt5.15
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw810_32\bin
    PLATFORM: x86
    DEPLOY: true
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    QT5: Qt\5.6\mingw49_32
    QT_VERSION: Qt5.6
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw492_32\bin
    PLATFORM: x86
    DEPLOY: true
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.15\mingw81_64
    QT_VERSION: Qt5.15
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw810_64\bin
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.15\msvc2019_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 16
    PLATFORM: x64
    DEPLOY: false 
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.14\mingw73_32
    QT_VERSION: Qt5.14
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw730_32\bin
    PLATFORM: x86
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.14\mingw73_64
    QT_VERSION: Qt5.14
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw730_64\bin
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.14\msvc2017_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 15
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.13\mingw73_64
    QT_VERSION: Qt5.13
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw730_64\bin
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.13\msvc2017_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 15
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.12\mingw73_64
    QT_VERSION: Qt5.12
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw730_64\bin
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
    QT5: Qt\5.12\msvc2017_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 15
    PLATFORM: x64
    DEPLOY: false  
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    QT5: Qt\5.11\mingw53_32
    QT_VERSION: Qt5.11
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw530_32\bin
    PLATFORM: x86
    DEPLOY: false 
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    QT5: Qt\5.11\msvc2015_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 14
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    QT5: Qt\5.10\mingw53_32
    QT_VERSION: Qt5.10
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw530_32\bin
    PLATFORM: x86
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    QT5: Qt\5.10\msvc2017_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 15
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    QT5: Qt\5.9\mingw53_32
    QT_VERSION: Qt5.9
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw530_32\bin
    PLATFORM: x86
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    QT5: Qt\5.9\msvc2017_64
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 15
    PLATFORM: x64
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    QT5: Qt\5.7\mingw53_32
    QT_VERSION: Qt5.7
    QMAKE_GENERATOR: "MinGW Makefiles"
    MINGW_PATH: C:\Qt\Tools\mingw530_32\bin
    PLATFORM: x86
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    QT5: Qt\5.7\msvc2015
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 14
    PLATFORM: x86
    DEPLOY: false
  - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
    QT5: Qt\5.6\msvc2015_64
    QT_VERSION: Qt5.6
    QMAKE_GENERATOR: "NMake Makefiles JOM"
    VSVER: 14
    PLATFORM: x64
    DEPLOY: false

# scripts that are called at very beginning, before repo cloning
init:
# Uncomment if need access through RDP
#  - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
  # Path before
  - path
  - set QTDIR=C:\%QT5%
  - set PATH=%QTDIR%\bin;%QTDIR%\include;C:\Tools\PsTools;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;C:\Program Files\Git LFS;C:\Tools\GitVersion;C:\Windows\system32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0\
  - if NOT "%QMAKE_GENERATOR%" == "MinGW Makefiles" echo "Using Visual Studio %VSVER%.0"
  - if "%QMAKE_GENERATOR%" == "MinGW Makefiles" echo "Using MinGW"
  # Set VC variables for the platform
  - IF "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2019" IF "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" IF "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2019" IF "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" IF "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
  - IF "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" IF "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" IF "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
  - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%QMAKE_GENERATOR%"=="NMake Makefiles JOM" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
  - if "%QMAKE_GENERATOR%" == "MinGW Makefiles" set PATH=%MINGW_PATH%;%PATH%
  - if "%QMAKE_GENERATOR%" == "NMake Makefiles JOM" set PATH=C:\Qt\Tools\QtCreator\bin;%PATH%
  - set PATH=C:\projects\valentina\build\src\libs\vpropertyexplorer\bin;C:\projects\valentina\build\src\libs\qmuparser\bin;%PATH%
  # Path after
  - path
    # Trick qmake to not work through MSYS
  - del /F "C:\Program Files\Git\usr\bin\sh.exe"
  - del /F "C:\Program Files\Git\bin\sh.exe"
  - qmake -v

#---------------------------------#
#       build configuration       #
#---------------------------------#

before_build:
  - cd c:\projects\valentina
  - md build

# to run your custom scripts instead of automatic MSBuild
build_script:
  - cd build
  - if "%DEPLOY%" == "true" (qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings CONFIG+=noDebugSymbols CONFIG+=noWindowsInstaller) else (qmake ..\Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=no_ccache CONFIG+=checkWarnings)
  - if not "%QMAKE_GENERATOR%" == "MinGW Makefiles" (nmake -s) else (mingw32-make -j%NUMBER_OF_PROCESSORS%)

# to run your custom scripts instead of automatic tests
test_script:
  - if "%QMAKE_GENERATOR%" == "MinGW Makefiles" (mingw32-make -s check TESTARGS="-silent")

# to disable automatic tests 
#test: off

matrix:
  fast_finish: false

#---------------------------------#
#         notifications           #
#---------------------------------#
  
notifications:
  # Email
  - provider: Email
    to:
      - dismine@gmail.com
    on_build_success: false
    on_build_failure: true
    on_build_status_changed: true

#---------------------------------#
#         deployment              #
#---------------------------------#

# prepare to deploy
after_test:
  - if "%DEPLOY%" == "true" (mingw32-make install)

artifacts:
  - path: build/package/valentina
    name: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_BRANCH)-$(APPVEYOR_REPO_COMMIT)

deploy:
- provider: BinTray
  username: dismine
  api_key:
    secure: dlVBgPG66AfYTbgi9EQFaK4lZeF77H6/aiuKlmCWP02/i85HLtCMnlOkyWJR5XCu
  subject: dismine
  repo: Valentina
  package: valentina-win_auto-upload
  publish: true
  override: true
  version: 0.7.41
  on:
    DEPLOY: true
  artifact: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_BRANCH)-$(APPVEYOR_REPO_COMMIT)