1image:
2  - Visual Studio 2017
3
4platform:
5    - x64
6    - x86
7
8environment:
9    fast_finish: true
10    matrix:
11        - VSVER: 15
12
13configuration:
14    - shared
15    - plain
16    - minimal
17
18before_build:
19    - ps: >-
20        Install-Module VSSetup -Scope CurrentUser
21    - ps: >-
22        Get-VSSetupInstance -All
23    - ps: >-
24        gci env:* | sort-object name
25    - ps: >-
26        If ($env:Platform -Match "x86") {
27            $env:VCVARS_PLATFORM="x86"
28            $env:TARGET="VC-WIN32 no-asm --strict-warnings"
29        } Else {
30            $env:VCVARS_PLATFORM="amd64"
31            $env:TARGET="VC-WIN64A-masm"
32        }
33    - ps: >-
34        If ($env:Configuration -Match "shared") {
35            $env:SHARED="no-makedepend"
36        } ElseIf ($env:Configuration -Match "minimal") {
37            $env:SHARED="no-shared no-dso no-makedepend no-aria no-async no-autoload-config no-blake2 no-bf no-camellia no-cast no-chacha no-cmac no-cms no-comp no-ct no-des no-dgram no-dh no-dsa no-dtls no-ec2m no-engine no-filenames no-gost no-idea no-mdc2 no-md4 no-multiblock no-nextprotoneg no-ocsp no-ocb no-poly1305 no-psk no-rc2 no-rc4 no-rmd160 no-seed no-siphash no-sm2 no-sm3 no-sm4 no-srp no-srtp no-ssl3 no-ssl3-method no-ts no-ui-console no-whirlpool no-asm -DOPENSSL_SMALL_FOOTPRINT"
38        } Else {
39            $env:SHARED="no-shared no-makedepend"
40        }
41    - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
42    - mkdir _build
43    - cd _build
44    - perl ..\Configure %TARGET% %SHARED%
45    - perl configdata.pm --dump
46    - cd ..
47    - ps: >-
48        if (-not $env:APPVEYOR_PULL_REQUEST_NUMBER`
49            -or (&git log -1 $env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT |
50                 Select-String "\[extended tests\]") ) {
51            $env:EXTENDED_TESTS="yes"
52        }
53
54build_script:
55    - cd _build
56    - ps: >-
57        If ($env:Configuration -Match "shared" -or $env:EXTENDED_TESTS) {
58            cmd /c "nmake build_all_generated 2>&1"
59            cmd /c "nmake PERL=no-perl 2>&1"
60        }
61    - cd ..
62
63test_script:
64    - cd _build
65    - ps: >-
66        If ($env:Configuration -Match "shared" -or $env:EXTENDED_TESTS) {
67            if ($env:EXTENDED_TESTS) {
68                cmd /c "nmake test V=1 2>&1"
69            } Else {
70                cmd /c "nmake test V=1 TESTS=-test_fuzz 2>&1"
71            }
72        }
73    - ps: >-
74        if ($env:EXTENDED_TESTS) {
75            mkdir ..\_install
76            cmd /c "nmake install DESTDIR=..\_install 2>&1"
77        }
78    - cd ..
79