version: b{build}-{branch} environment: matrix: - job: msvc-vs2013-x86 appveyor_build_worker_image: Visual Studio 2013 cmake_options: -G "Visual Studio 12 2013" - job: msvc-vs2013-x64 appveyor_build_worker_image: Visual Studio 2013 cmake_options: -G "Visual Studio 12 2013 Win64" - job: msvc-vs2015-x86 appveyor_build_worker_image: Visual Studio 2015 cmake_options: -G "Visual Studio 14 2015" - job: msvc-vs2015-x64 appveyor_build_worker_image: Visual Studio 2015 cmake_options: -G "Visual Studio 14 2015 Win64" - job: msvc-vs2017-x86 appveyor_build_worker_image: Visual Studio 2017 cmake_options: -G "Visual Studio 15 2017" - job: msvc-vs2017-x64 appveyor_build_worker_image: Visual Studio 2017 cmake_options: -G "Visual Studio 15 2017 Win64" - job: gcc-mingw-x86 appveyor_build_worker_image: Visual Studio 2015 mingw_path: c:\msys64\mingw32\bin cmake_options: > -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 - job: gcc-mingw-x64 appveyor_build_worker_image: Visual Studio 2015 mingw_path: c:\msys64\mingw64\bin cmake_options: > -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64 - job: clang-mingw-x86 appveyor_build_worker_image: Visual Studio 2015 mingw_path: c:\msys64\mingw32\bin vs_path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC setup_script: vcvarsall.bat x86 cmake_options: > -G "MinGW Makefiles" -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 - job: clang-mingw-x64 appveyor_build_worker_image: Visual Studio 2015 mingw_path: c:\msys64\mingw64\bin vs_path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC setup_script: vcvarsall.bat amd64 cmake_options: > -G "MinGW Makefiles" -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64 - job: msvc-vs2013-x86-lsp-ifs appveyor_build_worker_image: Visual Studio 2013 cmake_options: -G "Visual Studio 12 2013" lsp_name: Proxifier lsp_installer: http://www.proxifier.com/download/ProxifierSetup.exe - job: msvc-vs2017-x64-lsp-ifs appveyor_build_worker_image: Visual Studio 2017 cmake_options: -G "Visual Studio 15 2017 Win64" lsp_name: Proxifier lsp_installer: http://www.proxifier.com/download/ProxifierSetup.exe - job: msvc-vs2013-x86-lsp-nonifs appveyor_build_worker_image: Visual Studio 2013 cmake_options: -G "Visual Studio 12 2013" lsp_name: PCTools lsp_installer: http://download.pctools.com/mirror/updates/9.0.0.2308-SDavfree-lite_en.exe - job: msvc-vs2017-x64-lsp-nonifs appveyor_build_worker_image: Visual Studio 2017 cmake_options: -G "Visual Studio 15 2017 Win64" lsp_name: PCTools lsp_installer: http://download.pctools.com/mirror/updates/9.0.0.2308-SDavfree-lite_en.exe configuration: Debug clone_folder: c:\wepoll shallow_clone: true clone_depth: 1 cache: - c:\lspinst init: - cmd: set install: - ps: Install-Product node 10 - ps: >- if ($env:lsp_name) { if (-Not (Test-Path -Path "c:\lspinst\${env:lsp_name}.exe")) { "Downloading ${env:lsp_name} LSP installer..." $null = & New-Item -Path "c:\lspinst" -ItemType directory -Force Invoke-WebRequest -Uri ${env:lsp_installer} ` -OutFile "c:\lspinst\${env:lsp_name}.exe" } "Installing ${env:lsp_name} LSP..." Start-Process -FilePath "c:\lspinst\${env:lsp_name}.exe" ` -ArgumentList /silent,/norestart ` -Wait "Waiting for ${env:lsp_name} LSP to appear in the Winsock Catalog..." do { Start-Sleep -Seconds 1 $catalog = & netsh winsock show catalog } until ($catalog -Like "*Layered Chain Entry*") $catalog | Select-String -Pattern "Layered Chain Entry" -Context 0,14 } - cmd: set path=%path:C:\Program Files\Git\usr\bin;=% - cmd: set path=%path%;%mingw_path% - cmd: set path=%path%;%vs_path% - cmd: call %setup_script% before_build: - cmd: cmake . %cmake_options% build_script: - cmd: cmake --build . --config "%configuration%" --target wepoll.dll - cmd: cmake --build . --config "%configuration%" --target wepoll-combined.dll test_script: - cmd: cmake --build . --config "%configuration%" --target test-all after_test: - ps: >- if ($env:lsp_name) { # Prevent LSPs from interfering with uploading the build cache. netsh winsock reset }