From 1ae1f3d41911d04faf9a4960a1fb27e6feeb028d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 7 Oct 2016 15:38:00 +0200 Subject: [PATCH] package/ci: add desktop GLES builds on Linux and Windows. --- package/ci/appveyor-desktop-gles.bat | 47 ++++++++++++++++++++++++++++ package/ci/appveyor.yml | 6 ++++ package/ci/travis-desktop-gles.sh | 42 +++++++++++++++++++++++++ package/ci/travis.yml | 25 +++++++++++---- 4 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 package/ci/appveyor-desktop-gles.bat create mode 100755 package/ci/travis-desktop-gles.sh diff --git a/package/ci/appveyor-desktop-gles.bat b/package/ci/appveyor-desktop-gles.bat new file mode 100644 index 000000000..b26c664cf --- /dev/null +++ b/package/ci/appveyor-desktop-gles.bat @@ -0,0 +1,47 @@ +call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" x64 || exit /b +set PATH=%APPVEYOR_BUILD_FOLDER%/openal/bin/Win64;%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%/openal" ^ + -DTARGET_GLES=ON ^ + -DTARGET_GLES2=%TARGET_GLES2% ^ + -DTARGET_DESKTOP_GLES=ON ^ + -DWITH_AUDIO=ON ^ + -DWITH_SDL2APPLICATION=OFF ^ + -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=OFF ^ + -DWITH_FONTCONVERTER=OFF ^ + -DWITH_MAGNUMINFO=ON ^ + -DWITH_AL_INFO=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.yml b/package/ci/appveyor.yml index fe32a6125..674932a2a 100644 --- a/package/ci/appveyor.yml +++ b/package/ci/appveyor.yml @@ -10,6 +10,10 @@ environment: COMPILER: msvc - TARGET: desktop COMPILER: mingw + - TARGET: desktop-gles + TARGET_GLES2: ON + - TARGET: desktop-gles + TARGET_GLES2: OFF - TARGET: rt TARGET_GLES2: ON - TARGET: rt @@ -31,6 +35,7 @@ install: - 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" ren openal\bin\Win64\soft_oal.dll OpenAL32.dll +- IF "%TARGET%" == "desktop-gles" ren openal\bin\Win64\soft_oal.dll OpenAL32.dll # SDL2 - 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 @@ -41,6 +46,7 @@ install: 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%" == "desktop-gles" call package\ci\appveyor-desktop-gles.bat - IF "%TARGET%" == "rt" call package\ci\appveyor-rt.bat cache: diff --git a/package/ci/travis-desktop-gles.sh b/package/ci/travis-desktop-gles.sh new file mode 100755 index 000000000..45b4e95fa --- /dev/null +++ b/package/ci/travis-desktop-gles.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -ev + +# Corrade +git clone --depth 1 git://github.com/mosra/corrade.git +cd corrade +mkdir build && cd build +cmake .. \ + -DCMAKE_INSTALL_PREFIX=$HOME/deps \ + -DCMAKE_INSTALL_RPATH=$HOME/deps/lib \ + -DCMAKE_BUILD_TYPE=Debug \ + -DWITH_INTERCONNECT=OFF +make -j install +cd ../.. + +mkdir build && cd build +cmake .. \ + -DCMAKE_CXX_FLAGS=$COVERAGE \ + -DCMAKE_PREFIX_PATH="$HOME/deps" \ + -DCMAKE_BUILD_TYPE=Debug \ + -DTARGET_GLES=ON \ + -DTARGET_GLES2=$TARGET_GLES2 \ + -DTARGET_DESKTOP_GLES=ON \ + -DWITH_AUDIO=ON \ + -DWITH_GLFWAPPLICATION=OFF \ + -DWITH_SDL2APPLICATION=OFF \ + -DWITH_WINDOWLESS${PLATFORM_GL_API}APPLICATION=ON \ + -DWITH_${PLATFORM_GL_API}CONTEXT=ON \ + -DWITH_MAGNUMFONT=ON \ + -DWITH_MAGNUMFONTCONVERTER=ON \ + -DWITH_OBJIMPORTER=ON \ + -DWITH_TGAIMAGECONVERTER=ON \ + -DWITH_TGAIMPORTER=ON \ + -DWITH_WAVAUDIOIMPORTER=ON \ + -DWITH_DISTANCEFIELDCONVERTER=OFF \ + -DWITH_FONTCONVERTER=OFF \ + -DWITH_MAGNUMINFO=ON \ + -DWITH_AL_INFO=ON \ + -DBUILD_TESTS=ON \ + -DBUILD_GL_TESTS=ON +make -j${JOBS_LIMIT} +CORRADE_TEST_COLOR=ON ctest -V -E GLTest diff --git a/package/ci/travis.yml b/package/ci/travis.yml index 3086360e6..d378d7390 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -10,6 +10,18 @@ matrix: - TARGET=desktop # Otherwise the job gets killed (probably because using too much memory) - JOBS_LIMIT=4 + - os: linux + compiler: gcc + env: + - TARGET=desktop-gles + - TARGET_GLES2=ON + - JOBS_LIMIT=4 + - os: linux + compiler: gcc + env: + - TARGET=desktop-gles + - TARGET_GLES2=OFF + - JOBS_LIMIT=4 - os: osx compiler: clang env: TARGET=desktop @@ -57,7 +69,7 @@ cache: - $HOME/sdl2 install: -- if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user cpp-coveralls && export COVERAGE="--coverage"; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then pip install --user cpp-coveralls && export COVERAGE="--coverage"; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX=g++-4.7; fi @@ -65,19 +77,20 @@ install: - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then export PLATFORM_GL_API=CGL; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then gem install xcpretty; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then brew install emscripten && export LLVM=/usr/local/opt/emscripten/libexec/llvm/bin && emcc; fi -- if [ "$TARGET" == "desktop" ]; then printf "[General]\ndrivers=null" > ~/.alsoftrc; fi +- if [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-gles" ]; then printf "[General]\ndrivers=null" > ~/.alsoftrc; fi # SDL (cached) - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then brew install sdl2; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then curl -O https://www.libsdl.org/release/SDL2-2.0.4.tar.gz && tar -xzvf SDL2-2.0.4.tar.gz && cd SDL2-2.0.4/Xcode-iOS/SDL && xcodebuild -sdk iphonesimulator9.3 | xcpretty && mkdir -p ../../../sdl2/lib && cp build/Release-iphonesimulator/libSDL2.a ../../../sdl2/lib && mkdir -p ../../../sdl2/include/SDL2 && cp -R ../../include/* ../../../sdl2/include/SDL2 && cd ../../..; fi -- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! -e "$HOME/sdl2/include" ]; then curl -O http://www.libsdl.org/release/SDL2-2.0.4.tar.gz && tar -xzvf SDL2-2.0.4.tar.gz && cd SDL2-2.0.4 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/sdl2 -DCMAKE_BUILD_TYPE=Release && cmake --build . --target install && cd ../..; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ] && [ ! -e "$HOME/sdl2/include" ]; then curl -O http://www.libsdl.org/release/SDL2-2.0.4.tar.gz && tar -xzvf SDL2-2.0.4.tar.gz && cd SDL2-2.0.4 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/sdl2 -DCMAKE_BUILD_TYPE=Release && cmake --build . --target install && cd ../..; fi # GLFW (cached) - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then brew install homebrew/versions/glfw3; fi -- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! -e "$HOME/glfw/include" ]; then wget https://github.com/glfw/glfw/releases/download/3.1.2/glfw-3.1.2.zip && unzip glfw-3.1.2.zip && cd glfw-3.1.2 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/glfw -DCMAKE_BUILD_TYPE=Release -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF && cmake --build . --target install && cd ../..; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ] && [ ! -e "$HOME/glfw/include" ]; then wget https://github.com/glfw/glfw/releases/download/3.1.2/glfw-3.1.2.zip && unzip glfw-3.1.2.zip && cd glfw-3.1.2 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/glfw -DCMAKE_BUILD_TYPE=Release -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF && cmake --build . --target install && cd ../..; fi script: -- if [ "$TRAVIS_OS_NAME" == "linux" ]; then ./package/ci/travis-desktop.sh; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then ./package/ci/travis-desktop.sh; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop-gles" ]; then ./package/ci/travis-desktop-gles.sh; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then ./package/ci/travis-desktop.sh; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "ios-simulator" ]; then ./package/ci/travis-ios-simulator.sh; fi - if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "emscripten" ]; then ./package/ci/travis-emscripten.sh; fi @@ -86,4 +99,4 @@ script: after_success: # Ignoring all stuff that needs GL context and thus can't be run on Travis -- if [ "$TRAVIS_OS_NAME" == "linux" ]; then coveralls --gcov /usr/bin/gcov-4.7 -i src/ -E "(.*/(Test|MagnumExternal|Shaders|Platform)/.*|.*/src/Magnum/(AbstractFramebuffer|AbstractObject|AbstractQuery|AbstractShaderProgram|AbstractTexture|Buffer|BufferImage|BufferTexture|Context|CubeMapTexture|CubeMapTextureArray|DebugOutput|DefaultFramebuffer|Framebuffer|Mesh|MeshView|MultisampleTexture|OpenGL|PixelStorage|PrimitiveQuery|RectangleTexture|Renderbuffer|Renderer|SampleQuery|Sampler|Shader|Texture|TextureArray|TimeQuery|TransformFeedback|Implementation/BufferState|Implementation/DebugState|Implementation/driverSpecific|Implementation/FramebufferState|Implementation/maxTextureSize|Implementation/MeshState|Implementation/QueryState|Implementation/RendererState|Implementation/ShaderProgramState|Implementation/ShaderState|Implementation/State|Implementation/TextureState|Implementation/TransformFeedbackState)\\.(cpp|h))" --gcov-options '\-lp'; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$TARGET" == "desktop" ]; then coveralls --gcov /usr/bin/gcov-4.7 -i src/ -E "(.*/(Test|MagnumExternal|Shaders|Platform)/.*|.*/src/Magnum/(AbstractFramebuffer|AbstractObject|AbstractQuery|AbstractShaderProgram|AbstractTexture|Buffer|BufferImage|BufferTexture|Context|CubeMapTexture|CubeMapTextureArray|DebugOutput|DefaultFramebuffer|Framebuffer|Mesh|MeshView|MultisampleTexture|OpenGL|PixelStorage|PrimitiveQuery|RectangleTexture|Renderbuffer|Renderer|SampleQuery|Sampler|Shader|Texture|TextureArray|TimeQuery|TransformFeedback|Implementation/BufferState|Implementation/DebugState|Implementation/driverSpecific|Implementation/FramebufferState|Implementation/maxTextureSize|Implementation/MeshState|Implementation/QueryState|Implementation/RendererState|Implementation/ShaderProgramState|Implementation/ShaderState|Implementation/State|Implementation/TextureState|Implementation/TransformFeedbackState)\\.(cpp|h))" --gcov-options '\-lp' > /dev/null; fi