Commit Graph

1 Commits

Author SHA1 Message Date
cheezwiz7899 62542c8a50 build(linux): add pkgforge AppImage builder and fix aarch64/Qt/libusb issues
- 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.
2026-07-01 02:12:16 +10:00