Redo AppVeyor build matrix

Added VS 2019 builds, C++17/C++20 builds and performed some general
cleanup.
This commit is contained in:
Martin Hořeňovský 2019-10-31 16:30:42 +01:00
parent eabb8a6af7
commit 478c324534
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A

View File

@ -1,67 +1,112 @@
# version string format -- This will be overwritten later anyway version: "{build}-{branch}"
version: "{build}"
# If we ever get a backlog larger than clone_depth, builds will fail
# spuriously. I do not think we will ever get 20 deep commits deep though.
clone_depth: 20
# We want to build everything, except for branches that are explicitly
# for messing around with travis.
branches: branches:
except: except:
- /dev-travis.+/ - /dev-travis.+/
os:
- Visual Studio 2017 # Sadly we cannot use the standard "dimensions" based approach towards
# specifying the different builds, as there is no way to add one-offs
# builds afterwards. This means that we will painfully specify each
# build explicitly.
environment: environment:
matrix: matrix:
- additional_flags: "/permissive- /std:c++latest" - FLAVOR: VS 2019 x64 Debug
wmain: 0 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
platform: x64
configuration: Debug
- additional_flags: "" - FLAVOR: VS 2019 x64 Release
wmain: 0 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
platform: x64
configuration: Release
- additional_flags: "/D_UNICODE /DUNICODE" - FLAVOR: VS 2019 x64 Debug Coverage
wmain: 1 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
coverage: 0 coverage: 1
platform: x64
configuration: Debug
# Have a coverage dimension - FLAVOR: VS 2019 x64 Debug Examples
- additional_flags: "" APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
wmain: 0 examples: 1
coverage: 1 platform: x64
configuration: Debug
# Have an examples dimension - FLAVOR: VS 2019 x64 Debug WMain
- additional_flags: "" APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
wmain: 0 wmain: 1
examples: 1 additional_flags: "/D_UNICODE /DUNICODE"
platform: x64
configuration: Debug
- FLAVOR: VS 2019 Win32 Debug
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
platform: Win32
configuration: Debug
matrix: - FLAVOR: VS 2019 x64 Debug Latest Strict
exclude: APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
# Exclude unwanted coverage configurations additional_flags: "/permissive- /std:c++latest"
- coverage: 1 platform: x64
platform: Win32 configuration: Debug
- coverage: 1 - FLAVOR: VS 2017 x64 Debug
configuration: Release APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: x64
configuration: Debug
# Exclude unwanted examples configurations - FLAVOR: VS 2017 x64 Release
- examples: 1 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: Win32 platform: x64
configuration: Release
- examples: 1 - FLAVOR: VS 2017 x64 Release Coverage
configuration: Release APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
coverage: 1
platform: x64
configuration: Debug
- FLAVOR: VS 2017 Win32 Debug
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
platform: Win32
configuration: Debug
# This build causes error after 30 minutes, because the VS2017 image
# tries to launch just-in-time debugger on call to std::terminate, which
# is an expected part of the tests in this build.
# We can reenable it, if we handle disabling that test in CMake.
# - FLAVOR: VS 2017 Win32 Debug Examples
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# examples: 1
# platform: Win32
# configuration: Debug
- FLAVOR: VS 2017 Win32 Debug WMain
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
wmain: 1
additional_flags: "/D_UNICODE /DUNICODE"
platform: Win32
configuration: Debug
- FLAVOR: VS 2017 x64 Debug Latest Strict
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
additional_flags: "/permissive- /std:c++latest"
platform: x64
configuration: Debug
install: install:
- ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { python -m pip --disable-pip-version-check install codecov } - ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { python -m pip --disable-pip-version-check install codecov }
- ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { .\misc\installOpenCppCoverage.ps1 } - ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { .\misc\installOpenCppCoverage.ps1 }
# Win32 and x64 are CMake-compatible solution platform names.
# This allows us to pass %PLATFORM% to CMake -A.
platform:
- Win32
- x64
# build Configurations, i.e. Debug, Release, etc.
configuration:
- Debug
- Release
#Cmake will autodetect the compiler, but we set the arch #Cmake will autodetect the compiler, but we set the arch
before_build: before_build: