Skip to content

chore: migrate to qt tray for all platforms#5260

Draft
ReenigneArcher wants to merge 4 commits into
masterfrom
chore/migrate-to-qt-tray
Draft

chore: migrate to qt tray for all platforms#5260
ReenigneArcher wants to merge 4 commits into
masterfrom
chore/migrate-to-qt-tray

Conversation

@ReenigneArcher
Copy link
Copy Markdown
Member

@ReenigneArcher ReenigneArcher commented Jun 7, 2026

Description

Migrates to QT tray on all platforms. Do not merge until after has merged. LizardByte/tray#145

TODO:

  • Test windows standalone version
  • Test windows service version
  • Test macOS

Screenshot

Issues Fixed or Closed

Roadmap Issues

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Unit tests have been added or updated for any new or modified functionality

AI Usage

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 7, 2026

Bundle Report

Bundle size has no change ✅

@ReenigneArcher ReenigneArcher force-pushed the chore/migrate-to-qt-tray branch 5 times, most recently from 0a970e1 to 2d4b05e Compare June 7, 2026 03:20
@ReenigneArcher ReenigneArcher force-pushed the chore/migrate-to-qt-tray branch from 5f69700 to f6f0e67 Compare June 7, 2026 14:38
Introduce cmake/packaging/qt.cmake with sunshine_find_qt_tool and sunshine_require_qt_tool to locate Qt deployment tools. Wire macdeployqt into macos packaging (run during install to fix up .app bundles) when the tray backend is enabled, and integrate windeployqt into Windows packaging: add post-build deploy commands for binaries and run windeployqt at install time with curated options. These changes ensure Qt runtimes are bundled for the tray::tray backend on macOS and Windows.
Update Windows CI linkage check to avoid false positives by computing binary_dir and passing it into awk. When a linked DLL originates from a toolchain bin path, awk now checks for the DLL next to the binary (binary_dir/$1) and suppresses the warning if the file is present. Also ensure 'not found' cases are printed and skipped. This prevents reporting DLLs that are intentionally bundled with the binary.
Introduce a CMake helper to deploy MSYS2/MinGW runtime DLLs discovered via ldd and cygpath. Added cmake/packaging/windows_runtime_deps.cmake which requires SUNSHINE_RUNTIME_TARGET and SUNSHINE_RUNTIME_OUTPUT_DIR, uses ldd to enumerate dependencies, converts MSYS paths with cygpath, copies needed DLLs into the output dir, and recursively processes newly copied DLLs. Hooked this script into existing packaging: qt.cmake's deploy function now invokes the script for the given target, and windows.cmake runs it after windeployqt and fails the build on errors. This ensures MSYS2 runtime DLLs reported by ldd are bundled with the application.
@ReenigneArcher ReenigneArcher force-pushed the chore/migrate-to-qt-tray branch from f6f0e67 to 4fe76cc Compare June 7, 2026 17:16
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 7, 2026

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (master@6249301). Learn more about missing BASE report.
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##             master    #5260   +/-   ##
=========================================
  Coverage          ?   14.68%           
=========================================
  Files             ?       99           
  Lines             ?    21901           
  Branches          ?    10022           
=========================================
  Hits              ?     3217           
  Misses            ?    16943           
  Partials          ?     1741           
Flag Coverage Δ
Archlinux 11.22% <ø> (?)
FreeBSD-amd64 13.35% <ø> (?)
Linux-AppImage 12.15% <ø> (?)
Windows-AMD64 14.85% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6249301...4fe76cc. Read the comment docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant