diff --git a/appveyor.yml b/appveyor.yml index fb6ccd13..7c01515f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,13 +1,23 @@ environment: + global: + MSYS2_BASEVER: 20150512 matrix: + - TARGET: x86_64-pc-windows-gnu + MSYS2_ARCH: x86_64 + MSYS2_BITS: 64 + MSYSTEM: MINGW64 + - TARGET: i686-pc-windows-gnu + MSYS2_ARCH: i686 + MSYS2_BITS: 32 + MSYSTEM: MINGW32 - TARGET: x86_64-pc-windows-msvc - TARGET: i686-pc-windows-msvc - - TARGET: i686-pc-windows-gnu install: + - ps: ci\msys2.ps1 - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-nightly-${env:TARGET}.exe" - rust-nightly-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust" - SET PATH=%PATH%;C:\Program Files (x86)\Rust\bin - - SET PATH=%PATH%;C:\MinGW\bin + - if defined MSYS2_BITS set PATH=%PATH%;%CD%\msys2\mingw%MSYS2_BITS%\bin - rustc -V - cargo -V diff --git a/ci/msys2.ps1 b/ci/msys2.ps1 new file mode 100644 index 00000000..f57cc6b4 --- /dev/null +++ b/ci/msys2.ps1 @@ -0,0 +1,20 @@ +If (!${env:MSYS2_ARCH}) { + Exit 0 +} + +Start-FileDownload ` + ("http://kent.dl.sourceforge.net/project/msys2/Base/" + ` + $env:MSYS2_ARCH + "/msys2-base-" + $env:MSYS2_ARCH + "-" + ` + $env:MSYS2_BASEVER + ".tar.xz") ` + -FileName "msys2.tar.xz" + +7z x msys2.tar.xz +7z x msys2.tar > $nul +Move-Item ("msys" + $env:MSYS2_BITS) msys2 +.\msys2\usr\bin\bash.exe -lc "" +.\msys2\usr\bin\bash.exe -lc ` + ("for i in {1..3}; do " + ` + "pacman --noconfirm -Suy mingw-w64-"+ $env:MSYS2_ARCH + "-gcc " + ` + "&& break || sleep 15; " + ` + "done") +.\msys2\autorebase.bat