# Copyright 2016 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)

version: 1.0.{build}-{branch}

shallow_clone: true

branches:
  only:
    - master
    - develop

platform:
  - x64

environment:
  matrix:
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 address-model=64
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 address-model=32
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest cxxflags=-permissive-
    - ARGS: --toolset=msvc-9.0  address-model=32
    - ARGS: --toolset=msvc-10.0 address-model=32
    - ARGS: --toolset=msvc-11.0 address-model=32
    - ARGS: --toolset=msvc-12.0 address-model=32
    - ARGS: --toolset=msvc-14.0 address-model=32
    - ARGS: --toolset=msvc-12.0 address-model=64
    - ARGS: --toolset=msvc-14.0 address-model=64
    - ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
    - ARGS: --toolset=gcc address-model=64 
      CXXSTD: 03,11,14,1z
      PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
    - ARGS: --toolset=gcc address-model=64
      CXXSTD: 03,11,14,1z
      PATH: C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
    - ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
      CXXSTD: 03,11,14,1z
      PATH: C:\MinGW\bin;%PATH%
    - ARGS: --toolset=gcc address-model=64
      CXXSTD: 03,11,14,1z
      PATH: C:\cygwin64\bin;%PATH%
    - ARGS: --toolset=gcc address-model=32
      CXXSTD: 03,11,14,1z
      PATH: C:\cygwin\bin;%PATH%

install:
  - cd ..
  - git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
  - cd boost-root
  - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\algorithm
  - git submodule update --init tools/build
  - git submodule update --init libs/config
  - git submodule update --init libs/predef
  - git submodule update --init libs/core
  - git submodule update --init libs/detail
  - git submodule update --init libs/range
  - git submodule update --init libs/assert
  - git submodule update --init libs/array
  - git submodule update --init libs/type_traits
  - git submodule update --init libs/static_assert
  - git submodule update --init libs/iterator
  - git submodule update --init libs/preprocessor
  - git submodule update --init libs/mpl
  - git submodule update --init libs/smart_ptr
  - git submodule update --init libs/callable_traits
  - git submodule update --init libs/type_index
  - git submodule update --init libs/exception
  - git submodule update --init libs/throw_exception
  - git submodule update --init libs/utility
  - git submodule update --init libs/bind
  - git submodule update --init libs/ratio
  - git submodule update --init libs/function
  - git submodule update --init libs/integer
  - git submodule update --init libs/numeric
  - git submodule update --init libs/move
  - git submodule update --init libs/container_hash
  - git submodule update --init libs/io
  - git submodule update --init libs/concept_check
  - git submodule update --init libs/test
  - git submodule update --init libs/timer
  - git submodule update --init libs/chrono
  - git submodule update --init libs/system
  - bootstrap
  - b2 headers
  
build: off

test_script:
  - cd libs\config\test
  - ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD%
