FIX: Glwf not found in CI/CD #112
This file contains hidden or 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: CMake Build Test | |
| on: [push, pull_request] | |
| jobs: | |
| # ─── Reusable setup steps are handled via composite or just duplicated minimally ─── | |
| linux-lib: | |
| name: Linux Lib (${{ matrix.display_server }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| display_server: [Wayland, X11] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| - name: Setup Vulkan SDK | |
| uses: humbletim/setup-vulkan-sdk@v1.2.1 | |
| with: | |
| vulkan-query-version: 1.4.304.1 | |
| vulkan-components: Vulkan-Headers, Vulkan-Loader | |
| vulkan-use-cache: true | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| if [ "${{ matrix.display_server }}" = "Wayland" ]; then | |
| sudo apt-get install -y libgl1-mesa-dev libwayland-dev wayland-protocols libxkbcommon-dev | |
| else | |
| sudo apt-get install -y xorg-dev | |
| fi | |
| - name: Fix libslang.so permissions | |
| run: chmod +x dependencies/binaries/slang/lib/libslang.so | |
| - name: Configure and Build | |
| run: | | |
| cmake -B build \ | |
| -DEOS_BUILD_EXAMPLES=OFF \ | |
| -DUSE_WAYLAND=${{ matrix.display_server == 'Wayland' && 'ON' || 'OFF' }} \ | |
| -DUSE_X11=${{ matrix.display_server == 'X11' && 'ON' || 'OFF' }} \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --config Release --parallel 4 | |
| linux-example-modelpbr: | |
| name: Linux Example ModelPBR (${{ matrix.display_server }}) | |
| runs-on: ubuntu-latest | |
| needs: linux-lib | |
| strategy: | |
| matrix: | |
| display_server: [Wayland, X11] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| - name: Setup Vulkan SDK | |
| uses: humbletim/setup-vulkan-sdk@v1.2.1 | |
| with: | |
| vulkan-query-version: 1.4.304.1 | |
| vulkan-components: Vulkan-Headers, Vulkan-Loader | |
| vulkan-use-cache: true | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential cmake | |
| if [ "${{ matrix.display_server }}" = "Wayland" ]; then | |
| sudo apt-get install -y libgl1-mesa-dev libwayland-dev wayland-protocols libxkbcommon-dev | |
| else | |
| sudo apt-get install -y xorg-dev | |
| fi | |
| - name: Fix libslang.so permissions | |
| run: chmod +x dependencies/binaries/slang/lib/libslang.so | |
| - name: Configure and Build | |
| run: | | |
| cmake -B build \ | |
| -DEOS_BUILD_EXAMPLES=ON \ | |
| -DUSE_WAYLAND=${{ matrix.display_server == 'Wayland' && 'ON' || 'OFF' }} \ | |
| -DUSE_X11=${{ matrix.display_server == 'X11' && 'ON' || 'OFF' }} \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --target ModelPBR --config Release --parallel 4 | |
| windows-lib: | |
| name: Windows Lib | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| - name: Setup Vulkan SDK | |
| uses: humbletim/setup-vulkan-sdk@v1.2.1 | |
| with: | |
| vulkan-query-version: 1.4.304.1 | |
| vulkan-components: Vulkan-Headers, Vulkan-Loader | |
| vulkan-use-cache: true | |
| - uses: lukka/get-cmake@latest | |
| - name: Verify Slang library | |
| shell: powershell | |
| run: | | |
| $path = "dependencies/binaries/slang/lib/slang.lib" | |
| if (-not (Test-Path $path)) { Write-Host "ERROR: slang.lib not found!"; exit 1 } | |
| Write-Host "slang.lib size: $((Get-Item $path).Length) bytes" | |
| - name: Configure and Build | |
| run: | | |
| cmake -B build -DEOS_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --config Release --parallel 4 | |
| windows-example-modelpbr: | |
| name: Windows Example ModelPBR | |
| runs-on: windows-latest | |
| needs: windows-lib | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| - name: Setup Vulkan SDK | |
| uses: humbletim/setup-vulkan-sdk@v1.2.1 | |
| with: | |
| vulkan-query-version: 1.4.304.1 | |
| vulkan-components: Vulkan-Headers, Vulkan-Loader | |
| vulkan-use-cache: true | |
| - uses: lukka/get-cmake@latest | |
| - name: Verify Slang library | |
| shell: powershell | |
| run: | | |
| $path = "dependencies/binaries/slang/lib/slang.lib" | |
| if (-not (Test-Path $path)) { Write-Host "ERROR: slang.lib not found!"; exit 1 } | |
| Write-Host "slang.lib size: $((Get-Item $path).Length) bytes" | |
| - name: Configure and Build | |
| run: | | |
| cmake -B build -DEOS_BUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --target ModelPBR --config Release --parallel 4 |