# 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:
    - 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=32 cxxflags=-clr asynch-exceptions=on
    - ARGS: --toolset=msvc-12.0 address-model=32 cxxflags=-arch:IA32
    - ARGS: --toolset=msvc-14.0 address-model=32 cxxflags=-clr asynch-exceptions=on
    - ARGS: --toolset=msvc-12.0 address-model=64
    - ARGS: --toolset=msvc-14.0 address-model=64
    - ARGS: --toolset=msvc-12.0 address-model=64 cxxflags=-clr asynch-exceptions=on
    - ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-clr asynch-exceptions=on
    - ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
    - 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=32  cxxflags=-arch:IA32
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 cxxstd=17 address-model=64 cxxflags=-clr asynch-exceptions=on
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 cxxstd=17 address-model=32 cxxflags=-clr asynch-exceptions=on
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      ARGS: --toolset=msvc-14.1 architecture=arm testing.execute=off
      DISABLE_CONFIG_INFO: "YES"
    - ARGS: --toolset=gcc address-model=64
      PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
    - ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z
      PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
    - ARGS: --toolset=gcc address-model=32
      PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH%
    - ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
      PATH: C:\MinGW\bin;%PATH%


install:
  - cd ..
  - git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
  - cd boost-root
  - git submodule update --init tools/build
  - git submodule update --init tools/boost_install
  - git submodule update --init libs/headers
  - git submodule update --init libs/config
  - git submodule update --init libs/assert
  - git submodule update --init libs/bind
  - git submodule update --init libs/core
  - git submodule update --init libs/detail
  - git submodule update --init libs/function
  - git submodule update --init libs/integer
  - git submodule update --init libs/move
  - git submodule update --init libs/mpl
  - git submodule update --init libs/preprocessor
  - git submodule update --init libs/static_assert
  - git submodule update --init libs/throw_exception
  - git submodule update --init libs/type_index
  - git submodule update --init libs/utility
  - git submodule update --init libs/container_hash
  - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\type_traits
  - bootstrap
  - b2 headers

build: off

test_script:
  - cd libs\config\test
  - IF DEFINED DISABLE_CONFIG_INFO (echo skipping config_info build) ELSE (..\..\..\b2 config_info_travis_install %ARGS%)
  - IF DEFINED DISABLE_CONFIG_INFO (echo skipping config_info printout) ELSE (config_info_travis)
  - cd ..\..\type_traits\test
  - ..\..\..\b2 -j3 --hash %ARGS%
