Switch AppImage to SDL3+SDL2-compat

This commit is contained in:
Cameron Gutman 2026-01-27 20:40:20 -06:00
commit e1bbf8144e
2 changed files with 30 additions and 9 deletions

View file

@ -32,26 +32,39 @@ jobs:
qml6-module-qtqml-workerscript qml6-module-qtquick-window qml6-module-qtquick python3-pip nasm libgbm-dev libdrm-dev libfreetype-dev libasound2-dev \ qml6-module-qtqml-workerscript qml6-module-qtquick-window qml6-module-qtquick python3-pip nasm libgbm-dev libdrm-dev libfreetype-dev libasound2-dev \
libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev \ libdbus-1-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libibus-1.0-dev libpulse-dev libudev-dev libx11-dev libxcursor-dev \
libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev libxcb-dri3-dev libx11-xcb-dev \ libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev libxcb-dri3-dev libx11-xcb-dev \
wayland-protocols libopus-dev libvdpau-dev libgl-dev libpipewire-0.3-dev vulkan-sdk libxfixes-dev libxtst-dev wayland-protocols libopus-dev libvdpau-dev libgl-dev libpipewire-0.3-dev liburing-dev vulkan-sdk cmake
sudo pip3 install meson sudo pip3 install meson
mkdir -p dep_root/{bin,include,lib} mkdir -p dep_root/{bin,include,lib}
echo "DEP_ROOT=$PWD/dep_root" >> "${GITHUB_ENV}" echo "DEP_ROOT=$PWD/dep_root" >> "${GITHUB_ENV}"
echo "$PWD/dep_root/bin" >> "${GITHUB_PATH}" echo "$PWD/dep_root/bin" >> "${GITHUB_PATH}"
- name: Checkout SDL - name: Checkout SDL3
uses: actions/checkout@v5 uses: actions/checkout@v5
with: with:
repository: libsdl-org/SDL repository: libsdl-org/SDL
ref: 3eba0b6f8a21392f47b1b53a476e7633048de9b1 ref: 3bde3e24069db59133bc1e8dbe3c693008821a93
path: deps/SDL path: deps/SDL
- name: Build SDL - name: Build SDL3
working-directory: deps/SDL working-directory: deps/SDL
run: | run: |
./autogen.sh cmake -DSDL_KMSDRM=OFF -DSDL_TEST_LIBRARY=OFF -DSDL_INSTALL_DOCS=OFF -S . -B build
./configure cmake --build build -j
make -j$(nproc) sudo cmake --install build
sudo make install
- name: Checkout sdl2-compat
uses: actions/checkout@v5
with:
repository: libsdl-org/sdl2-compat
ref: 1c8ece4de9db96d01f99296c26a87a4cabb72f54
path: deps/sdl2-compat
- name: Build sdl2-compat
working-directory: deps/sdl2-compat
run: |
cmake -DSDL2COMPAT_TESTS=OFF -S . -B build
cmake --build build -j
sudo cmake --install build
- name: Checkout SDL_ttf - name: Checkout SDL_ttf
uses: actions/checkout@v5 uses: actions/checkout@v5

View file

@ -52,9 +52,17 @@ pushd $BUILD_FOLDER
make install || fail "Make install failed!" make install || fail "Make install failed!"
popd popd
# We need to manually place SDL3 in our AppImage, since linuxdeployqt
# cannot see the dependency via ldd when it looks at SDL2-compat.
echo Staging SDL3 library
mkdir -p $DEPLOY_FOLDER/usr/lib
cp /usr/local/lib/libSDL3.so.0 $DEPLOY_FOLDER/usr/lib/
echo Creating AppImage echo Creating AppImage
pushd $INSTALLER_FOLDER pushd $INSTALLER_FOLDER
VERSION=$VERSION linuxdeployqt $DEPLOY_FOLDER/usr/share/applications/com.moonlight_stream.Moonlight.desktop -qmake=qmake6 -qmldir=$SOURCE_ROOT/app/gui -appimage -extra-plugins=tls || fail "linuxdeployqt failed!" VERSION=$VERSION linuxdeployqt $DEPLOY_FOLDER/usr/share/applications/com.moonlight_stream.Moonlight.desktop \
-qmake=qmake6 -qmldir=$SOURCE_ROOT/app/gui -appimage -extra-plugins=tls \
-executable=$DEPLOY_FOLDER/usr/lib/libSDL3.so.0 || fail "linuxdeployqt failed!"
popd popd
echo Build successful echo Build successful