Skip to content

Commit 0eee36c

Browse files
ci: Add GCC build job for Linux (#2027)
* Add GCC CI build job * gcc-ci: Change Clang CI job naming to avoid confusion * gcc-ci: Remove GCC CI job from pre-release This also removes the packaging step for linux-sdl-gcc and linux-qt-gcc so that the only available artifacts for download are compiled with Clang * gcc-ci: Remove -clang prefix from Clang build jobs * hot-fix * specify gcc-14 * hot-fix: use system rapidjson * use rapidjson-dev * revert "use system rapidjson"
1 parent fc50567 commit 0eee36c

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

.github/workflows/build.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,78 @@ jobs:
376376
name: shadps4-linux-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
377377
path: Shadps4-qt.AppImage
378378

379+
linux-sdl-gcc:
380+
runs-on: ubuntu-24.04
381+
needs: get-info
382+
steps:
383+
- uses: actions/checkout@v4
384+
with:
385+
submodules: recursive
386+
387+
- name: Install dependencies
388+
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 gcc-14 build-essential libasound2-dev libpulse-dev libopenal-dev libudev-dev
389+
390+
- name: Cache CMake Configuration
391+
uses: actions/cache@v4
392+
env:
393+
cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
394+
with:
395+
path: |
396+
${{github.workspace}}/build
397+
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
398+
restore-keys: |
399+
${{ env.cache-name }}-
400+
401+
- name: Cache CMake Build
402+
uses: hendrikmuhs/[email protected]
403+
env:
404+
cache-name: ${{ runner.os }}-sdl-cache-cmake-build
405+
with:
406+
append-timestamp: false
407+
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
408+
409+
- name: Configure CMake
410+
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
411+
412+
- name: Build
413+
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
414+
415+
linux-qt-gcc:
416+
runs-on: ubuntu-24.04
417+
needs: get-info
418+
steps:
419+
- uses: actions/checkout@v4
420+
with:
421+
submodules: recursive
422+
423+
- name: Install dependencies
424+
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 gcc-14 build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev libudev-dev
425+
426+
- name: Cache CMake Configuration
427+
uses: actions/cache@v4
428+
env:
429+
cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
430+
with:
431+
path: |
432+
${{github.workspace}}/build
433+
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
434+
restore-keys: |
435+
${{ env.cache-name }}-
436+
437+
- name: Cache CMake Build
438+
uses: hendrikmuhs/[email protected]
439+
env:
440+
cache-name: ${{ runner.os }}-qt-cache-cmake-build
441+
with:
442+
append-timestamp: false
443+
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
444+
445+
- name: Configure CMake
446+
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
447+
448+
- name: Build
449+
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
450+
379451
pre-release:
380452
if: github.ref == 'refs/heads/main' && github.repository == 'shadps4-emu/shadPS4' && github.event_name == 'push'
381453
needs: [get-info, windows-sdl, windows-qt, macos-sdl, macos-qt, linux-sdl, linux-qt]

0 commit comments

Comments
 (0)