You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
7.2 KiB
161 lines
7.2 KiB
if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2022" call "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 || exit /b |
|
if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2019" call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 || exit /b |
|
if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 || exit /b |
|
rem SDL2 has the DLL in lib/x64, and in the static build it's imported so the |
|
rem DLL has to be found. |
|
set PATH=%APPVEYOR_BUILD_FOLDER%\deps\bin;%APPVEYOR_BUILD_FOLDER%\SDL\lib\x64;%PATH% |
|
|
|
rem need to explicitly specify a 64-bit target, otherwise CMake+Ninja can't |
|
rem figure that out -- https://gitlab.kitware.com/cmake/cmake/issues/16259 |
|
rem for TestSuite we need to enable exceptions explicitly with /EH as these are |
|
rem currently disabled -- https://github.com/catchorg/Catch2/issues/1113 |
|
if "%COMPILER%" == "msvc-clang" if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2022" set COMPILER_EXTRA=-DCMAKE_CXX_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/Llvm/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/Llvm/bin/lld-link.exe" -DCMAKE_CXX_FLAGS="-m64 /EHsc" |
|
if "%COMPILER%" == "msvc-clang" if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2019" set COMPILER_EXTRA=-DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/bin/lld-link.exe" -DCMAKE_CXX_FLAGS="-m64 /EHsc" |
|
|
|
set EXCEPT_MSVC2017=ON |
|
IF "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" set EXCEPT_MSVC2017=OFF |
|
|
|
rem Build pybind11. Downloaded in the appveyor.yml script. Forcing |
|
rem -DCMAKE_POLICY_VERSION_MINIMUM=3.5 because it's bumped from 3.4 to 3.5 only |
|
rem in version 2.11, which got released in 2023, years after the MSVC versions |
|
rem we test for. |
|
cd pybind11-%PYBIND% || exit /b |
|
mkdir -p build && cd build || exit /b |
|
cmake .. ^ |
|
-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ |
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 ^ |
|
-DPYBIND11_PYTHON_VERSION=3.%PYTHON% ^ |
|
-DPYBIND11_TEST=OFF ^ |
|
-G Ninja || exit /b |
|
ninja install || exit /b |
|
cd .. && cd .. |
|
|
|
rem Build Corrade |
|
git clone --depth 1 https://github.com/mosra/corrade.git || exit /b |
|
cd corrade || exit /b |
|
mkdir build && cd build || exit /b |
|
cmake .. ^ |
|
-DCMAKE_BUILD_TYPE=Release ^ |
|
-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ |
|
-DCORRADE_BUILD_STATIC=%BUILD_STATIC% ^ |
|
-DCORRADE_WITH_INTERCONNECT=OFF ^ |
|
-DCORRADE_WITH_PLUGINMANAGER=ON ^ |
|
-DCORRADE_WITH_TESTSUITE=ON ^ |
|
-DCORRADE_UTILITY_USE_ANSI_COLORS=ON ^ |
|
%COMPILER_EXTRA% -G Ninja || exit /b |
|
cmake --build . || exit /b |
|
cmake --build . --target install || exit /b |
|
cd .. && cd .. |
|
|
|
rem Build Magnum |
|
git clone --depth 1 https://github.com/mosra/magnum.git || exit /b |
|
cd magnum || exit /b |
|
mkdir build && cd build || exit /b |
|
cmake .. ^ |
|
-DCMAKE_BUILD_TYPE=Release ^ |
|
-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ |
|
-DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/SDL ^ |
|
-DMAGNUM_BUILD_STATIC=%BUILD_STATIC% %STATIC_PLUGIN_PATH% ^ |
|
-DMAGNUM_WITH_AUDIO=OFF ^ |
|
-DMAGNUM_WITH_DEBUGTOOLS=OFF ^ |
|
-DMAGNUM_WITH_GL=ON ^ |
|
-DMAGNUM_WITH_MATERIALTOOLS=ON ^ |
|
-DMAGNUM_WITH_MESHTOOLS=ON ^ |
|
-DMAGNUM_WITH_PRIMITIVES=ON ^ |
|
-DMAGNUM_WITH_SCENEGRAPH=ON ^ |
|
-DMAGNUM_WITH_SCENETOOLS=ON ^ |
|
-DMAGNUM_WITH_SHADERS=ON ^ |
|
-DMAGNUM_WITH_SHADERTOOLS=OFF ^ |
|
-DMAGNUM_WITH_TEXT=ON ^ |
|
-DMAGNUM_WITH_TEXTURETOOLS=ON ^ |
|
-DMAGNUM_WITH_TRADE=ON ^ |
|
-DMAGNUM_WITH_VK=OFF ^ |
|
-DMAGNUM_WITH_SDL2APPLICATION=ON ^ |
|
-DMAGNUM_WITH_GLFWAPPLICATION=ON ^ |
|
-DMAGNUM_WITH_WINDOWLESSWGLAPPLICATION=ON ^ |
|
-DMAGNUM_WITH_ANYIMAGEIMPORTER=ON ^ |
|
-DMAGNUM_WITH_ANYSCENECONVERTER=ON ^ |
|
-DMAGNUM_WITH_ANYSCENEIMPORTER=ON ^ |
|
-DMAGNUM_WITH_TGAIMPORTER=ON ^ |
|
%COMPILER_EXTRA% -G Ninja || exit /b |
|
cmake --build . || exit /b |
|
cmake --build . --target install || exit /b |
|
cd .. && cd .. |
|
|
|
rem Build Magnum Plugins |
|
git clone --depth 1 https://github.com/mosra/magnum-plugins.git || exit /b |
|
cd magnum-plugins || exit /b |
|
mkdir build && cd build || exit /b |
|
cmake .. ^ |
|
-DCMAKE_BUILD_TYPE=Release ^ |
|
-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ |
|
-DMAGNUM_BUILD_STATIC=%BUILD_STATIC% ^ |
|
-DMAGNUM_WITH_BCDECIMAGECONVERTER=ON ^ |
|
-DMAGNUM_WITH_DDSIMPORTER=ON ^ |
|
-DMAGNUM_WITH_ETCDECIMAGECONVERTER=ON ^ |
|
-DMAGNUM_WITH_GLTFIMPORTER=ON ^ |
|
-DMAGNUM_WITH_GLTFSCENECONVERTER=ON ^ |
|
-DMAGNUM_WITH_KTXIMAGECONVERTER=ON ^ |
|
-DMAGNUM_WITH_MESHOPTIMIZERSCENECONVERTER=%EXCEPT_MSVC2017% ^ |
|
-DMAGNUM_WITH_PRIMITIVEIMPORTER=ON ^ |
|
-DMAGNUM_WITH_STANFORDSCENECONVERTER=ON ^ |
|
-DMAGNUM_WITH_STBIMAGECONVERTER=ON ^ |
|
-DMAGNUM_WITH_STBIMAGEIMPORTER=ON ^ |
|
-DMAGNUM_WITH_STBRESIZEIMAGECONVERTER=ON ^ |
|
-DMAGNUM_WITH_STBTRUETYPEFONT=ON ^ |
|
%COMPILER_EXTRA% -G Ninja || exit /b |
|
cmake --build . || exit /b |
|
cmake --build . --target install || exit /b |
|
cd .. && cd .. |
|
|
|
rem Build. Again forcing -DCMAKE_POLICY_VERSION_MINIMUM=3.5 because the |
|
rem pybind11 CMake config files also require just 3.4 now. |
|
mkdir build && cd build || exit /b |
|
cmake .. ^ |
|
-DCMAKE_BUILD_TYPE=Release ^ |
|
-DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ |
|
-DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/SDL ^ |
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 ^ |
|
-DPYBIND11_PYTHON_VERSION=3.%PYTHON% ^ |
|
-DMAGNUM_WITH_PYTHON=ON ^ |
|
-DMAGNUM_BUILD_TESTS=ON ^ |
|
%COMPILER_EXTRA% %BINDINGS_EXTRA% -G Ninja || exit /b |
|
cmake --build . || exit /b |
|
cmake --build . --target install || exit /b |
|
|
|
rem Test |
|
set CORRADE_TEST_COLOR=ON |
|
rem On Windows, if an assertion or other issue happens, A DIALOG WINDOWS POPS |
|
rem UP FROM THE CONSOLE. And then, for fucks sake, IT WAITS ENDLESSLY FOR YOU |
|
rem TO CLOSE IT!! Such behavior is utterly stupid in a non-interactive setting |
|
rem such as on this very CI, so I'm setting a timeout to 60 seconds to avoid |
|
rem the CI job being stuck for an hour if an assertion happens. CTest's default rem timeouts is somehow 10M seconds, which is as useful as nothing at all. |
|
ctest -V -E GLTest --timeout 60 || exit /b |
|
|
|
rem Verify the setuptools install |
|
cd src/python || exit /b |
|
python setup.py install --root="%APPVEYOR_BUILD_FOLDER%/install" || exit /b |
|
|
|
rem Run python tests & gather coverage |
|
cd ../../../src/python/corrade || exit /b |
|
coverage run -m unittest -v || exit /b |
|
cp .coverage ../.coverage.corrade || exit /b |
|
|
|
cd ../magnum || exit /b |
|
set MAGNUM_SKIP_GL_TESTS=ON |
|
coverage run -m unittest -v || exit /b |
|
cp .coverage ../.coverage.magnum || exit /b |
|
|
|
rem Test docstring validity |
|
cd ../../../doc/python || exit /b |
|
set PYTHONPATH="%APPVEYOR_BUILD_FOLDER%/build/src/python" |
|
rem We (deliberately) don't have numpy installed, so this would fail |
|
rem TODO: any idea how to fix this? doctest has SKIPs but not conditional ones |
|
rem python -m doctest -v *.rst || exit /b |
|
|
|
rem Upload coverage |
|
cd ../../src/python || exit /b |
|
coverage combine || exit /b |
|
rem TODO: Currently disabled because I can't seem to convince it to relocate |
|
rem the paths via codecov.yml: https://github.com/mosra/magnum-bindings/pull/3 |
|
rem codecov -X gcov || exit /b
|
|
|