diff --git a/package/ci/appveyor-desktop-mingw.bat b/package/ci/appveyor-desktop-mingw.bat new file mode 100644 index 000000000..e97ffe66a --- /dev/null +++ b/package/ci/appveyor-desktop-mingw.bat @@ -0,0 +1,44 @@ +rem Workaround for CMake not wanting sh.exe on PATH for MinGW. AARGH. +set PATH=%PATH:C:\Program Files\Git\usr\bin;=% +set PATH=C:\tools\mingw64\bin;%APPVEYOR_BUILD_FOLDER%/openal/bin/Win64;%APPVEYOR_BUILD_FOLDER%\deps\bin;%PATH% + +rem Build Corrade. Could not get Ninja to work, meh. +git clone --depth 1 git://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 ^ + -DWITH_INTERCONNECT=OFF ^ + -G "MinGW Makefiles" || exit /b +cmake --build . -- -j || exit /b +cmake --build . --target install -- -j || exit /b +cd .. && cd .. + +rem Build +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;%APPVEYOR_BUILD_FOLDER%/openal" ^ + -DWITH_AUDIO=ON ^ + -DWITH_SDL2APPLICATION=ON ^ + -DWITH_WINDOWLESSWGLAPPLICATION=ON ^ + -DWITH_WGLCONTEXT=ON ^ + -DWITH_MAGNUMFONT=ON ^ + -DWITH_MAGNUMFONTCONVERTER=ON ^ + -DWITH_OBJIMPORTER=ON ^ + -DWITH_TGAIMAGECONVERTER=ON ^ + -DWITH_TGAIMPORTER=ON ^ + -DWITH_WAVAUDIOIMPORTER=ON ^ + -DWITH_DISTANCEFIELDCONVERTER=ON ^ + -DWITH_FONTCONVERTER=ON ^ + -DWITH_MAGNUMINFO=ON ^ + -DBUILD_TESTS=ON ^ + -DBUILD_GL_TESTS=ON ^ + -G "MinGW Makefiles" || exit /b +cmake --build . || exit /b +cmake --build . --target install || exit /b + +rem Test +ctest -V -E GLTest || exit /b diff --git a/package/ci/appveyor-desktop.bat b/package/ci/appveyor-desktop.bat new file mode 100644 index 000000000..427cf6647 --- /dev/null +++ b/package/ci/appveyor-desktop.bat @@ -0,0 +1,43 @@ +call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" || exit /b +set PATH=%APPVEYOR_BUILD_FOLDER%/openal/bin/Win32;%APPVEYOR_BUILD_FOLDER%\deps\bin;%PATH% + +rem Build Corrade +git clone --depth 1 git://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 ^ + -DWITH_INTERCONNECT=OFF ^ + -G Ninja || exit /b +cmake --build . || exit /b +cmake --build . --target install || exit /b +cd .. && cd .. + +rem Build +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;%APPVEYOR_BUILD_FOLDER%/openal" ^ + -DWITH_AUDIO=ON ^ + -DWITH_SDL2APPLICATION=ON ^ + -DWITH_WINDOWLESSWGLAPPLICATION=ON ^ + -DWITH_WGLCONTEXT=ON ^ + -DWITH_MAGNUMFONT=ON ^ + -DWITH_MAGNUMFONTCONVERTER=ON ^ + -DWITH_OBJIMPORTER=ON ^ + -DWITH_TGAIMAGECONVERTER=ON ^ + -DWITH_TGAIMPORTER=ON ^ + -DWITH_WAVAUDIOIMPORTER=ON ^ + -DWITH_DISTANCEFIELDCONVERTER=ON ^ + -DWITH_FONTCONVERTER=ON ^ + -DWITH_MAGNUMINFO=ON ^ + -DBUILD_TESTS=ON ^ + -DBUILD_GL_TESTS=ON ^ + -G Ninja || exit /b +cmake --build . || exit /b +cmake --build . --target install || exit /b + +rem Test +ctest -V -E GLTest || exit /b diff --git a/package/ci/appveyor-rt.bat b/package/ci/appveyor-rt.bat new file mode 100644 index 000000000..d1c33ad71 --- /dev/null +++ b/package/ci/appveyor-rt.bat @@ -0,0 +1,76 @@ +call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" || exit /b +set PATH=%APPVEYOR_BUILD_FOLDER%\deps-native\bin;%PATH% + +rem Build ANGLE +git clone --depth 1 git://github.com/MSOpenTech/angle.git || exit /b +cd angle\winrt\10\src || exit /b +msbuild angle.sln /p:Configuration=Release || exit /b +cd ..\..\..\.. || exit /b + +rem Build SDL +appveyor DownloadFile https://www.libsdl.org/release/SDL2-2.0.4.zip || exit /b +7z x SDL2-2.0.4.zip || exit /b +ren SDL2-2.0.4 SDL || exit /b +cd SDL/VisualC-WinRT/UWP_VS2015 || exit/b +msbuild /p:Configuration=Release || exit /b +cd ..\..\.. + +git clone --depth 1 git://github.com/mosra/corrade.git || exit /b +cd corrade || exit /b + +rem Build native corrade-rc +mkdir build && cd build || exit /b +cmake .. ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps-native ^ + -DWITH_INTERCONNECT=OFF ^ + -DWITH_PLUGINMANAGER=OFF ^ + -DWITH_TESTSUITE=OFF ^ + -G Ninja || exit /b +cmake --build . --target install || exit /b +cd .. || exit /b + +rem Crosscompile Corrade +mkdir build-rt && cd build-rt || exit /b +cmake .. ^ + -DCMAKE_SYSTEM_NAME=WindowsStore ^ + -DCMAKE_SYSTEM_VERSION=10.0 ^ + -DCORRADE_RC_EXECUTABLE=%APPVEYOR_BUILD_FOLDER%/deps-native/bin/corrade-rc.exe ^ + -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ + -DWITH_INTERCONNECT=OFF ^ + -DBUILD_STATIC=ON ^ + -G "Visual Studio 14 2015" || exit /b +cmake --build . --config Release --target install -- /m /v:m || exit /b +cd .. || exit /b + +cd .. || exit /b + +rem Crosscompile +mkdir build-rt && cd build-rt || exit /b +cmake .. ^ + -DCMAKE_SYSTEM_NAME=WindowsStore ^ + -DCMAKE_SYSTEM_VERSION=10.0 ^ + -DCORRADE_RC_EXECUTABLE=%APPVEYOR_BUILD_FOLDER%/deps-native/bin/corrade-rc.exe ^ + -DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/deps ^ + -DEGL_LIBRARY=%APPVEYOR_BUILD_FOLDER%/angle/winrt/10/src/Release_Win32/lib/libEGL.lib ^ + -DEGL_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%/angle/include ^ + -DOPENGLES2_LIBRARY=%APPVEYOR_BUILD_FOLDER%/angle/winrt/10/src/Release_Win32/lib/libGLESv2.lib ^ + -DOPENGLES2_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%/angle/include ^ + -DOPENGLES3_LIBRARY=%APPVEYOR_BUILD_FOLDER%/angle/winrt/10/src/Release_Win32/lib/libGLESv2.lib ^ + -DOPENGLES3_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%/angle/include ^ + -DSDL2_LIBRARY=%APPVEYOR_BUILD_FOLDER%/SDL/VisualC-WinRT/UWP_VS2015/Release/SDL-UWP/SDL2.lib ^ + -DSDL2_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%/SDL/include ^ + -DWITH_AUDIO=OFF ^ + -DWITH_SDL2APPLICATION=ON ^ + -DWITH_MAGNUMFONT=ON ^ + -DWITH_MAGNUMFONTCONVERTER=ON ^ + -DWITH_OBJIMPORTER=ON ^ + -DWITH_TGAIMAGECONVERTER=ON ^ + -DWITH_TGAIMPORTER=ON ^ + -DWITH_WAVAUDIOIMPORTER=OFF ^ + -DTARGET_GLES2=%TARGET_GLES2% ^ + -DBUILD_TESTS=ON ^ + -DBUILD_STATIC=ON ^ + -DBUILD_PLUGINS_STATIC=ON ^ + -G "Visual Studio 14 2015" || exit /b +cmake --build . --config Release -- /m /v:m || exit /b diff --git a/package/ci/appveyor.yml b/package/ci/appveyor.yml index 02fa8c73b..9f2bb1f23 100644 --- a/package/ci/appveyor.yml +++ b/package/ci/appveyor.yml @@ -1,13 +1,20 @@ # kate: indent-width 2; -version: '{branch}-{build}' - -skip_tags: true -shallow_clone: true clone_depth: 1 os: Visual Studio 2015 +environment: + matrix: + - TARGET: desktop + COMPILER: msvc + - TARGET: desktop + COMPILER: mingw + - TARGET: rt + TARGET_GLES2: ON + - TARGET: rt + TARGET_GLES2: OFF + notifications: - provider: Webhook url: https://webhooks.gitter.im/e/415ae90928ba0dbd3df4 @@ -16,55 +23,28 @@ notifications: on_build_status_changed: true install: -- call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" -- set PATH=C:/Sys/bin;C:/tools/ninja;%APPVEYOR_BUILD_FOLDER%/openal/bin/Win32;%PATH% - -# Ninja - cinst ninja +- set PATH=C:/tools/ninja;%PATH% +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" cinst mingw /f >nul # OpenAL -- IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\openal-soft-1.17.2-bin.zip appveyor DownloadFile http://kcat.strangesoft.net/openal-binaries/openal-soft-1.17.2-bin.zip -- 7z x openal-soft-1.17.2-bin.zip -- ren openal-soft-1.17.2-bin openal -- ren openal\bin\Win32\soft_oal.dll OpenAL32.dll -- echo [General] > %APPDATA%/alsoft.ini -- echo drivers=null >> %APPDATA%/alsoft.ini +- IF NOT "%TARGET%" == "rt" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\openal-soft-1.17.2-bin.zip appveyor DownloadFile http://kcat.strangesoft.net/openal-binaries/openal-soft-1.17.2-bin.zip +- IF NOT "%TARGET%" == "rt" 7z x openal-soft-1.17.2-bin.zip && ren openal-soft-1.17.2-bin openal && echo [General] > %APPDATA%/alsoft.ini & echo drivers=null >> %APPDATA%/alsoft.ini +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" ren openal\bin\Win32\soft_oal.dll OpenAL32.dll +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" ren openal\bin\Win64\soft_oal.dll OpenAL32.dll # SDL2 -- IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.3-VC.zip appveyor DownloadFile http://www.libsdl.org/release/SDL2-devel-2.0.3-VC.zip -- 7z x SDL2-devel-2.0.3-VC.zip -- ren SDL2-2.0.3 SDL +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.4-VC.zip appveyor DownloadFile http://www.libsdl.org/release/SDL2-devel-2.0.4-VC.zip +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" 7z x SDL2-devel-2.0.4-VC.zip && ren SDL2-2.0.4 SDL +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.4-mingw.tar.gz appveyor DownloadFile http://libsdl.org/release/SDL2-devel-2.0.4-mingw.tar.gz +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" 7z x SDL2-devel-2.0.4-mingw.tar.gz & 7z x SDL2-devel-2.0.4-mingw.tar & ren SDL2-2.0.4 SDL -# Corrade -- git clone --depth 1 git://github.com/mosra/corrade.git -- cd corrade -- mkdir build -- cd build -- cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:/Sys -G Ninja -- cmake --build . -- cmake --build . --target install -- cd .. -- cd .. +build_script: +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" call package\ci\appveyor-desktop.bat +- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" call package\ci\appveyor-desktop-mingw.bat +- IF "%TARGET%" == "rt" call package\ci\appveyor-rt.bat cache: -- SDL2-devel-2.0.3-VC.zip +- SDL2-devel-2.0.4-VC.zip +- SDL2-devel-2.0.4-mingw.zip - openal-soft-1.17.2-bin.zip - -build_script: -- mkdir build -- cd build -- cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:/Sys -DCMAKE_PREFIX_PATH="%APPVEYOR_BUILD_FOLDER%/SDL;%APPVEYOR_BUILD_FOLDER%/openal" -DWITH_AUDIO=ON -DWITH_SDL2APPLICATION=ON -DWITH_WINDOWLESSWGLAPPLICATION=ON -DWITH_WGLCONTEXT=ON -DWITH_MAGNUMFONT=ON -DWITH_MAGNUMFONTCONVERTER=ON -DWITH_OBJIMPORTER=ON -DWITH_TGAIMAGECONVERTER=ON -DWITH_TGAIMPORTER=ON -DWITH_WAVAUDIOIMPORTER=ON -DWITH_DISTANCEFIELDCONVERTER=ON -DWITH_FONTCONVERTER=ON -DWITH_MAGNUMINFO=ON -DBUILD_TESTS=ON -DBUILD_GL_TESTS=ON -G Ninja -- cmake --build . -- cmake --build . --target install -- cmake . -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/Deploy -DBUILD_TESTS=OFF -- cmake --build . --target install -- cd ../Deploy -- 7z a ../magnum.zip * - -test_script: -- cd %APPVEYOR_BUILD_FOLDER%/build -- SET fail=0 -- ctest --output-on-failure -E GLTest || SET fail=1 & ver > nul -- cd %APPVEYOR_BUILD_FOLDER% -- appveyor PushArtifact magnum.zip -- exit %fail%