appveyor.yml 4.85 KB
Newer Older
yangjian's avatar
yangjian committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
version: '{build}'

environment:
  matrix:
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Debug
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 14 2015

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      configuration: Debug
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 15 2017

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      configuration: Debug
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 16 2019

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      configuration: Debug
      platform: x64
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 16 2019

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Debug
      COMPILER: mingw
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Ninja

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Release
      COMPILER: mingw
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Ninja

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Release
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 14 2015

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Release
      platform: x86
      name: with_win_header
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 14 2015

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      configuration: Release
      platform: x86
      CXX_FLAGS: "/permissive- /std:c++latest /utf-8"
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 15 2017

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      configuration: Release
      platform: x86
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: "-DJSON_ImplicitConversions=OFF"
      GENERATOR: Visual Studio 16 2019

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      configuration: Release
      platform: x64
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 16 2019

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      configuration: Release
      platform: x64
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 14 2015

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      configuration: Release
      platform: x64
      CXX_FLAGS: "/permissive- /std:c++latest /Zc:__cplusplus /utf-8 /F4000000"
      LINKER_FLAGS: "/STACK:4000000"
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 15 2017

    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      configuration: Release
      platform: x64
      CXX_FLAGS: ""
      LINKER_FLAGS: ""
      CMAKE_OPTIONS: ""
      GENERATOR: Visual Studio 16 2019

init:
  - cmake --version
  - msbuild /version

install:
  - if "%COMPILER%"=="mingw"  appveyor DownloadFile https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-win.zip -FileName ninja.zip
  - if "%COMPILER%"=="mingw"  7z x ninja.zip -oC:\projects\deps\ninja > nul
  - if "%COMPILER%"=="mingw"  set PATH=C:\projects\deps\ninja;%PATH%
  - if "%COMPILER%"=="mingw"  set PATH=C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;%PATH%
  - if "%COMPILER%"=="mingw"  g++ --version
  - if "%platform%"=="x86"    set GENERATOR_PLATFORM=Win32

before_build:
  # for with_win_header build, inject the inclusion of Windows.h to the single-header library
  - ps: if ($env:name -Eq "with_win_header") { $header_path = "single_include\nlohmann\json.hpp" }
  - ps: if ($env:name -Eq "with_win_header") { "#include <Windows.h>`n" + (Get-Content $header_path | Out-String) | Set-Content $header_path }
  - if "%GENERATOR%"=="Ninja" (cmake . -G "%GENERATOR%" -DCMAKE_BUILD_TYPE="%configuration%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_EXE_LINKER_FLAGS="%LINKER_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On "%CMAKE_OPTIONS%") else (cmake . -G "%GENERATOR%" -A "%GENERATOR_PLATFORM%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_EXE_LINKER_FLAGS="%LINKER_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On "%CMAKE_OPTIONS%")

build_script:
  - cmake --build . --config "%configuration%"

test_script:
  - if "%configuration%"=="Release" ctest -C "%configuration%" -V -j
  # On Debug builds, skip test-unicode_all
  # as it is extremely slow to run and cause
  # occasional timeouts on AppVeyor.
  # More info: https://github.com/nlohmann/json/pull/1570
  - if "%configuration%"=="Debug" ctest --exclude-regex "test-unicode" -C "%configuration%" -V -j