# Configuration for continuous integration service at appveyor.com

version: '{build}'

os: Visual Studio 2015

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

platform:
  - Win32
  - x64

configuration:
  - Release

matrix:
  exclude:
    - Toolset: v90
      platform: x64
    - Toolset: v100
      platform: x64

build:
  verbosity: minimal

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"}
        "v90" {"Visual Studio 9 2008"}
    }
    if ($env:PLATFORM -eq "x64")
    {
        $generator = "$generator Win64"
    }

build_script:
- ps: |
    md _build -Force | Out-Null
    cd _build

    & cmake -G "$generator" -D CMAKE_CONFIGURATION_TYPES="Debug;Release" -D GFLAGS_BUILD_TESTING=ON -D GFLAGS_BUILD_SHARED_LIBS=ON -D GFLAGS_BUILD_STATIC_LIBS=ON ..
    if ($LastExitCode -ne 0) {
        throw "Exec: $ErrorMessage"
    }
    & cmake --build . --config $env:CONFIGURATION
    if ($LastExitCode -ne 0) {
        throw "Exec: $ErrorMessage"
    }

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