name: main on: [ push, pull_request, workflow_dispatch ] jobs: cmake: strategy: matrix: os: [ ubuntu-latest ] profile: [ "Debug", "Release" ] runs-on: ${{ matrix.os }} steps: - name: Get number of CPU cores uses: SimenB/github-actions-cpu-cores@v1 id: cpu-cores - uses: actions/checkout@v4 - name: "Install Dependencies" run: | sudo apt-get -qq update sudo apt-get -qq install --no-install-recommends \ gettext \ libasound2-dev \ libbullet-dev \ libgnutls28-dev \ libopenxr-dev \ libqscintilla2-qt5-dev \ libsdl2-dev \ libvorbis-dev \ libvulkan-dev \ libwayland-dev \ libxcursor-dev \ libxkbcommon-dev \ libxrandr-dev \ qtbase5-dev # Disabled due to warnings that break the debug build with -Werror # libode-dev # libavcodec-dev libavformat-dev libavutil-dev libswscale-dev - name: "Configure: ${{ matrix.profile }}" run: | cmake -B build_${{ matrix.profile }} -DCMAKE_BUILD_TYPE=${{ matrix.profile }} - name: "Build: ${{ matrix.profile }}" run: | cmake --build build_${{ matrix.profile }} --parallel ${{ steps.cpu-cores.outputs.count }} wasm: strategy: # Concurrent builds currently broken: # https://github.com/mymindstorm/setup-emsdk/issues/20 matrix: emsdk: [ "2.0.12" ] #, "3.1.8", "3.1.51" ] profile: [ "rel" ] #, "dbg" ] runs-on: ubuntu-latest steps: - name: Get number of CPU cores uses: SimenB/github-actions-cpu-cores@v1 id: cpu-cores - uses: actions/checkout@v4 - uses: mymindstorm/setup-emsdk@v13 with: version: ${{ matrix.emsdk }} actions-cache-folder: "emsdk-cache-${{ matrix.emsdk }}" - name: Verify emscripten run: emcc -v - name: Build dependencies working-directory: engine run: | make -j ${{ steps.cpu-cores.outputs.count }} makelibs FTE_TARGET=web - name: Build wasm working-directory: engine run: | # Currently fails to build sed -r -i '/define Q3(CLIENT|SERVER)/d' common/config_fteqw.h make -j ${{ steps.cpu-cores.outputs.count }} FTE_TARGET=web web-${{ matrix.profile }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: fteqw-web-${{ matrix.profile }}-em${{ matrix.emsdk }} path: | engine/*/ftewebgl.js engine/*/ftewebgl.html engine/*/ftewebgl.wasm compression-level: 9