Re-enable ios-sfml-graphics CI job, using the latest SFML 2 version #602
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
linux: | |
runs-on: ubuntu-22.04 | |
env: | |
GCC_VERSION: 12 | |
CLANG_VERSION: 14 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install g++-$GCC_VERSION clang-$CLANG_VERSION clang-tidy-$CLANG_VERSION ninja-build cppcheck | |
sudo apt-get -y install libsfml-dev libsdl2-dev libsdl2-ttf-dev libglfw3-dev | |
- name: Build TGUI (recent gcc) | |
run: > | |
cmake -B TGUI-build-gcc -GNinja | |
-DCMAKE_CXX_CPPCHECK="cppcheck;--enable=all;--inline-suppr;--quiet;--suppress=*:*/extlibs/*;--suppress=preprocessorErrorDirective;--suppress=noExplicitConstructor;--suppress=unmatchedSuppression;--suppress=missingIncludeSystem;--suppress=useStlAlgorithm;--suppress=passedByValue;--suppress=unusedFunction;--suppress=virtualCallInConstructor" | |
-DCMAKE_INSTALL_PREFIX=TGUI-build-gcc/install | |
-DCMAKE_CXX_COMPILER=g++-$GCC_VERSION | |
-DCMAKE_BUILD_TYPE=Debug | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DCMAKE_UNITY_BUILD=OFF | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_GLES2=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_GLES2=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_GLES2=ON | |
cmake --build TGUI-build-gcc --config Debug --target install | |
- name: Build TGUI (recent clang) | |
run: > | |
cmake -B TGUI-build-clang -GNinja | |
-DCMAKE_CXX_COMPILER=clang++-$CLANG_VERSION | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_GLES2=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_GLES2=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_GLES2=ON | |
cmake --build TGUI-build-clang --config Release | |
- name: Test TGUIConfig.cmake | |
run: | | |
cmake -GNinja -DTGUI_DIR="$GITHUB_WORKSPACE/TGUI-build-gcc/install/lib/cmake/TGUI/" -S tests/cmake -B tests/cmake/build | |
cmake --build tests/cmake/build --config Debug | |
test -e tests/cmake/build/TguiTest | |
#---------------------------------------- | |
linux-latest-dev: | |
runs-on: ubuntu-20.04 | |
env: | |
SFML_GITHUB_URL: https://github.com/SFML/SFML | |
SDL_GITHUB_URL: https://github.com/libsdl-org/SDL | |
SDL_TTF_GITHUB_URL: https://github.com/libsdl-org/SDL_ttf | |
GLFW_GITHUB_URL: https://github.com/glfw/glfw | |
SFML_INSTALL_DIR: SFML_INSTALL | |
SDL_INSTALL_DIR: SDL_INSTALL | |
SDL_TTF_INSTALL_DIR: SDL_TTF_INSTALL | |
GLFW_INSTALL_DIR: GLFW_INSTALL | |
CMAKE_VERSION: 3.27 | |
CMAKE_VERSION_PATCH: 4 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
with: | |
path: TGUI | |
- name: Lookup dependency versions | |
id: find-dependencies | |
run: | | |
echo "sfml-revision=$(git ls-remote $SFML_GITHUB_URL HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
echo "sdl-revision=$(git ls-remote $SDL_GITHUB_URL HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
echo "sdl-ttf-revision=$(git ls-remote $SDL_TTF_GITHUB_URL HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
echo "glfw-revision=$(git ls-remote $GLFW_GITHUB_URL HEAD | cut -f1)" >> $GITHUB_OUTPUT | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: SFML_INSTALL | |
key: CACHE_LINUX_SFML_LATEST_${{ steps.find-dependencies.outputs.sfml-revision }} | |
- name: Cache SDL | |
uses: actions/cache@v3 | |
id: cache-sdl | |
with: | |
path: SDL_INSTALL | |
key: CACHE_LINUX_SDL_LATEST_${{ steps.find-dependencies.outputs.sdl-revision }} | |
- name: Cache SDL_ttf | |
uses: actions/cache@v3 | |
id: cache-sdl-ttf | |
with: | |
path: SDL_TTF_INSTALL | |
key: CACHE_LINUX_SDL_TTF_LATEST_${{ steps.find-dependencies.outputs.sdl-ttf-revision }} | |
- name: Cache GLFW | |
uses: actions/cache@v3 | |
id: cache-glfw | |
with: | |
path: GLFW_INSTALL | |
key: CACHE_LINUX_GLFW_LATEST_${{ steps.find-dependencies.outputs.glfw-revision }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install xorg-dev libudev-dev libopenal-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libfreetype-dev ninja-build | |
sudo sh -c 'wget -nv -O- "https://cmake.org/files/v${{env.CMAKE_VERSION}}/cmake-${{env.CMAKE_VERSION}}.${{env.CMAKE_VERSION_PATCH}}-linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local' | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
git clone --depth 1 $SFML_GITHUB_URL SFML | |
sed -i 's/#define SFML_VERSION_MINOR 5/#define SFML_VERSION_MINOR 6/' SFML/include/SFML/Config.hpp | |
sed -i 's/#define SFML_VERSION_PATCH 1/#define SFML_VERSION_PATCH 0/' SFML/include/SFML/Config.hpp | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SFML_INSTALL -DBUILD_SHARED_LIBS=ON -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S SFML -B SFML-build | |
cmake --build SFML-build --config Debug --target install | |
- name: Build SDL | |
if: steps.cache-sdl.outputs.cache-hit != 'true' | |
run: | | |
git clone --single-branch --depth 1 $SDL_GITHUB_URL SDL | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SDL_INSTALL -DBUILD_SHARED_LIBS=ON -S SDL -B SDL-build | |
cmake --build SDL-build --config Debug --target install | |
- name: Build SDL_ttf | |
if: steps.cache-sdl-ttf.outputs.cache-hit != 'true' | |
run: | | |
git clone --recurse-submodules --single-branch --depth 1 $SDL_TTF_GITHUB_URL SDL_TTF | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SDL_TTF_INSTALL -DSDL3_DIR="$GITHUB_WORKSPACE/SDL_INSTALL/lib/cmake/SDL3" -DBUILD_SHARED_LIBS=ON -S SDL_TTF -B SDL_TTF-build | |
cmake --build SDL_TTF-build --config Debug --target install | |
- name: Build GLFW | |
if: steps.cache-glfw.outputs.cache-hit != 'true' | |
run: | | |
git clone --depth 1 $GLFW_GITHUB_URL GLFW | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=GLFW_INSTALL -DBUILD_SHARED_LIBS=ON -S GLFW -B GLFW-build | |
cmake --build GLFW-build --config Debug --target install | |
- name: Build TGUI | |
working-directory: TGUI | |
run: > | |
CXXFLAGS="-fprofile-arcs -ftest-coverage -DTGUI_REMOVE_DEPRECATED_CODE" | |
cmake -B build | |
-DSFML_DIR="$GITHUB_WORKSPACE/SFML_INSTALL/lib/cmake/SFML/" | |
-DSDL3_DIR="$GITHUB_WORKSPACE/SDL_INSTALL/lib/cmake/SDL3/" | |
-DSDL3_ttf_DIR="$GITHUB_WORKSPACE/SDL_TTF_INSTALL/lib/cmake/SDL3_ttf/" | |
-Dglfw3_DIR="$GITHUB_WORKSPACE/GLFW_INSTALL/lib/cmake/glfw3/" | |
-DBUILD_SHARED_LIBS=ON | |
-DCMAKE_BUILD_TYPE=Debug | |
-DTGUI_CXX_STANDARD=20 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_ENABLE_DRAW_TESTS=ON | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_GLES2=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_GLES2=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_GLES2=ON | |
make -C build -j$(nproc) | |
- name: Run tests | |
working-directory: TGUI/build/tests | |
run: | | |
set -a && source ../../tests/EnableSoftwareRenderer.env && set +a | |
xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SFML_GRAPHICS | |
xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SFML_OPENGL3 | |
xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SDL_RENDERER | |
MESA_GL_VERSION_OVERRIDE=3.3 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SDL_OPENGL3 | |
MESA_GLES_VERSION_OVERRIDE=3.2 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SDL_GLES2 | |
MESA_GL_VERSION_OVERRIDE=4.1 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SDL_TTF_OPENGL3 | |
MESA_GLES_VERSION_OVERRIDE=3.0 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=SDL_TTF_GLES2 | |
MESA_GL_VERSION_OVERRIDE=4.5 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=GLFW_OPENGL3 | |
MESA_GLES_VERSION_OVERRIDE=2.0 xvfb-run --server-args="-screen 0, 1280x720x24" -a ./tests --backend=GLFW_GLES2 | |
- name: Upload coverage reports to Codecov | |
working-directory: TGUI | |
run: | | |
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --import | |
curl -Os https://uploader.codecov.io/latest/linux/codecov | |
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM | |
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig | |
gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM | |
shasum -a 256 -c codecov.SHA256SUM | |
chmod +x codecov | |
./codecov -ga "-pr" -t ${{secrets.CODECOV_TOKEN}} | |
#---------------------------------------- | |
linux-oldest: | |
runs-on: ubuntu-20.04 | |
env: | |
SFML_VERSION: 2.5.1 # 2.5.0 has issue with mesa | |
SDL_VERSION: 2.0.18 # older versions aren't supported in SDL_RENDERER backend | |
SDL_TTF_VERSION: 2.0.15 # 2.0.14 has no cmake script | |
GLFW_VERSION: 3.2 | |
CMAKE_VERSION: 3.16 | |
CMAKE_VERSION_PATCH: 0 | |
GCC_VERSION: 7 | |
CLANG_VERSION: '6.0' | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: SFML_INSTALL | |
key: CACHE_LINUX_OLDEST_SFML_${{env.SFML_VERSION}} | |
- name: Cache SDL | |
uses: actions/cache@v3 | |
id: cache-sdl | |
with: | |
path: SDL_INSTALL | |
key: CACHE_LINUX_OLDEST_SDL_${{env.SDL_VERSION}} | |
- name: Cache SDL_ttf | |
uses: actions/cache@v3 | |
id: cache-sdl-ttf | |
with: | |
path: SDL_TTF_INSTALL | |
key: CACHE_LINUX_OLDEST_SDL_TTF_${{env.SDL_TTF_VERSION}} | |
- name: Cache GLFW | |
uses: actions/cache@v3 | |
id: cache-glfw | |
with: | |
path: GLFW_INSTALL | |
key: CACHE_LINUX_OLDEST_GLFW_${{env.GLFW_VERSION}} | |
- name: Install build tools and dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install g++-$GCC_VERSION clang-$CLANG_VERSION ninja-build | |
sudo apt-get -y install xorg-dev libudev-dev libopenal-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libfreetype6-dev | |
sudo sh -c 'wget -nv -O- "https://cmake.org/files/v${{env.CMAKE_VERSION}}/cmake-${{env.CMAKE_VERSION}}.${{env.CMAKE_VERSION_PATCH}}-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local' | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
mkdir SFML | |
wget -nv -O- "https://github.com/SFML/SFML/archive/refs/tags/$SFML_VERSION.tar.gz" | tar --strip-components=1 -xz -C SFML | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SFML_INSTALL -DBUILD_SHARED_LIBS=ON -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S SFML -B SFML-build | |
cmake --build SFML-build --config Release --target install | |
- name: Build SDL | |
if: steps.cache-sdl.outputs.cache-hit != 'true' | |
run: | | |
mkdir SDL | |
wget -nv -O- "https://github.com/libsdl-org/SDL/archive/refs/tags/release-$SDL_VERSION.tar.gz" | tar --strip-components=1 -xz -C SDL | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SDL_INSTALL -DBUILD_SHARED_LIBS=ON -S SDL -B SDL-build | |
cmake --build SDL-build --config Release --target install | |
- name: Build SDL_ttf | |
if: steps.cache-sdl-ttf.outputs.cache-hit != 'true' | |
run: | | |
mkdir SDL_TTF | |
wget -nv -O- "https://github.com/libsdl-org/SDL_ttf/archive/refs/tags/release-$SDL_TTF_VERSION.tar.gz" | tar --strip-components=1 -xz -C SDL_TTF | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=SDL_TTF_INSTALL -DSDL2_DIR="$GITHUB_WORKSPACE/SDL_INSTALL/lib/cmake/SDL2" -DBUILD_SHARED_LIBS=ON -S SDL_TTF -B SDL_TTF-build | |
cmake --build SDL_TTF-build --config Release --target install | |
- name: Build GLFW | |
if: steps.cache-glfw.outputs.cache-hit != 'true' | |
run: | | |
mkdir GLFW | |
wget -nv -O- "https://github.com/glfw/glfw/archive/refs/tags/$GLFW_VERSION.tar.gz" | tar --strip-components=1 -xz -C GLFW | |
cmake -GNinja -DCMAKE_INSTALL_PREFIX=GLFW_INSTALL -DBUILD_SHARED_LIBS=ON -S GLFW -B GLFW-build | |
cmake --build GLFW-build --config Release --target install | |
- name: Build TGUI (old gcc) | |
run: > | |
cmake -B TGUI-build-gcc -GNinja | |
-DCMAKE_CXX_COMPILER=g++-$GCC_VERSION | |
-DSFML_DIR="$GITHUB_WORKSPACE/SFML_INSTALL/lib/cmake/SFML/" | |
-DSDL2_DIR="$GITHUB_WORKSPACE/SDL_INSTALL/lib/cmake/SDL2/" | |
-DSDL2_TTF_PATH="$GITHUB_WORKSPACE/SDL_TTF_INSTALL" | |
-Dglfw3_DIR="$GITHUB_WORKSPACE/GLFW_INSTALL/lib/cmake/glfw3/" | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_GLES2=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_GLES2=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_GLES2=ON | |
cmake --build TGUI-build-gcc --config Release | |
- name: Build TGUI (old clang) | |
run: > | |
cmake -B TGUI-build-clang -GNinja | |
-DCMAKE_CXX_COMPILER=clang++-$CLANG_VERSION | |
-DSFML_DIR="$GITHUB_WORKSPACE/SFML_INSTALL/lib/cmake/SFML/" | |
-DSDL2_DIR="$GITHUB_WORKSPACE/SDL_INSTALL/lib/cmake/SDL2/" | |
-DSDL2_TTF_PATH="$GITHUB_WORKSPACE/SDL_TTF_INSTALL" | |
-Dglfw3_DIR="$GITHUB_WORKSPACE/GLFW_INSTALL/lib/cmake/glfw3/" | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=OFF | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_GLES2=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_GLES2=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_GLES2=ON | |
cmake --build TGUI-build-clang --config Debug | |
#---------------------------------------- | |
linux-per-backend: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install ninja-build libsfml-dev libsdl2-dev libsdl2-ttf-dev libglfw3-dev | |
- name: Build TGUI (SFML_GRAPHICS) | |
run: > | |
cmake -B TGUI-build-SFML_GRAPHICS -GNinja | |
-DBUILD_SHARED_LIBS=OFF | |
-DSFML_STATIC_LIBRARIES=OFF | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-SFML_GRAPHICS --config Release | |
- name: Build TGUI (SDL_RENDERER) | |
run: > | |
cmake -B TGUI-build-SDL_RENDERER -GNinja | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=SDL_RENDERER | |
cmake --build TGUI-build-SDL_RENDERER --config Debug | |
- name: Build TGUI (SDL_TTF_GLES2) | |
run: > | |
cmake -B TGUI-build-SDL_TTF_GLES2 -GNinja | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=20 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=SDL_TTF_GLES2 | |
cmake --build TGUI-build-SDL_TTF_GLES2 --config Release | |
- name: Build TGUI (SDL_OPENGL3) | |
run: > | |
cmake -B TGUI-build-SDL_OPENGL3 -GNinja | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=23 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=SDL_OPENGL3 | |
cmake --build TGUI-build-SDL_OPENGL3 --config Release | |
- name: Build TGUI (GLFW_OPENGL3) | |
run: > | |
cmake -B TGUI-build-GLFW_OPENGL3 -GNinja | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_BACKEND=GLFW_OPENGL3 | |
cmake --build TGUI-build-GLFW_OPENGL3 --config Debug | |
#---------------------------------------- | |
windows-sfml-sdl: # Setup technically not allowed, SFML_GRAPHICS and SDL_RENDERER have conflicting FreeType dependencies | |
runs-on: windows-2022 | |
env: | |
SFML_VERSION: 2.6.0 | |
SDL_VERSION: 2.28.3 | |
SDL_TTF_VERSION: 2.20.2 | |
MSVC_TOOLSET_VERSION: 143 # VS2022 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/SFML/releases/download/${env:SFML_VERSION}/SFML-${env:SFML_VERSION}-windows-vc17-32-bit.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/libsdl-org/SDL/releases/download/release-${env:SDL_VERSION}/SDL2-devel-${env:SDL_VERSION}-VC.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/libsdl-org/SDL_ttf/releases/download/release-${env:SDL_TTF_VERSION}/SDL2_ttf-devel-${env:SDL_TTF_VERSION}-VC.zip | |
7z x SFML-${env:SFML_VERSION}-windows-vc17-32-bit.zip | |
7z x SDL2-devel-${env:SDL_VERSION}-VC.zip | |
7z x SDL2_ttf-devel-${env:SDL_TTF_VERSION}-VC.zip | |
- name: Build TGUI | |
run: > | |
cmake -B TGUI-build -T v${env:MSVC_TOOLSET_VERSION} -A Win32 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DSDL2_DIR="${env:GITHUB_WORKSPACE}/SDL2-${env:SDL_VERSION}/cmake/" | |
-DSDL2_ttf_DIR="${env:GITHUB_WORKSPACE}/SDL2_ttf-${env:SDL_TTF_VERSION}/cmake/" | |
-DCMAKE_UNITY_BUILD=OFF | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=23 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
cmake --build TGUI-build --config Debug | |
#---------------------------------------- | |
windows-oldest: # Setup technically not allowed, backends have conflicting FreeType dependencies (linking statically won't even work) | |
runs-on: windows-2019 | |
env: | |
SFML_VERSION: 2.5.0 | |
SDL_VERSION: 2.0.6 | |
SDL_TTF_VERSION: 2.0.14 | |
FREETYPE_VERSION: 2.6.5 | |
CMAKE_VERSION: 3.17 | |
CMAKE_VERSION_PATCH: 5 | |
MSVC_TOOLSET_VERSION: 141 # VS2017 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://cmake.org/files/v${env:CMAKE_VERSION}/cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win32-x86.zip | |
C:\msys64\usr\bin\wget.exe -nv https://www.sfml-dev.org/files/SFML-${env:SFML_VERSION}-windows-vc15-32-bit.zip | |
C:\msys64\usr\bin\wget.exe -nv https://libsdl.org/release/SDL2-devel-${env:SDL_VERSION}-VC.zip | |
C:\msys64\usr\bin\wget.exe -nv https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-${env:SDL_TTF_VERSION}-VC.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/ubawurinna/freetype-windows-binaries/archive/refs/tags/v${env:FREETYPE_VERSION}.zip | |
7z x cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win32-x86.zip | |
7z x SFML-${env:SFML_VERSION}-windows-vc15-32-bit.zip | |
7z x SDL2-devel-${env:SDL_VERSION}-VC.zip | |
7z x SDL2_ttf-devel-${env:SDL_TTF_VERSION}-VC.zip | |
7z x v${env:FREETYPE_VERSION}.zip | |
- name: Build TGUI | |
run: > | |
& "cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win32-x86/bin/cmake.exe" | |
-B TGUI-build -T "v${env:MSVC_TOOLSET_VERSION}" -A Win32 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DSDL2_PATH="${env:GITHUB_WORKSPACE}/SDL2-${env:SDL_VERSION}" | |
-DSDL2_TTF_PATH="${env:GITHUB_WORKSPACE}/SDL2_ttf-${env:SDL_TTF_VERSION}" | |
-DFREETYPE_WINDOWS_BINARIES_PATH="${env:GITHUB_WORKSPACE}/freetype-windows-binaries-${env:FREETYPE_VERSION}" | |
-DTGUI_OPTIMIZE_SINGLE_BUILD=ON | |
-DTGUI_OPTIMIZE_SINGLE_BUILD_THREADS=2 | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
& "cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win32-x86/bin/cmake.exe" --build TGUI-build --config Release | |
#---------------------------------------- | |
windows-clang: | |
runs-on: windows-2022 | |
env: | |
SFML_VERSION: 2.6.1 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: | | |
SFML_INSTALL_CLANG_CL | |
SFML_INSTALL_LLVM_CLANG | |
key: CACHE_WINDOWS_CLANG_SFML_${{env.SFML_VERSION}} | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/SFML/archive/refs/tags/${env:SFML_VERSION}.zip | |
7z x "${env:SFML_VERSION}.zip" | |
cmake -T ClangCL -A x64 -DCMAKE_INSTALL_PREFIX=SFML_INSTALL_CLANG_CL -DBUILD_SHARED_LIBS=ON -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S "SFML-${env:SFML_VERSION}" -B SFML-build-ClangCL | |
cmake --build SFML-build-ClangCL --config Release --target install | |
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -A Win32 -DCMAKE_INSTALL_PREFIX=SFML_INSTALL_LLVM_CLANG -DBUILD_SHARED_LIBS=OFF -DSFML_USE_STATIC_STD_LIBS=OFF -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S "SFML-${env:SFML_VERSION}" -B SFML-build-LLVM-Clang | |
cmake --build SFML-build-LLVM-Clang --config Debug --target install | |
- name: Build TGUI (ClangCL) | |
run: > | |
cmake -B TGUI-build-ClangCL -T ClangCL -A x64 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/SFML_INSTALL_CLANG_CL/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-ClangCL --config Release | |
- name: Build TGUI (LLVM Clang) | |
run: > | |
cmake -B TGUI-build-LLVM-Clang -A Win32 | |
-DCMAKE_CXX_COMPILER=clang++ | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/SFML_INSTALL_LLVM_CLANG/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_CXX_STANDARD=20 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-LLVM-Clang --config Debug | |
- name: Run tests | |
working-directory: TGUI-build-LLVM-Clang/tests/Debug | |
run: ./tests.exe | |
#---------------------------------------- | |
windows-static-mt: | |
runs-on: windows-2019 | |
env: | |
SFML_VERSION: 2.5.1 | |
GLFW_VERSION: 3.3.3 | |
FREETYPE_VERSION: 2.11.1 | |
CMAKE_VERSION: 3.19 | |
CMAKE_VERSION_PATCH: 8 | |
MSVC_TOOLSET_VERSION: 142 # VS2019 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: SFML_INSTALL | |
key: CACHE_WINDOWS_STATIC_MT_SFML_${{env.SFML_VERSION}} | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/SFML/archive/refs/tags/${env:SFML_VERSION}.zip | |
7z x "${env:SFML_VERSION}.zip" | |
cmake -T "v${env:MSVC_TOOLSET_VERSION}" -A x64 -DCMAKE_INSTALL_PREFIX=SFML_INSTALL -DBUILD_SHARED_LIBS=OFF -DSFML_USE_STATIC_STD_LIBS=ON -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S "SFML-${env:SFML_VERSION}" -B SFML-build | |
cmake --build SFML-build --config Release --target install | |
- name: Download dependencies | |
run: | | |
C:\msys64\usr\bin\wget.exe -nv https://cmake.org/files/v${env:CMAKE_VERSION}/cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win64-x64.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/glfw/glfw/releases/download/${env:GLFW_VERSION}/glfw-${env:GLFW_VERSION}.bin.WIN64.zip | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/ubawurinna/freetype-windows-binaries/archive/refs/tags/v${env:FREETYPE_VERSION}.zip | |
7z x cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win64-x64.zip | |
7z x glfw-${env:GLFW_VERSION}.bin.WIN64.zip | |
7z x v${env:FREETYPE_VERSION}.zip | |
- name: Build TGUI | |
run: > | |
& "cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win64-x64/bin/cmake.exe" | |
-B TGUI-build -T "v${env:MSVC_TOOLSET_VERSION}" -A x64 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/SFML_INSTALL/lib/cmake/SFML/" | |
-DGLFW_INCLUDE_DIR="${env:GITHUB_WORKSPACE}/glfw-${env:GLFW_VERSION}.bin.WIN64/include" | |
-DGLFW_LIBRARY="${env:GITHUB_WORKSPACE}/glfw-${env:GLFW_VERSION}.bin.WIN64/lib-vc2019/glfw3_mt.lib" | |
-DFREETYPE_WINDOWS_BINARIES_PATH="${env:GITHUB_WORKSPACE}/freetype-windows-binaries-${env:FREETYPE_VERSION}" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_USE_STATIC_STD_LIBS=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
& "cmake-${env:CMAKE_VERSION}.${env:CMAKE_VERSION_PATCH}-win64-x64/bin/cmake.exe" --build TGUI-build --config Release | |
#---------------------------------------- | |
macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
brew install sfml sdl2 sdl2_ttf glfw ninja | |
- name: Build TGUI (dylibs) | |
run: > | |
cmake -B TGUI-build-dylibs -GNinja | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_BUILD_FRAMEWORK=OFF | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=OFF | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
cmake --build TGUI-build-dylibs --config Debug | |
- name: Build TGUI (frameworks) | |
run: > | |
cmake -B TGUI-build-framework -GNinja | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_BUILD_FRAMEWORK=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=ON | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=ON | |
-DTGUI_BACKEND=Custom | |
-DTGUI_HAS_BACKEND_SFML_GRAPHICS=ON | |
-DTGUI_HAS_BACKEND_SFML_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_RENDERER=ON | |
-DTGUI_HAS_BACKEND_SDL_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_SDL_TTF_OPENGL3=ON | |
-DTGUI_HAS_BACKEND_GLFW_OPENGL3=ON | |
cmake --build TGUI-build-framework --config Release | |
#---------------------------------------- | |
android-sdl: | |
runs-on: ubuntu-latest | |
env: | |
SDL_VERSION: 2.24.2 | |
SDL_TTF_VERSION: 2.20.2 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
with: | |
path: TGUI | |
- name: Download SDL | |
run: | | |
mkdir SDL2 | |
mkdir SDL2_ttf | |
wget -nv -O- "https://github.com/libsdl-org/SDL/archive/refs/tags/release-$SDL_VERSION.tar.gz" | tar --strip-components=1 -xz -C SDL2 | |
wget -nv -O- "https://github.com/libsdl-org/SDL_ttf/releases/download/release-$SDL_TTF_VERSION/SDL2_ttf-$SDL_TTF_VERSION.tar.gz" | tar --strip-components=1 -xz -C SDL2_ttf | |
- name: Build SDL_RENDERER project | |
working-directory: TGUI/examples/android/SDL_RENDERER | |
run: | | |
sed -i "s/^\(\s*\)abiFilters .*$/\1abiFilters 'arm64-v8a'/" app/build.gradle | |
sed -i "s/^\(\s*\)ndkVersion .*$/\1ndkVersion '${ANDROID_NDK_ROOT##*/}'/" app/build.gradle | |
./gradlew assembleRelease --info | |
- name: Build SDL_TTF_GLES2 project | |
working-directory: TGUI/examples/android/SDL_TTF_GLES2 | |
run: | | |
cmake -DTGUI_BACKEND=Custom -S ../../.. -B TGUI-build | |
sed -i "s/^\(\s*\)abiFilters .*$/\1abiFilters 'x86_64'/" app/build.gradle | |
sed -i "s/^\(\s*\)ndkVersion .*$/\1ndkVersion '${ANDROID_NDK_ROOT##*/}'/" app/build.gradle | |
ln -s $GITHUB_WORKSPACE/SDL2 app/jni/SDL | |
ln -s $GITHUB_WORKSPACE/SDL2_ttf app/jni/SDL_TTF | |
ln -s $GITHUB_WORKSPACE/TGUI app/jni/TGUI | |
./gradlew assembleDebug --info | |
#---------------------------------------- | |
android-sfml-graphics: | |
runs-on: ubuntu-latest | |
env: | |
SFML_VERSION: 2.6.0 | |
ARCH_ABI: arm64-v8a | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: | | |
SFML | |
SFML-build | |
key: CACHE_ANDROID_SFML_${{env.SFML_VERSION}}_ARCH_${{env.ARCH_ABI}} | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
mkdir SFML | |
wget -nv -O- "https://github.com/SFML/SFML/archive/refs/tags/${SFML_VERSION}.tar.gz" | tar --strip-components=1 -xz -C SFML | |
cmake -DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=23 -DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} -DCMAKE_ANDROID_ARCH_ABI=$ARCH_ABI -DCMAKE_ANDROID_STL_TYPE=c++_shared -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug -S SFML -B SFML-build | |
make -C SFML-build -j$(nproc) | |
- name: Install SFML into NDK | |
if: steps.cache-ndk.outputs.cache-hit != 'true' | |
working-directory: SFML-build | |
run: | | |
make install | |
- name: Build TGUI | |
run: > | |
cmake -B TGUI-build | |
-DCMAKE_SYSTEM_NAME=Android | |
-DCMAKE_SYSTEM_VERSION=23 | |
-DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} | |
-DCMAKE_ANDROID_ARCH_ABI=$ARCH_ABI | |
-DCMAKE_ANDROID_STL_TYPE=c++_shared | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DCMAKE_BUILD_TYPE=Debug | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
make -C TGUI-build -j$(nproc) install | |
- name: Build example | |
working-directory: examples/android/SFML_GRAPHICS | |
run: ./gradlew assembleDebug -P NDK_VERSION=${ANDROID_NDK_ROOT##*/} -P ARCH_ABI=${ARCH_ABI} --info | |
#---------------------------------------- | |
ios-sfml-graphics: | |
runs-on: macos-12 | |
env: | |
SFML_VERSION: 2.6.x # At least 2.6.2 is required | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Cache SFML | |
uses: actions/cache@v3 | |
id: cache-sfml | |
with: | |
path: SFML_INSTALL | |
key: CACHE_IOS_SFML_${{env.SFML_VERSION}} | |
- name: Build SFML | |
if: steps.cache-sfml.outputs.cache-hit != 'true' | |
run: | | |
wget -nv https://github.com/SFML/SFML/archive/refs/heads/${SFML_VERSION}.zip | |
unzip ${SFML_VERSION}.zip | |
cmake -GXcode -DCMAKE_INSTALL_PREFIX=SFML_INSTALL -DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/SFML-$SFML_VERSION/cmake/toolchains/iOS.toolchain.cmake" -DIOS_PLATFORM=OS -DBUILD_SHARED_LIBS=OFF -DSFML_BUILD_AUDIO=OFF -DSFML_BUILD_NETWORK=OFF -S SFML-$SFML_VERSION -B SFML-build | |
cmake --build SFML-build --config Debug --target install | |
- name: Build TGUI | |
run: > | |
cmake -B TGUI-build | |
-GXcode | |
-DCMAKE_SYSTEM_NAME=iOS | |
-DCMAKE_OSX_ARCHITECTURES=arm64 | |
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.4 | |
-DCMAKE_INSTALL_PREFIX=TGUI_INSTALL | |
-DSFML_DIR="$GITHUB_WORKSPACE/SFML_INSTALL/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_CXX_STANDARD=20 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
-DFreeType_LIB="$GITHUB_WORKSPACE/SFML-$SFML_VERSION/extlibs/libs-ios/libfreetype.a" | |
cmake --build TGUI-build --config Debug --target install | |
#---------------------------------------- | |
ios-sdl: | |
runs-on: macos-12 | |
env: | |
SDL_VERSION: 2.26.5 | |
SDL_TTF_VERSION: 2.0.18 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
- name: Build SDL | |
run: | | |
wget -nv https://github.com/libsdl-org/SDL/releases/download/release-$SDL_VERSION/SDL2-$SDL_VERSION.zip | |
unzip SDL2-$SDL_VERSION.zip | |
xcodebuild -project SDL2-$SDL_VERSION/Xcode/SDL/SDL.xcodeproj -scheme "Static Library-iOS" CONFIGURATION_BUILD_DIR="$GITHUB_WORKSPACE/SDL-iOS-libs" | |
- name: Build SDL_ttf | |
run: | | |
wget -nv https://github.com/libsdl-org/SDL_ttf/releases/download/release-$SDL_TTF_VERSION/SDL2_ttf-$SDL_TTF_VERSION.zip | |
unzip SDL2_ttf-$SDL_TTF_VERSION.zip | |
xcodebuild -project SDL2_ttf-$SDL_TTF_VERSION/Xcode/SDL_ttf.xcodeproj -scheme "Static Library" CONFIGURATION_BUILD_DIR="$GITHUB_WORKSPACE/SDL-iOS-libs" | |
- name: Build TGUI (SDL_RENDERER) | |
run: > | |
cmake -B TGUI-build-iOS-SDL_RENDERER | |
-GXcode | |
-DCMAKE_SYSTEM_NAME=iOS | |
-DCMAKE_OSX_ARCHITECTURES=arm64 | |
-DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 | |
-DCMAKE_INSTALL_PREFIX=TGUI_INSTALL_SDL_RENDERER | |
-DTGUI_BACKEND=SDL_RENDERER | |
-DTGUI_SHARED_LIBS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DSDL2_LIBRARY="$GITHUB_WORKSPACE/SDL-iOS-libs/libSDL2.a" | |
-DSDL2_INCLUDE_DIR="$GITHUB_WORKSPACE/SDL2-$SDL_VERSION/include" | |
-DSDL2_TTF_LIBRARY="$GITHUB_WORKSPACE/SDL-iOS-libs/libSDL2_ttf.a" | |
-DSDL2_TTF_INCLUDE_DIR="$GITHUB_WORKSPACE/SDL2_ttf-$SDL_TTF_VERSION" | |
-DTGUI_SKIP_SDL_CONFIG=TRUE | |
cmake --build TGUI-build-iOS-SDL_RENDERER --config Release --target install | |
test -e TGUI_INSTALL_SDL_RENDERER/lib/libtgui-s.a | |
- name: Build TGUI (SDL_TTF_GLES2) | |
run: > | |
cmake -B TGUI-build-iOS-SDL_TTF_GLES2 | |
-GXcode | |
-DCMAKE_SYSTEM_NAME=iOS | |
-DCMAKE_OSX_ARCHITECTURES=arm64 | |
-DCMAKE_OSX_DEPLOYMENT_TARGET=13.0 | |
-DCMAKE_INSTALL_PREFIX=TGUI_INSTALL_SDL_TTF_GLES2 | |
-DTGUI_BACKEND=SDL_TTF_GLES2 | |
-DTGUI_SHARED_LIBS=OFF | |
-DCMAKE_UNITY_BUILD=ON | |
-DTGUI_CXX_STANDARD=17 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DSDL2_LIBRARY="$GITHUB_WORKSPACE/SDL-iOS-libs/libSDL2.a" | |
-DSDL2_INCLUDE_DIR="$GITHUB_WORKSPACE/SDL2-$SDL_VERSION/include" | |
-DSDL2_TTF_LIBRARY="$GITHUB_WORKSPACE/SDL-iOS-libs/libSDL2_ttf.a" | |
-DSDL2_TTF_INCLUDE_DIR="$GITHUB_WORKSPACE/SDL2_ttf-$SDL_TTF_VERSION" | |
-DTGUI_SKIP_SDL_CONFIG=TRUE | |
cmake --build TGUI-build-iOS-SDL_TTF_GLES2 --config Release --target install | |
test -e TGUI_INSTALL_SDL_TTF_GLES2/lib/libtgui-s.a | |
#---------------------------------------- | |
# TODO: How to put this in a separate workflow file? | |
# The idea was to have the following at the top: | |
# on: | |
# workflow_run: | |
# workflows: ["CI"] | |
# branches: ["1.x"] | |
# types: | |
# - completed | |
# and adding the following to the job: | |
# if: github.event.workflow_run.conclusion == 'success' | |
# | |
# But considering this CI workflow is also triggered by pull requests, I would need | |
# some way to only let the nightly build run if this CI workflow was triggered by a push. | |
# Since I can't find a way to do that, and workflow_dispatch requires a new job anyway, | |
# I've decided to just put the nightly build code in this file as well. | |
nightly-build-windows-visual-studio: | |
if: github.event_name == 'push' && github.ref == 'refs/heads/1.x' | |
needs: [linux, linux-latest-dev, linux-oldest, linux-per-backend, windows-sfml-sdl, windows-oldest, windows-clang, windows-static-mt, macos, android-sdl, android-sfml-graphics, ios-sfml-graphics, ios-sdl] | |
runs-on: windows-2019 | |
env: | |
SFML_VERSION: 2.6.1 | |
MSVC_TOOLSET_VERSION: 141 # VS2017 | |
steps: | |
- name: Checkout TGUI | |
uses: actions/checkout@v3 | |
with: | |
path: TGUI | |
- name: Install dependencies | |
run: | | |
Install-ChocoPackage doxygen.install | |
mkdir x86 | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/SFML/releases/download/${env:SFML_VERSION}/SFML-${env:SFML_VERSION}-windows-vc15-32-bit.zip | |
7z x SFML-${env:SFML_VERSION}-windows-vc15-32-bit.zip -o"x86" | |
mkdir x64 | |
C:\msys64\usr\bin\wget.exe -nv https://github.com/SFML/SFML/releases/download/${env:SFML_VERSION}/SFML-${env:SFML_VERSION}-windows-vc15-64-bit.zip | |
7z x SFML-${env:SFML_VERSION}-windows-vc15-64-bit.zip -o"x64" | |
- name: Remove .git folder | |
run: | |
if (Test-Path -Path "TGUI\.git") { Remove-Item "TGUI\.git" -Recurse -Force -Confirm:$false } | |
- name: Build TGUI (SFML_GRAPHICS, static, x86) | |
run: > | |
cmake -S TGUI -B TGUI-build-static-x86 | |
-T v${env:MSVC_TOOLSET_VERSION} -A Win32 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/x86/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_DOC=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-static-x86 --config Debug | |
cmake --build TGUI-build-static-x86 --config Release | |
- name: Build TGUI (SFML_GRAPHICS, static, x64) | |
run: > | |
cmake -S TGUI -B TGUI-build-static-x64 | |
-T v${env:MSVC_TOOLSET_VERSION} -A x64 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/x64/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=OFF | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_DOC=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=ON | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-static-x64 --config Debug | |
cmake --build TGUI-build-static-x64 --config Release | |
- name: Build TGUI (SFML_GRAPHICS, dynamic, x86) | |
run: > | |
cmake -S TGUI -B TGUI-build-dynamic-x86 | |
-T v${env:MSVC_TOOLSET_VERSION} -A Win32 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/x86/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=OFF | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-dynamic-x86 --config Debug | |
cmake --build TGUI-build-dynamic-x86 --config Release | |
- name: Build TGUI (SFML_GRAPHICS, dynamic, x64) | |
run: > | |
cmake -S TGUI -B TGUI-build-dynamic-x64 | |
-T v${env:MSVC_TOOLSET_VERSION} -A x64 | |
-DSFML_DIR="${env:GITHUB_WORKSPACE}/x64/SFML-${env:SFML_VERSION}/lib/cmake/SFML/" | |
-DCMAKE_UNITY_BUILD=ON | |
-DBUILD_SHARED_LIBS=ON | |
-DTGUI_CXX_STANDARD=14 | |
-DTGUI_WARNINGS_AS_ERRORS=ON | |
-DTGUI_BUILD_EXAMPLES=OFF | |
-DTGUI_BUILD_GUI_BUILDER=OFF | |
-DTGUI_BUILD_TESTS=OFF | |
-DTGUI_BACKEND=SFML_GRAPHICS | |
cmake --build TGUI-build-dynamic-x64 --config Debug | |
cmake --build TGUI-build-dynamic-x64 --config Release | |
- name: Create package (SFML_GRAPHICS, x86) | |
run: | | |
echo d | xcopy /s TGUI TGUI-1.x-nightly | |
mkdir TGUI-1.x-nightly\lib | |
mkdir TGUI-1.x-nightly\bin | |
move TGUI-build-static-x86\lib\Release\tgui-s.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x86\lib\Debug\tgui-s-d.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x86\lib\Debug\tgui-s-d.pdb TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x86\lib\Release\tgui.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x86\lib\Release\tgui.dll TGUI-1.x-nightly\bin\ | |
move TGUI-build-dynamic-x86\lib\Debug\tgui-d.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x86\lib\Debug\tgui-d.dll TGUI-1.x-nightly\bin\ | |
move TGUI-build-dynamic-x86\lib\Debug\tgui-d.pdb TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x86\doc\html TGUI-1.x-nightly\doc\ | |
7z a -tzip TGUI-1.x-nightly-VisualStudio-32bit-for-SFML-${env:SFML_VERSION}.zip TGUI-1.x-nightly | |
Remove-Item TGUI-1.x-nightly -Recurse -Force -Confirm:$false | |
- name: Create package (SFML_GRAPHICS, x64) | |
run: | | |
echo d | xcopy /s TGUI TGUI-1.x-nightly | |
mkdir TGUI-1.x-nightly\lib | |
mkdir TGUI-1.x-nightly\bin | |
move TGUI-build-static-x64\lib\Release\tgui-s.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x64\lib\Debug\tgui-s-d.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x64\lib\Debug\tgui-s-d.pdb TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x64\lib\Release\tgui.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x64\lib\Release\tgui.dll TGUI-1.x-nightly\bin\ | |
move TGUI-build-dynamic-x64\lib\Debug\tgui-d.lib TGUI-1.x-nightly\lib\ | |
move TGUI-build-dynamic-x64\lib\Debug\tgui-d.dll TGUI-1.x-nightly\bin\ | |
move TGUI-build-dynamic-x64\lib\Debug\tgui-d.pdb TGUI-1.x-nightly\lib\ | |
move TGUI-build-static-x64\doc\html TGUI-1.x-nightly\doc\ | |
7z a -tzip TGUI-1.x-nightly-VisualStudio-64bit-for-SFML-${env:SFML_VERSION}.zip TGUI-1.x-nightly | |
Remove-Item TGUI-1.x-nightly -Recurse -Force -Confirm:$false | |
- name: Publish | |
uses: "marvinpinto/action-automatic-releases@latest" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
automatic_release_tag: "nightly_build" | |
prerelease: true | |
title: "Nightly build" | |
files: | | |
TGUI-1.x-nightly-*.zip |