diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0abec635f..18526f6b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,6 +31,7 @@ jobs: { os: ubuntu-24.04, cxx: g++-12, c: gcc-12, arch: x64, gen: Ninja, cxx_max: 23 }, { os: ubuntu-24.04, cxx: g++-13, c: gcc-13, arch: x64, gen: Ninja, cxx_max: 23 }, { os: ubuntu-24.04, cxx: g++-14, c: gcc-14, arch: x64, gen: Ninja, cxx_max: 23 }, + { os: ubuntu-24.04, cxx: g++-14, c: gcc-14, arch: x86, gen: Ninja, cxx_max: 23, c_flags: '-m32', cxx_flags: '-m32', linker_flags: '-m32' }, { os: ubuntu-24.04, cxx: clang++-16, c: clang-16, arch: x64, gen: Ninja, cxx_max: 20 }, { os: ubuntu-24.04, cxx: clang++-17, c: clang-17, arch: x64, gen: Ninja, cxx_max: 20 }, { os: ubuntu-24.04, cxx: clang++-18, c: clang-18, arch: x64, gen: Ninja, cxx_max: 23 }, @@ -54,6 +55,7 @@ jobs: VAR_CMAKE_FLAGS: | ${{ matrix.env.c && format('-D CMAKE_C_COMPILER={0}', matrix.env.c) }} \ ${{ matrix.env.cxx && format('-D CMAKE_CXX_COMPILER={0}', matrix.env.cxx) }} \ + ${{ matrix.env.c_flags && format('-D CMAKE_C_FLAGS={0}', matrix.env.c_flags) }} \ ${{ matrix.env.cxx_flags && format('-D CMAKE_CXX_FLAGS''={0}''', matrix.env.cxx_flags) }} \ ${{ matrix.env.linker_flags && format('-D CMAKE_EXE_LINKER_FLAGS=''{0}''', matrix.env.linker_flags) }} \ @@ -71,7 +73,9 @@ jobs: arch: ${{matrix.env.arch}} - name: Setup Ubuntu if: contains(matrix.env.os, 'ubuntu') - run: sudo apt update && sudo apt install libgl-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev + run: | + sudo apt update + sudo apt install -y libgl-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev ${{ contains(matrix.env.arch, 'x86') && format('{0}-multilib {1}-multilib', matrix.env.c, matrix.env.cxx) || '' }} - name: Setup MacOS if: contains(matrix.env.os, 'macos') run: brew install molten-vk @@ -112,7 +116,7 @@ jobs: # Build samples using highest available C++ standard. - name: Build Samples with C++${{matrix.env.cxx_max}} - if: (!matrix.env.modules) # Exclude module runners. + if: (!matrix.env.modules) && (!contains(matrix.env.arch, 'x86')) # Exclude module and cross-compilation runners. run: | for BUILD_TYPE in Debug Release; do cmake -B build -G '${{matrix.env.gen}}' --fresh --preset samples \