| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- name: Build
- on: [push, pull_request]
- jobs:
- Linux:
- runs-on: ubuntu-24.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 -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 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-22.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 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")
- - 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-24.04
- 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 \
- -DRMLUI_SDL_VERSION_MAJOR=2
- - name: Build
- run: |-
- source emsdk-master/emsdk_env.sh
- cd Build
- emmake make -j
|