| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- version: 1.0.{build}
 
- clone_depth: 50
 
- # Appveyor images are named after the Visual Studio version they contain.
 
- # But we compile using MinGW, not Visual Studio.
 
- # We use these images because they have different Windows versions.
 
- image:
 
-   # Windows Server 2012 R2
 
-   - Visual Studio 2015
 
-   # Windows Server 2016
 
-   - Visual Studio 2017
 
- environment:
 
-   compiler: mingw
 
-   matrix:
 
-   - target: i686-w64-mingw32
 
-     compiler_path: mingw32
 
-     mingw_prefix: mingw-w64-i686
 
-     hardening:
 
-   - target: x86_64-w64-mingw32
 
-     compiler_path: mingw64
 
-     mingw_prefix: mingw-w64-x86_64
 
-     # hardening doesn't work with mingw-w64-x86_64-gcc, because it's gcc 8
 
-     hardening: --disable-gcc-hardening
 
- install:
 
- - ps: >-
 
-     Function Execute-Command ($commandPath)
 
-     {
 
-         & $commandPath $args 2>&1
 
-         if ( $LastExitCode -ne 0 ) {
 
-             $host.SetShouldExit( $LastExitCode )
 
-         }
 
-     }
 
-     Function Execute-Bash ()
 
-     {
 
-         Execute-Command 'c:\msys64\usr\bin\bash' '-e' '-c' $args
 
-     }
 
-     <# mingw packages start with ${env:mingw_prefix}
 
-      # unprefixed packages are from MSYS2, which is like Cygwin. Avoid them.
 
-      #
 
-      # Use pacman --debug to show package downloads and install locations
 
-      #>
 
-     Execute-Command "C:\msys64\usr\bin\pacman" -Sy --verbose --needed --noconfirm ${env:mingw_prefix}-libevent ${env:mingw_prefix}-pkg-config ${env:mingw_prefix}-xz ${env:mingw_prefix}-zstd ;
 
- build_script:
 
- - ps: >-
 
-     if ($env:compiler -eq "mingw") {
 
-             <# use the MSYS2 compiler and user binaries to build and install #>
 
-             $oldpath = ${env:Path} -split ';'
 
-             $buildpath = @("C:\msys64\${env:compiler_path}\bin", "C:\msys64\usr\bin") + $oldpath
 
-             $env:Path = @($buildpath) -join ';'
 
-             $env:build = @("${env:APPVEYOR_BUILD_FOLDER}", $env:target) -join '\'
 
-             Set-Location "${env:APPVEYOR_BUILD_FOLDER}"
 
-             Execute-Bash 'autoreconf -i'
 
-             mkdir "${env:build}"
 
-             Set-Location "${env:build}"
 
-             Execute-Bash "which ${env:target}-gcc"
 
-             Execute-Bash "${env:target}-gcc --version"
 
-             <# compile for mingw
 
-              # mingw zstd doesn't come with a pkg-config file, so we manually
 
-              # configure its flags. liblzma just works.
 
-              #>
 
-             Execute-Bash "ZSTD_CFLAGS='-L/${env:compiler_path}/include' ZSTD_LIBS='-L/${env:compiler_path}/lib -lzstd' ../configure --prefix=/${env:compiler_path} --build=${env:target} --host=${env:target} --with-openssl-dir=/${env:compiler_path} --disable-asciidoc --enable-fatal-warnings ${env:hardening}"
 
-             Execute-Bash "V=1 make -j2"
 
-             Execute-Bash "V=1 make -j2 install"
 
-      }
 
- test_script:
 
- - ps: >-
 
-     if ($env:compiler -eq "mingw") {
 
-             <# use the MSYS2 compiler binaries to make check #>
 
-             $oldpath = ${env:Path} -split ';'
 
-             $buildpath = @("C:\msys64\${env:compiler_path}\bin") + $oldpath
 
-             $env:Path = $buildpath -join ';'
 
-             Set-Location "${env:build}"
 
-             Copy-Item "C:/msys64/${env:compiler_path}/bin/libssp-0.dll" -Destination "${env:build}/src/test"
 
-             Copy-Item "C:/msys64/${env:compiler_path}/bin/zlib1.dll" -Destination "${env:build}/src/test"
 
-             Execute-Bash "VERBOSE=1 make -j2 check"
 
-     }
 
- on_finish:
 
- - ps: >-
 
-     if ($env:compiler -eq "mingw") {
 
-             <# use the MSYS2 user binaries to archive failures #>
 
-             $oldpath = ${env:Path} -split ';'
 
-             $buildpath = @("C:\msys64\usr\bin") + $oldpath
 
-             $env:Path = @($buildpath) -join ';'
 
-             Set-Location "${env:build}"
 
-             <# store logs as appveyor artifacts: see the artifacts tab #>
 
-             Execute-Bash "7z a logs.zip config.log || true"
 
-             Execute-Bash "7z a logs.zip test-suite.log || true"
 
-             Execute-Bash "appveyor PushArtifact logs.zip || true"
 
-             Execute-Bash "tail -1000 config.log || true"
 
-             Execute-Bash "cat test-suite.log || true"
 
-     }
 
- # notify the IRC channel of any failures
 
- on_failure:
 
- - cmd: C:\Python27\python.exe %APPVEYOR_BUILD_FOLDER%\scripts\test\appveyor-irc-notify.py irc.oftc.net:6697 tor-ci failure
 
 
  |