version: '{build}'

os: Visual Studio 2015

environment:
  matrix:
  - Toolset: v140
  - Toolset: v120
  - Toolset: v110
  - Toolset: v100

platform:
  - Win32
  - x64

configuration:
#  - Release
  - Debug

build:
  verbosity: minimal

artifacts:
  - path: '_build/Testing/Temporary/*'
    name: test_results

before_build:
- ps: |
    Write-Output "Configuration: $env:CONFIGURATION"
    Write-Output "Platform: $env:PLATFORM"
    $generator = switch ($env:TOOLSET)
    {
        "v140" {"Visual Studio 14 2015"}
        "v120" {"Visual Studio 12 2013"}
        "v110" {"Visual Studio 11 2012"}
        "v100" {"Visual Studio 10 2010"}
    }
    if ($env:PLATFORM -eq "x64")
    {
        $generator = "$generator Win64"
    }

build_script:
- ps: |
    if (($env:TOOLSET -eq "v100") -and ($env:PLATFORM -eq "x64"))
    {
        return
    }
    md _build -Force | Out-Null
    cd _build

    & cmake -G "$generator" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -Dgtest_build_tests=ON -Dgtest_build_samples=ON -Dgmock_build_tests=ON ..
    if ($LastExitCode -ne 0) {
        throw "Exec: $ErrorMessage"
    }
    & cmake --build . --config $env:CONFIGURATION
    if ($LastExitCode -ne 0) {
        throw "Exec: $ErrorMessage"
    }

test_script:
- ps: |
    if (($env:Toolset -eq "v100") -and ($env:PLATFORM -eq "x64"))
    {
        return
    }

    & ctest -C $env:CONFIGURATION --output-on-failure
    if ($LastExitCode -ne 0) {
        throw "Exec: $ErrorMessage"
    }
