- Add AppImageBuilder/package-citron-linux.sh: full AppImage packaging
script with debloating (strips Qt Multimedia shared FFmpeg ~100 MB),
and produces a tar.zst portable archive alongside the AppImage.
- Add AppImageBuilder/quick-sharun.sh: sharun-based launcher helper.
- Add dist/org.citron_emu.citron.png: application icon for AppImage.
build-citron-linux.sh:
- Add CITRON_USE_QT_MULTIMEDIA=OFF and QT_NO_PRIVATE_MODULE_WARNING=ON
to common cmake args, preventing Qt Multimedia's shared FFmpeg from
being linked at all.
- Guard -mtls-dialect=gnu2 behind an x86_64 check so aarch64 builds
no longer pass an unsupported flag.
- Expand system dependency setup across all package managers (apt,
pacman, dnf, yum, zypper, emerge) to include: libudev, libGL/OpenGL
headers (required by aqt Qt6 cmake even for Vulkan-only builds),
VAAPI/VDPAU hw-accel libs, and X11/XCB libs required by SDL2 and Qt.
CMakeModules/qt_download.cmake:
- Add aarch64 Linux aqt target (linux_arm64 / linux_gcc_arm64) so
Qt is downloaded for the correct host arch on arm64 builders.
- Remove qtmultimedia from aqt --modules download; it is permanently
dead code under Qt6 and was causing recurring CI install warnings.
CMakeLists.txt:
- Make Qt6 Multimedia an optional find_package component, only included
when CITRON_USE_QT_MULTIMEDIA is ON, so the cmake flag is functional.
externals/libusb/CMakeLists.txt:
- Resolve LIBUSB_SRC_DIR via CPM cache variables (LIBUSB_CPM_SOURCE_DIR
or libusb_src_SOURCE_DIR) before falling back to the submodule path,
fixing CPM-sourced libusb builds on Linux.