Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,19 @@ jobs:
path: build/*.dmg

linux:
runs-on: ubuntu-latest
# One build per CPU architecture. ubuntu-24.04-arm is a native arm64 runner
# (free for public repos), so the ARM build needs no cross-compiling — the
# identical steps just run on ARM hardware. CPack stamps the architecture
# into the tarball name (Linux-x86_64 / Linux-aarch64) so the two release
# assets don't collide.
strategy:
matrix:
include:
- runner: ubuntu-latest
arch: x86_64
- runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- name: Install tools + SDL3 build deps
Expand All @@ -101,7 +113,7 @@ jobs:
run: cd build && cpack
- uses: actions/upload-artifact@v4
with:
name: gsplus-linux
name: gsplus-linux-${{ matrix.arch }}
path: build/*.tar.gz

windows:
Expand Down
3 changes: 3 additions & 0 deletions gsplus/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,9 @@ else()
# On Linux the SDL3 .so is bundled by the AppImage step in CI; a plain
# TGZ relies on the system SDL3.
set(CPACK_GENERATOR "TGZ")
# Put the CPU architecture in the archive name (GSplus-x.y.z-Linux-x86_64
# vs -Linux-aarch64) so the two Linux release assets don't collide.
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
endif()
# No top-level "<name>-<version>" wrapper dir -- put files at the archive root.
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
Expand Down
Loading