From ac36bf3a2a06931b5191f272d7cab830bcf797a5 Mon Sep 17 00:00:00 2001 From: Carsten Teibes Date: Mon, 21 Sep 2026 01:20:12 +0200 Subject: [PATCH 1/2] Update CI workflow and CMake configuration --- .github/workflows/stable-compilation.yml | 30 ++++++++++++------------ CMakeLists.txt | 28 +++++++--------------- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/.github/workflows/stable-compilation.yml b/.github/workflows/stable-compilation.yml index fe54e404f9..14b40ee80c 100644 --- a/.github/workflows/stable-compilation.yml +++ b/.github/workflows/stable-compilation.yml @@ -30,35 +30,34 @@ jobs: image: # version of: # CMake | g++ | SDL | support end # # ------------------------------------------------------------- - - debian:11 # 3.18.4 | 10.2.1 | 2.0.14 | oldstable (8/24) # - - ubuntu:22.04 # 3.22.1 | 11.2.0 | 2.0.20 | LTS (4/27) # - - debian:12 # 3.25.1 | 12.2.0 | 2.26.5 | stable (6/26) # - - ubuntu:24.04 # 3.28.3 | 13.2.0 | 2.30.0 | LTS (4/29) # + - ubuntu:22.04 # 3.22.1 | 11.2.0 | 2.0.20 | LTS (5/27) # + - debian:12 # 3.25.1 | 12.2.0 | 2.26.5 | LTS (6/28) # + - debian:13 # 3.31.6 | 14.2.0 | 2.32.4 | stable (8/28) # + - ubuntu:26.04 # 4.2.3 | 15.2.0 | 3.4.2 | stable (5/31) # os: - arch: x86_64 name: ubuntu-latest - arch: arm64 - name: ubuntu-24.04-arm + name: ubuntu-26.04-arm exclude: - os: arch: arm64 - image: debian:11 + image: ubuntu:22.04 # too old, no arm images - os: - arch: arm64 - image: ubuntu:22.04 + arch: x86_64 + image: ubuntu:26.04 # recent enough to be tested in the wild steps: - name: Install dependencies run: | + SDLPKG=$(grep -q "26.04" /etc/os-release && echo "libsdl3-dev" || echo "libsdl2-dev") export DEBIAN_FRONTEND="noninteractive" apt-get update apt-get install -yqq --no-install-recommends --no-install-suggests \ ca-certificates build-essential cmake ninja-build git \ - libicu-dev libexpat1-dev libinih-dev nlohmann-json3-dev \ - libsdl2-dev libpng-dev libpixman-1-dev libfmt-dev \ - libfreetype6-dev libharfbuzz-dev libmpg123-dev libsndfile-dev \ - libvorbis-dev libopusfile-dev libspeexdsp-dev liblhasa-dev \ - libdrm-dev libgbm-dev # only needed for sdl2 on debian 11 + libicu-dev libexpat1-dev libinih-dev nlohmann-json3-dev libpng-dev libpixman-1-dev \ + libfmt-dev libfreetype6-dev libharfbuzz-dev libmpg123-dev libsndfile-dev \ + libvorbis-dev libopusfile-dev libspeexdsp-dev liblhasa-dev $SDLPKG - name: Clone Repository uses: actions/checkout@v7 @@ -74,11 +73,12 @@ jobs: - name: Compile run: | - VER="(GA, `date +%Y-%m-%d`)" + VER="(GA-`uname -m`, `date +%Y-%m-%d`)" + SDLTARGET=$(grep -q "26.04" /etc/os-release && echo "SDL3" || echo "SDL2") cmake -G Ninja -B build . \ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_CXX_FLAGS="-Wall -Wextra -Wdeprecated -fsanitize=address,undefined" \ - -DPLAYER_TARGET_PLATFORM=SDL2 \ + -DPLAYER_TARGET_PLATFORM="$SDLTARGET" \ -DPLAYER_BUILD_LIBLCF=ON -DPLAYER_VERSION_APPEND="$VER" cmake --build build diff --git a/CMakeLists.txt b/CMakeLists.txt index a66e526ed7..aceff79451 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.18...3.31 FATAL_ERROR) +cmake_minimum_required(VERSION 3.22...4.4 FATAL_ERROR) project(EasyRPG_Player VERSION 0.8.1 DESCRIPTION "Interpreter for RPG Maker 2000/2003 games" @@ -643,7 +643,7 @@ elseif(PLAYER_TARGET_PLATFORM STREQUAL "SDL1") USE_SDL=1 EASYRPG_CONFIG_NAME="config_sdl1.ini") elseif(PLAYER_TARGET_PLATFORM STREQUAL "libretro") - target_compile_definitions(${PROJECT_NAME} PUBLIC PLAYER_UI=LibretroUi USE_LIBRETRO=1) + target_compile_definitions(${PROJECT_NAME} PUBLIC PLAYER_UI=LibretroUi USE_LIBRETRO) set(PLAYER_BUILD_EXECUTABLE OFF) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/builds/libretro) target_link_libraries(${PROJECT_NAME} retro_common) @@ -753,7 +753,7 @@ elseif(PLAYER_AUDIO_BACKEND STREQUAL "AESND") target_sources(${PROJECT_NAME} PRIVATE src/platform/wii/audio.cpp src/platform/wii/audio.h) - target_compile_definitions(${PROJECT_NAME} PUBLIC AUDIO_AESND=1) + target_compile_definitions(${PROJECT_NAME} PUBLIC AUDIO_AESND) elseif(PLAYER_AUDIO_BACKEND STREQUAL ${PLAYER_TARGET_PLATFORM}) elseif(PLAYER_AUDIO_BACKEND STREQUAL "OFF") @@ -870,16 +870,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten") endif() # Endianess check -if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20) - if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") - target_compile_definitions(${PROJECT_NAME} PRIVATE WORDS_BIGENDIAN=1) - endif() -else() - include(TestBigEndian) - test_big_endian(WORDS_BIGENDIAN) - if(WORDS_BIGENDIAN) - target_compile_definitions(${PROJECT_NAME} PRIVATE WORDS_BIGENDIAN=1) - endif() +if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") + target_compile_definitions(${PROJECT_NAME} PRIVATE WORDS_BIGENDIAN) endif() # App Icon (for macOS) @@ -1064,18 +1056,14 @@ if(PLAYER_HAS_AUDIO) set(PLAYER_AUDIO_RESAMPLER "Auto" CACHE STRING "Audio resampler to use. Options: Auto speexdsp samplerate OFF") set_property(CACHE PLAYER_AUDIO_RESAMPLER PROPERTY STRINGS Auto speexdsp samplerate OFF) - if(PLAYER_AUDIO_RESAMPLER STREQUAL "Auto") - set(PLAYER_AUDIO_RESAMPLER_IS_AUTO ON) - endif() - cmake_dependent_option(PLAYER_WITH_SPEEXDSP "Use speexdsp as resampler when available." ON - "PLAYER_HAS_AUDIO;PLAYER_AUDIO_RESAMPLER_IS_AUTO" OFF) + [[PLAYER_AUDIO_RESAMPLER STREQUAL "Auto"]] OFF) cmake_dependent_option(PLAYER_WITH_SAMPLERATE "Use libsamplerate as resampler when available." ON - "PLAYER_HAS_AUDIO;PLAYER_AUDIO_RESAMPLER_IS_AUTO" OFF) + [[PLAYER_AUDIO_RESAMPLER STREQUAL "Auto"]] OFF) - if(PLAYER_AUDIO_RESAMPLER_IS_AUTO) + if(PLAYER_AUDIO_RESAMPLER STREQUAL "Auto") player_find_package(NAME speexdsp CONDITION PLAYER_WITH_SPEEXDSP DEFINITION HAVE_LIBSPEEXDSP From b0f20afe6421487c9fe4555e78565609f784afa7 Mon Sep 17 00:00:00 2001 From: Carsten Teibes Date: Mon, 21 Sep 2026 11:42:14 +0200 Subject: [PATCH 2/2] Remove old SDL2 workaround --- src/platform/sdl/sdl2_ui.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/platform/sdl/sdl2_ui.cpp b/src/platform/sdl/sdl2_ui.cpp index 7d0413dab4..8d31c20f23 100644 --- a/src/platform/sdl/sdl2_ui.cpp +++ b/src/platform/sdl/sdl2_ui.cpp @@ -571,7 +571,6 @@ void Sdl2Ui::ToggleStretch() { } void Sdl2Ui::ToggleVsync() { -#if SDL_VERSION_ATLEAST(2, 0, 18) // Modifying vsync requires recreating the renderer vcfg.vsync.Toggle(); @@ -581,9 +580,6 @@ void Sdl2Ui::ToggleVsync() { } else { Output::Warning("Unable to toggle vsync. This is likely a problem with your system configuration."); } -#else - Output::Warning("Cannot toogle vsync: SDL2 version too old (must be 2.0.18)"); -#endif } void Sdl2Ui::SetScreenScale(int scale) { @@ -1285,9 +1281,7 @@ void Sdl2Ui::vGetConfig(Game_ConfigVideo& cfg) const { cfg.renderer.Lock("SDL2 (Software)"); #endif -#if SDL_VERSION_ATLEAST(2, 0, 18) cfg.vsync.SetOptionVisible(true); -#endif cfg.fullscreen.SetOptionVisible(true); cfg.fps_limit.SetOptionVisible(true); #if defined(SUPPORT_ZOOM) && !defined(__ANDROID__)