clone_depth: 1 environment: matrix: - TARGET: desktop COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 APPVEYOR_JOB_NAME: windows-msvc2017 PYTHON: 6 PYBIND: 2.3.0 - TARGET: desktop COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-msvc2019 # Python 3.7 was removed from 2019 and 2022 images sometimes in 2025 PYTHON: 8 PYBIND: 2.3.0 - TARGET: desktop COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 APPVEYOR_JOB_NAME: windows-msvc2022 PYTHON: 8 PYBIND: 2.9.0 # first supporting MSVC 2022 - TARGET: desktop COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-static-msvc2019 BUILD_STATIC: ON PYTHON: 8 PYBIND: 2.3.0 - TARGET: desktop COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 APPVEYOR_JOB_NAME: windows-static-msvc2022 BUILD_STATIC: ON PYTHON: 8 PYBIND: 2.9.0 # first supporting MSVC 2022 # clang-cl crashes with pybind11, "Illegal instruction" and # lld-link: warning: ignoring unknown argument '-flto' # LLVM ERROR: Associative COMDAT symbol '??0type_error@pybind11@@QEAA@PEBD@Z' does not exist. # TODO: retry once their changelog says something about clang-cl being fixed #- TARGET: desktop #COMPILER: msvc-clang #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 #APPVEYOR_JOB_NAME: windows-msvc2019-clang #PYTHON: 8 #PYBIND: 2.7.0 #- TARGET: desktop #COMPILER: msvc-clang #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 #APPVEYOR_JOB_NAME: windows-msvc2022-clang #PYTHON: 8 #PYBIND: 2.9.0 # first supporting MSVC 2022 - TARGET: desktop COMPILER: msvc # Same reasoning as in Corrade for /EHsc COMPILER_EXTRA: -DCMAKE_CXX_FLAGS="/permissive- /EHsc" -DCORRADE_MSVC_COMPATIBILITY=OFF APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-conforming-msvc2019 PYTHON: 8 PYBIND: 2.3.0 - TARGET: desktop COMPILER: msvc # Not playing with fire and using /EHsc on 2022 as well COMPILER_EXTRA: -DCMAKE_CXX_FLAGS="/permissive- /EHsc" -DCORRADE_MSVC_COMPATIBILITY=OFF APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 APPVEYOR_JOB_NAME: windows-conforming-msvc2022 PYTHON: 8 PYBIND: 2.9.0 # first supporting MSVC 2022 - TARGET: desktop-gles TARGET_GLES2: ON COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-gles2-msvc2019 PYTHON: 8 PYBIND: 2.3.0 - TARGET: desktop-gles TARGET_GLES2: ON COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 APPVEYOR_JOB_NAME: windows-gles2-msvc2022 PYTHON: 8 PYBIND: 2.9.0 # first supporting MSVC 2022 - TARGET: desktop-gles TARGET_GLES2: OFF COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 APPVEYOR_JOB_NAME: windows-gles3-msvc2019 PYTHON: 8 PYBIND: 2.3.0 - TARGET: desktop-gles TARGET_GLES2: OFF COMPILER: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 APPVEYOR_JOB_NAME: windows-gles3-msvc2022 PYTHON: 8 PYBIND: 2.9.0 # first supporting MSVC 2022 install: # Ninja. `cinst ninja` started 503ing in late November 2019 and wasn't really # reliable before either. So install by hand, as that's reliable always. - IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\ninja-win.zip appveyor DownloadFile https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip - 7z x ninja-win.zip -oC:/tools - set PATH=C:/tools;%PATH% # Codecov uploader - appveyor DownloadFile https://uploader.codecov.io/latest/windows/codecov.exe -FileName C:/tools/codecov.exe # pip is in Scripts - set PATH=C:/tools/ninja;C:/Python3%PYTHON%-x64;C:/Python3%PYTHON%-x64/Scripts;%PATH% - pip3 install coverage - IF NOT "%BUILD_STATIC%" == "ON" set BUILD_STATIC=OFF # The fugly \=/ magic is to replace backward slashes with forward so CMake # doesn't treat those as escape characters - IF "%BUILD_STATIC%" == "ON" set "STATIC_PLUGIN_PATH=-DMAGNUM_PLUGINS_DIR=%APPVEYOR_BUILD_FOLDER:\=/%/deps/bin/magnum" # pybind11. Built in the CI script. - IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\v%PYBIND%.zip appveyor DownloadFile https://github.com/pybind/pybind11/archive/v%PYBIND%.zip - 7z x v%PYBIND%.zip # SDL2 - IF "%TARGET%" == "desktop" IF "%COMPILER:~0,4%" == "msvc" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.9-VC.zip appveyor DownloadFile https://www.libsdl.org/release/SDL2-devel-2.0.9-VC.zip - IF "%TARGET%" == "desktop" IF "%COMPILER:~0,4%" == "msvc" 7z x SDL2-devel-2.0.9-VC.zip && ren SDL2-2.0.9 SDL # GLFW - IF "%TARGET%" == "desktop" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\glfw-3.2.1.bin.WIN64.zip appveyor DownloadFile https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.bin.WIN64.zip - IF "%TARGET%" == "desktop" 7z x glfw-3.2.1.bin.WIN64.zip && ren glfw-3.2.1.bin.WIN64 glfw && mkdir deps && mkdir deps\lib && mkdir deps\bin && mkdir deps\include && xcopy /e glfw\include\* deps\include\ - IF "%TARGET%" == "desktop" IF "%COMPILER:~0,4%" == "msvc" copy glfw\lib-vc2015\glfw3.dll deps\bin\ && copy glfw\lib-vc2015\glfw3dll.lib deps\lib\glfw3.lib # meshoptimizer for MSVC 2022, 2019 and clang-cl; MinGW. MSVC 2017 doesn't work # with the 2019 build unfortunately, and can't build it because of # https://github.com/actions/runner-images/issues/3294 - IF "%COMPILER:~0,4%" == "msvc" appveyor DownloadFile https://ci.magnum.graphics/meshoptimizer-0.21-windows-2019-debug.zip && 7z x meshoptimizer-0.21-windows-2019-debug.zip -o%APPVEYOR_BUILD_FOLDER%\deps - IF "%COMPILER%" == "mingw" appveyor DownloadFile https://ci.magnum.graphics/meshoptimizer-0.21-windows-mingw.zip && 7z x meshoptimizer-0.21-windows-mingw.zip -o%APPVEYOR_BUILD_FOLDER%\deps build_script: - IF "%TARGET%" == "desktop" IF "%COMPILER:~0,4%" == "msvc" call package\ci\appveyor-desktop.bat - IF "%TARGET%" == "desktop-gles" call package\ci\appveyor-desktop-gles.bat cache: - SDL2-devel-2.0.9-VC.zip - glfw-3.2.1.bin.WIN64.zip - v2.3.0.zip