From 91ff5640fd8274c3bf2090f6808fe6f3b0c5b457 Mon Sep 17 00:00:00 2001 From: Un1q32 Date: Thu, 26 Feb 2026 21:00:50 -0500 Subject: [PATCH 1/2] add the 32 bit build as a matrix using ubuntu-22.04 --- .github/workflows/artifacts.yml | 85 +++++++-------------------------- CMakeLists.txt | 12 ++++- 2 files changed, 28 insertions(+), 69 deletions(-) diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 86a791961..47db6d348 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -12,19 +12,29 @@ jobs: include: - name: x86_64 SDL 2 (OGL) flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04 - name: x86_64 SDL 2 (OGL + Shaders) flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL_SHADERS' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04 + - name: i686 SDL 2 (OGL) + flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32' + packages: 'gcc-multilib g++-multilib libsdl2-dev:i386 libopenal-dev:i386 zlib1g-dev:i386' + runner: ubuntu-22.04 + i386: true + - name: i686 SDL 2 (OGL + Shaders) + flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32' + packages: 'gcc-multilib g++-multilib libsdl2-dev:i386 libopenal-dev:i386 zlib1g-dev:i386' + runner: ubuntu-22.04 + i386: true - name: aarch64 SDL 2 (OGL) flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04-arm - name: aarch64 SDL 2 (OGL + Shaders) flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL_SHADERS' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04-arm name: Linux (${{ matrix.name }}) runs-on: ${{ matrix.runner }} @@ -43,6 +53,9 @@ jobs: uses: actions/checkout@v6 with: submodules: true + - name: Enable i386 packages + if: ${{ matrix.i386 }} + run: sudo dpkg --add-architecture i386 - name: Install Dependencies run: | sudo apt-get update @@ -50,8 +63,6 @@ jobs: build-essential \ cmake ninja-build \ ccache \ - libopenal-dev \ - zlib1g-dev \ ${{ matrix.packages }} - name: Build run: | @@ -132,68 +143,6 @@ jobs: # - name: Pack cache # run: cd ~ && tar cJf ccache.tar.xz .cache/ccache - # linux32: - # strategy: - # fail-fast: false - # matrix: - # include: - # - name: SDL 2 (OGL) - # flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - # packages: 'libsdl2-dev:i386' - # - name: SDL 2 (OGL + Shaders) - # flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL_SHADERS' - # packages: 'libsdl2-dev:i386' - # name: Linux 32-bit (${{ matrix.name }}) - # runs-on: ubuntu-24.04 - # steps: - # - name: Get Time - # id: get-time - # run: echo "time=$(date -u '+%Y-%m-%d-%H:%M:%S')" >> $GITHUB_OUTPUT - # - uses: actions/cache@v5 - # with: - # path: ~/ccache.tar.xz - # key: linux32-artifact-${{ matrix.name }}-${{ steps.get-time.outputs.time }} - # restore-keys: linux32-artifact-${{ matrix.name }}- - # - name: Unpack cache - # run: cd ~ && [ -f ccache.tar.xz ] && tar xf ccache.tar.xz || true - # - name: Checkout Repository - # uses: actions/checkout@v6 - # with: - # submodules: true - # - name: Install Dependencies - # run: | - # sudo dpkg --add-architecture i386 - # sudo apt-get update - # sudo apt-get install --no-install-recommends -y \ - # build-essential \ - # cmake ninja-build \ - # ccache \ - # gcc-multilib g++-multilib \ - # libopenal-dev:i386 \ - # zlib1g-dev:i386 \ - # ${{ matrix.packages }} - # - name: Build - # run: | - # mkdir build - # cd build - # cmake .. -GNinja \ - # -DCMAKE_BUILD_TYPE=Release \ - # -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ - # -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - # -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - # -DCMAKE_C_FLAGS='-m32' \ - # -DCMAKE_CXX_FLAGS='-m32' \ - # ${{ matrix.flags }} - # cmake --build . - # - uses: actions/upload-artifact@v6 - # with: - # name: Linux 32-bit (${{ matrix.name }}) - # path: | - # build/reminecraftpe - # build/assets - # - name: Pack cache - # run: cd ~ && tar cJf ccache.tar.xz .cache/ccache - macos: strategy: fail-fast: false diff --git a/CMakeLists.txt b/CMakeLists.txt index c8af3e6f4..89dda3cf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,17 @@ endif() # Warnings add_compile_options(-Wall -Wignored-qualifiers -Wvariadic-macros -pedantic -Wno-long-long -Wno-c++11-long-long -Wno-newline-eof -Wno-empty-translation-unit) -add_compile_options($<$:-Wc++11-extensions>) + +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND + CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 12) + set(ENABLE_WCXX11_EXTENSIONS ON) +elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(ENABLE_WCXX11_EXTENSIONS ON) +endif() +if (ENABLE_WCXX11_EXTENSIONS) + add_compile_options($<$:-Wc++11-extensions>) +endif() + if(WERROR) add_compile_options(-Werror) endif() From f77f3eedc44c65d69e105e211bef27ae45a67590 Mon Sep 17 00:00:00 2001 From: Un1q32 Date: Thu, 26 Feb 2026 21:29:14 -0500 Subject: [PATCH 2/2] do it here too --- .github/workflows/publish.yml | 63 ++++++----------------------------- 1 file changed, 10 insertions(+), 53 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 11be0162e..72553b171 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,12 +12,17 @@ jobs: include: - name: x86_64 SDL 2 flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04 arch: x86_64 + - name: i686 SDL 2 + flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32' + packages: 'gcc-multilib g++-multilib libsdl2-dev:i386 libopenal-dev:i386 zlib1g-dev:i386' + runner: ubuntu-22.04 + arch: i686 - name: aarch64 SDL 2 flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - packages: 'libsdl2-dev' + packages: 'libsdl2-dev libopenal-dev zlib1g-dev' runner: ubuntu-24.04-arm arch: aarch64 name: Linux (${{ matrix.name }}) @@ -27,14 +32,15 @@ jobs: uses: actions/checkout@v6 with: submodules: true + - name: Enable i386 packages + if: ${{ matrix.arch == 'i686' }} + run: sudo dpkg --add-architecture i386 - name: Install Dependencies run: | sudo apt-get update sudo apt-get install --no-install-recommends -y \ build-essential \ cmake ninja-build \ - libopenal-dev \ - zlib1g-dev \ ${{ matrix.packages }} - name: Build run: | @@ -96,55 +102,6 @@ jobs: # with: # asset_paths: '["platforms/linux/build-flatpak/ReMCPE-Linux-${{ matrix.arch }}.flatpak"]' - # linux32: - # strategy: - # fail-fast: false - # matrix: - # include: - # - name: SDL 2 - # flags: '-DREMCPE_PLATFORM=sdl2 -DREMCPE_GFX_API=OGL' - # packages: 'libsdl2-dev:i386' - # name: Linux 32-bit (${{ matrix.name }}) - # runs-on: ubuntu-24.04 - # steps: - # - name: Checkout Repository - # uses: actions/checkout@v6 - # with: - # submodules: true - # - name: Install Dependencies - # run: | - # sudo dpkg --add-architecture i386 - # sudo apt-get update - # sudo apt-get install --no-install-recommends -y \ - # build-essential \ - # cmake ninja-build \ - # gcc-multilib g++-multilib \ - # libopenal-dev:i386 \ - # zlib1g-dev:i386 \ - # ${{ matrix.packages }} - # - name: Build - # run: | - # mkdir build - # cd build - # cmake .. -GNinja \ - # -DCMAKE_BUILD_TYPE=Release \ - # -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ - # -DCMAKE_C_FLAGS='-m32' \ - # -DCMAKE_CXX_FLAGS='-m32' \ - # ${{ matrix.flags }} - # cmake --build . - # strip reminecraftpe - # - name: Pack release - # run: | - # mkdir ReMCPE - # mv game/assets build/reminecraftpe ReMCPE - # tar -czf ReMCPE-Linux-x86.tar.gz ReMCPE - # - uses: alexellis/upload-assets@0.4.1 - # env: - # GITHUB_TOKEN: ${{ github.token }} - # with: - # asset_paths: '["ReMCPE-Linux-x86.tar.gz"]' - macos: strategy: fail-fast: false