Skip to content

Implement a DirectX 11 renderer #1618

Implement a DirectX 11 renderer

Implement a DirectX 11 renderer #1618

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
Linux:
runs-on: ubuntu-latest
env:
BUILD_TYPE: Release
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
strategy:
fail-fast: false
matrix:
include:
- cc: clang
cxx: clang++
cmake_options: -DRMLUI_BACKEND=GLFW_GL2 -DRMLUI_PRECOMPILED_HEADERS=OFF
- cc: clang
cxx: clang++
cmake_options: -DRMLUI_BACKEND=SDL_VK -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
- cmake_options: -DRMLUI_BACKEND=GLFW_GL3 -DBUILD_TESTING=ON
enable_testing: true
- cmake_options: -DRMLUI_BACKEND=X11_GL2 -DRMLUI_LOTTIE_PLUGIN=ON
- cmake_options: -DRMLUI_BACKEND=SDL_GL2 -DRMLUI_CUSTOM_RTTI=ON -DCMAKE_CXX_FLAGS="-fno-exceptions -fno-rtti"
- cmake_options: -DRMLUI_BACKEND=SFML_GL2 -DRMLUI_THIRDPARTY_CONTAINERS=OFF
- cmake_options: -DRMLUI_BACKEND=GLFW_VK -DCMAKE_BUILD_TYPE=Debug -DRMLUI_VK_DEBUG=ON -DRMLUI_PRECOMPILED_HEADERS=OFF
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |-
sudo apt-get update
sudo apt-get install cmake ninja-build libsdl2-dev libsdl2-image-dev libfreetype6-dev libharfbuzz-dev libglew-dev liblua5.2-dev libsfml-dev librlottie-dev libglfw3-dev
- name: Configure CMake
run: >-
cmake -B Build -G Ninja --preset samples-all -DRMLUI_SVG_PLUGIN=OFF -Wdev -Werror=dev -DRMLUI_WARNINGS_AS_ERRORS=ON
${{ matrix.cmake_options }}
- name: Build
run: cmake --build Build
- name: Test
if: ${{ matrix.enable_testing }}
working-directory: ${{github.workspace}}/Build
run: ctest
Linux-legacy:
runs-on: ubuntu-20.04
env:
BUILD_TYPE: Release
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
strategy:
fail-fast: false
matrix:
include:
- cc: clang
cxx: clang++
cmake_options: -DRMLUI_BACKEND=GLFW_GL2 -DCMAKE_BUILD_TYPE=Debug
- cc: clang
cxx: clang++
cmake_options: -DRMLUI_BACKEND=SDL_VK -DBUILD_TESTING=ON -DRMLUI_PRECOMPILED_HEADERS=OFF
- cmake_options: -DBUILD_TESTING=ON
- cmake_options: -DRMLUI_BACKEND=native -DCMAKE_BUILD_TYPE=Debug -DRMLUI_VK_DEBUG=ON
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |-
sudo apt-get update
sudo apt-get install cmake ninja-build libsdl2-dev libsdl2-image-dev libfreetype6-dev libharfbuzz-dev libglew-dev liblua5.2-dev libglfw3-dev
- name: Configure CMake
run: >-
cmake -B Build -G Ninja --preset samples-all -DRMLUI_SVG_PLUGIN=OFF -DRMLUI_LOTTIE_PLUGIN=OFF -Wdev -Werror=dev -DRMLUI_WARNINGS_AS_ERRORS=ON
${{ matrix.cmake_options }}
- name: Build
run: cmake --build Build
macOS:
runs-on: macos-latest
env:
BUILD_TYPE: Release
strategy:
fail-fast: false
matrix:
include:
- cmake_options: -DRMLUI_BACKEND=auto
- cmake_options: -DRMLUI_BACKEND=GLFW_GL2
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: brew install lua sdl2 sdl2_image glfw
- name: Configure CMake
run: >-
cmake -B Build --preset samples -Wdev -Werror=dev -DRMLUI_WARNINGS_AS_ERRORS=ON
-DCMAKE_CXX_FLAGS="-DGL_SILENCE_DEPRECATION"
-DRMLUI_LUA_BINDINGS=ON
${{ matrix.cmake_options }}
- name: Build
run: cmake --build Build
Windows:
runs-on: windows-latest
env:
BUILD_TYPE: Release
VCPKG_DEFAULT_TRIPLET: x64-windows
strategy:
fail-fast: false
matrix:
include:
- cmake_options: -DRMLUI_BACKEND=auto -DRMLUI_PRECOMPILED_HEADERS=OFF
- cmake_options: -DRMLUI_BACKEND=Win32_VK -DRMLUI_VK_DEBUG=ON
- cmake_options: -DRMLUI_BACKEND=SDL_VK -DRMLUI_LUA_BINDINGS_LIBRARY=luajit
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: C:\vcpkg\vcpkg install freetype[core] sdl2[core,vulkan] glfw3 lua[core] luajit
- name: Configure CMake
run: >-
cmake -B Build --preset samples -Wdev -Werror=dev -DBUILD_SHARED_LIBS=ON
-DRMLUI_LUA_BINDINGS=ON -DRMLUI_WARNINGS_AS_ERRORS=ON
-DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ${{ matrix.cmake_options }}
- name: Build
run: cmake --build Build --config $env:BUILD_TYPE
MinGW64:
runs-on: windows-latest
env:
CHERE_INVOKING: yes
MSYSTEM: MINGW64
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |-
C:\msys64\usr\bin\bash -lc ("pacman --needed --noconfirm --sync " +
"mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-freetype mingw-w64-x86_64-lua " +
"mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-glew")
- name: Configure CMake
run: |-
C:\msys64\usr\bin\bash -lc ("cmake -B Build --preset samples -Wdev -Werror=dev -DCMAKE_BUILD_TYPE=Release " +
"-DBUILD_SHARED_LIBS=ON -DRMLUI_PRECOMPILED_HEADERS=OFF -DRMLUI_WARNINGS_AS_ERRORS=ON " +
"-DRMLUI_BACKEND=SDL_GL3 -DRMLUI_LUA_BINDINGS=ON")
- name: Build
run: C:\msys64\usr\bin\bash -lc "cmake --build Build"
- name: List files
run: C:\msys64\usr\bin\bash -lc "ls Build/*.{exe,dll} -s -h -X"
Emscripten:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |-
sudo apt-get update
sudo apt-get install cmake
wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
tar -xvf master.tar.gz
emsdk-master/emsdk update
emsdk-master/emsdk install latest
emsdk-master/emsdk activate latest
- name: Configure CMake
run: |-
source emsdk-master/emsdk_env.sh
emcmake cmake -B Build --preset samples -Wdev -Werror=dev -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF -DRMLUI_WARNINGS_AS_ERRORS=ON \
-DCMAKE_MODULE_PATH=$GITHUB_WORKSPACE/CMake/Modules/Emscripten
- name: Build
run: |-
source emsdk-master/emsdk_env.sh
cd Build
emmake make -j