version: '{build}'

clone_depth: 10

matrix:
  fast_finish: true

environment:
  matrix:
    - VisualStudioVersion: 12.0
      platform: Win32
      configuration: Debug
      vcvarsall_platform: x86
      PlatformToolset: v120
    - VisualStudioVersion: 12.0
      platform: Win32
      configuration: Release
      vcvarsall_platform: x86
      PlatformToolset: v120
      MYQTDIR: C:\Qt\5.6\msvc2013
    - VisualStudioVersion: 12.0
      platform: x64
      configuration: Debug
      vcvarsall_platform: x64
      PlatformToolset: v120
      cygwin_build: yes
    - VisualStudioVersion: 12.0
      platform: x64
      configuration: Release
      vcvarsall_platform: x64
      PlatformToolset: v120
      MYQTDIR: C:\Qt\5.6\msvc2013_64
# FIXME: These are disabled for now. They were broken by ae8653612802b41b70424ec9a5eefe8a1178f6d1
#    - VisualStudioVersion: 14.0
#      platform: Win32
#      configuration: Debug
#      vcvarsall_platform: x86
#      PlatformToolset: v140
#    - VisualStudioVersion: 14.0
#      platform: Win32
#      configuration: Release
#      vcvarsall_platform: x86
#      PlatformToolset: v140
#      MYQTDIR: C:\Qt\5.11\msvc2015
#    - VisualStudioVersion: 14.0
#      platform: x64
#      configuration: Debug
#      vcvarsall_platform: x64
#      PlatformToolset: v140
# That platform causes frequent errors on appveyor due to an unknown infrastructure failure
#    - VisualStudioVersion: 14.0
#      platform: x64
#      configuration: Release
#      vcvarsall_platform: x64
#      PlatformToolset: v140
#      MYQTDIR: C:\Qt\5.11\msvc2015_64

install:
  - pip install pytest
  - SET p=x86
  - IF "%platform%"=="x64" SET p=x64
  - curl -fsSL https://github.com/Z3Prover/z3/releases/download/z3-4.8.7/z3-4.8.7-%p%-win.zip -o z3-4.8.7-win.zip
  - 7z x z3-4.8.7-win.zip -oexternals -r -y
  - move externals\z3-4.8.7-%p%-win externals\z3

build_script:
  - ECHO Building %configuration% %platform% with MSVC %VisualStudioVersion% using %PlatformToolset% PlatformToolset
  - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudioVersion%\VC\vcvarsall.bat" %vcvarsall_platform%'
  # Visual studio project..
  - msbuild "cppcheck.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%platform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
  # cmake..
  - mkdir build
  - cd build
  - cmake -DBUILD_TESTS=ON -G"NMake Makefiles" ..
  - nmake
  - copy bin\cppcheck.exe ..
  - cd ..
  # build gui..
  - ECHO MYQTDIR=%MYQTDIR%
  - 'IF defined MYQTDIR cd gui'
  - 'IF defined MYQTDIR set QTDIR=%MYQTDIR%'
  - 'IF defined MYQTDIR set PATH=%PATH%;%QTDIR%\bin'
  - 'IF defined MYQTDIR %QTDIR%\bin\qmake'
  - 'IF defined MYQTDIR nmake'
  - 'IF defined MYQTDIR cd ..'

test_script:
  - build\bin\testrunner.exe -q
  - IF EXIST bin\debug\testrunner.exe bin\debug\testrunner.exe -q
  - IF EXIST bin\testrunner.exe bin\testrunner.exe -q
  - cd test\cli
  - python -m pytest test-helloworld.py
  - python -m pytest test-inline-suppress.py
  - python -m pytest test-suppress-syntaxError.py
  - 'IF defined cygwin_build C:\cygwin64\bin\bash -e -l -c "cd /cygdrive/c/projects/cppcheck && make clean && make -j 2 && make test && make checkcfg"'

artifacts:
  - path: bin
    name: CLI binaries
    type: zip
  - path: Build\gui
    name: GUI binaries
    type: zip
