From 4a1f6737b634549e9f361c4e0319732c3945098a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 20 Aug 2019 09:33:44 +0200 Subject: [PATCH] package/ci: build GLFW and SDL2 apps in the Vulkan build. --- package/ci/appveyor-desktop-vulkan.bat | 7 +++++-- package/ci/appveyor.yml | 22 ++++++++++++++-------- package/ci/travis-desktop-vulkan.sh | 6 ++++-- package/ci/travis.yml | 6 ++++-- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/package/ci/appveyor-desktop-vulkan.bat b/package/ci/appveyor-desktop-vulkan.bat index 76bcdd6fb..83b615517 100644 --- a/package/ci/appveyor-desktop-vulkan.bat +++ b/package/ci/appveyor-desktop-vulkan.bat @@ -20,12 +20,13 @@ rem a separate build for now. cl.exe /c package/ci/libvulkan.cpp || exit /b lib.exe /OUT:%APPVEYOR_BUILD_FOLDER%/deps/lib/libvulkan.lib libvulkan.obj || exit /b -rem Enabling only stuff that's directly affected by Vulkan, disabling -rem everything else. +rem Enabling only stuff that's directly affected by Vulkan (which means also +rem parts of Platform), disabling everything else. mkdir build && cd build || exit /b cmake .. ^ -DCMAKE_BUILD_TYPE=Debug ^ -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps ^ + -DCMAKE_PREFIX_PATH=%APPVEYOR_BUILD_FOLDER%/SDL ^ -DVulkan_LIBRARY=%APPVEYOR_BUILD_FOLDER%/deps/lib/libvulkan.lib ^ -DWITH_AUDIO=OFF ^ -DWITH_DEBUGTOOLS=OFF ^ @@ -53,6 +54,8 @@ cmake .. ^ -DWITH_IMAGECONVERTER=OFF ^ -DWITH_GL_INFO=OFF ^ -DWITH_AL_INFO=OFF ^ + -DWITH_SDL2APPLICATION=ON ^ + -DWITH_GLFWAPPLICATION=ON ^ -DBUILD_TESTS=ON ^ -DBUILD_GL_TESTS=OFF ^ -G Ninja || exit /b diff --git a/package/ci/appveyor.yml b/package/ci/appveyor.yml index e22503d7a..3eb749178 100644 --- a/package/ci/appveyor.yml +++ b/package/ci/appveyor.yml @@ -65,17 +65,23 @@ install: - 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 +# Build apps on both GL and Vulkan to verify these can build w/o GL as well. +# Not on GLES, as there's not much GLES-dependent. +- IF "%TARGET%" == "desktop" set BUILD_APPLICATIONS=YES +- IF "%TARGET%" == "desktop-vulkan" set BUILD_APPLICATIONS=YES +- IF "%TARGET%" == "desktop-gles" set BUILD_APPLICATIONS=NO + # SDL2 -- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.9-VC.zip appveyor DownloadFile http://www.libsdl.org/release/SDL2-devel-2.0.9-VC.zip -- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" 7z x SDL2-devel-2.0.9-VC.zip && ren SDL2-2.0.9 SDL -- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.9-mingw.tar.gz appveyor DownloadFile http://libsdl.org/release/SDL2-devel-2.0.9-mingw.tar.gz -- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" 7z x SDL2-devel-2.0.9-mingw.tar.gz & 7z x SDL2-devel-2.0.9-mingw.tar & ren SDL2-2.0.9 SDL +- IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "msvc" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.9-VC.zip appveyor DownloadFile http://www.libsdl.org/release/SDL2-devel-2.0.9-VC.zip +- IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "msvc" 7z x SDL2-devel-2.0.9-VC.zip && ren SDL2-2.0.9 SDL +- IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "mingw" IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\SDL2-devel-2.0.9-mingw.tar.gz appveyor DownloadFile http://libsdl.org/release/SDL2-devel-2.0.9-mingw.tar.gz +- IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "mingw" 7z x SDL2-devel-2.0.9-mingw.tar.gz & 7z x SDL2-devel-2.0.9-mingw.tar & 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%" == "msvc" copy glfw\lib-vc2015\glfw3.dll deps\bin\ && copy glfw\lib-vc2015\glfw3dll.lib deps\lib\glfw3.lib -- IF "%TARGET%" == "desktop" IF "%COMPILER%" == "mingw" copy glfw\lib-mingw-w64\glfw3.dll deps\bin\ && copy glfw\lib-mingw-w64\libglfw3dll.a deps\lib\libglfw3.a +- IF "%BUILD_APPLICATIONS%" == "YES" 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 "%BUILD_APPLICATIONS%" == "YES" 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 "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "msvc" copy glfw\lib-vc2015\glfw3.dll deps\bin\ && copy glfw\lib-vc2015\glfw3dll.lib deps\lib\glfw3.lib +- IF "%BUILD_APPLICATIONS%" == "YES" IF "%COMPILER%" == "mingw" copy glfw\lib-mingw-w64\glfw3.dll deps\bin\ && copy glfw\lib-mingw-w64\libglfw3dll.a deps\lib\libglfw3.a build_script: - IF "%TARGET%" == "desktop" IF "%COMPILER%" == "msvc" call package\ci\appveyor-desktop.bat diff --git a/package/ci/travis-desktop-vulkan.sh b/package/ci/travis-desktop-vulkan.sh index c9585e537..05101f01e 100755 --- a/package/ci/travis-desktop-vulkan.sh +++ b/package/ci/travis-desktop-vulkan.sh @@ -21,8 +21,8 @@ cd ../.. # Vulkan build. g++ package/ci/libvulkan.cpp -std=c++11 -shared -o $HOME/libvulkan.so -# Enabling only stuff that's directly affected by Vulkan, disabling everything -# else. +# Enabling only stuff that's directly affected by Vulkan (which means also +# parts of Platform), disabling everything else. mkdir build && cd build # Not using CXXFLAGS in order to avoid affecting dependencies cmake .. \ @@ -56,6 +56,8 @@ cmake .. \ -DWITH_DISTANCEFIELDCONVERTER=OFF \ -DWITH_FONTCONVERTER=OFF \ -DWITH_IMAGECONVERTER=OFF \ + -DWITH_SDL2APPLICATION=ON \ + -DWITH_GLFWAPPLICATION=ON \ -DBUILD_TESTS=ON \ -DBUILD_GL_TESTS=OFF \ -DBUILD_DEPRECATED=$BUILD_DEPRECATED \ diff --git a/package/ci/travis.yml b/package/ci/travis.yml index bbbdd4414..d2f611b6c 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -60,6 +60,8 @@ matrix: packages: - ninja-build - lcov + - libsdl2-dev + - libglfw3-dev - language: cpp os: linux dist: xenial @@ -205,11 +207,11 @@ install: - if [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-sanitizers" ] || [ "$TARGET" == "desktop-gles" ]; then printf "[General]\ndrivers=null" > ~/.alsoftrc; fi # SDL on macOS and iOS (cached) -- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install sdl2; fi +- if [ "$TRAVIS_OS_NAME" == "osx" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-vulkan" ] ); then HOMEBREW_NO_AUTO_UPDATE=1 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 # GLFW (cached) -- if [ "$TRAVIS_OS_NAME" == "osx" ] && [ "$TARGET" == "desktop" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install glfw; fi +- if [ "$TRAVIS_OS_NAME" == "osx" ] && ( [ "$TARGET" == "desktop" ] || [ "$TARGET" == "desktop-vulkan" ] ); then HOMEBREW_NO_AUTO_UPDATE=1 brew install glfw; fi # SwiftShader on Linux (cached). Taken from Chromium snapshot 587878 # (swiftshader-bin Arch package).