Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/appveyor.yml
blob: a8f77df09a4ad9fdbcaeb8bf35db531351eb6795 (plain)
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
version: "{build}-{branch}"

# 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:
  except:
    - /dev-travis.+/


# We need a more up to date pip because Python 2.7 is EOL soon
init:
  - set PATH=C:\Python35;C:\Python35\Scripts;%PATH%


install:
  - ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { pip --disable-pip-version-check install codecov }
  # This removes our changes to PATH. Keep this step last!
  - ps: if (($env:CONFIGURATION) -eq "Debug" -And ($env:coverage) -eq "1" ) { .\tools\misc\installOpenCppCoverage.ps1 }


before_build:
  # We need to modify PATH again, because it was reset since the "init" step
  - set PATH=C:\Python35;C:\Python35\Scripts;%PATH%
  - set CXXFLAGS=%additional_flags%
  # If we are building examples/extra-tests, we need to regenerate the amalgamated files
  - cmd: if "%examples%"=="1" ( python .\tools\scripts\generateAmalgamatedFiles.py )
  # Indirection because appveyor doesn't handle multiline batch scripts properly
  # https://stackoverflow.com/questions/37627248/how-to-split-a-command-over-multiple-lines-in-appveyor-yml/37647169#37647169
  # https://help.appveyor.com/discussions/questions/3888-multi-line-cmd-or-powershell-warning-ignore
  - cmd: .\tools\misc\appveyorBuildConfigurationScript.bat


# build with MSBuild
build:
  project: Build\Catch2.sln             # path to Visual Studio solution or project
  parallel: true                        # enable MSBuild parallel builds
  verbosity: normal                     # MSBuild verbosity level {quiet|minimal|normal|detailed}

test_script:
  - set CTEST_OUTPUT_ON_FAILURE=1
  - cmd: .\tools\misc\appveyorTestRunScript.bat


# 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:
  matrix:
    - FLAVOR: VS 2019 x64 Debug Surrogates Configure Tests
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      surrogates: 1
      configure_tests: 1
      platform: x64
      configuration: Debug
    
    - FLAVOR: VS 2019 x64 Release
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      platform: x64
      configuration: Release

    - FLAVOR: VS 2019 x64 Debug Coverage Examples
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      examples: 1
      coverage: 1
      platform: x64
      configuration: Debug

    - FLAVOR: VS 2019 x64 Debug WMain
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      wmain: 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

    - FLAVOR: VS 2019 x64 Debug Latest Strict
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      additional_flags: "/permissive- /std:c++latest"
      platform: x64
      configuration: Debug

    - FLAVOR: VS 2017 x64 Debug
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      platform: x64
      configuration: Debug
    
    - FLAVOR: VS 2017 x64 Release
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      platform: x64
      configuration: Release

    - FLAVOR: VS 2017 x64 Release Coverage
      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

    - 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