Skip to content

build: update to Qt 6.11.1#14552

Open
HTRamsey wants to merge 1 commit into
mavlink:masterfrom
HTRamsey:chore/qt-6.11.1
Open

build: update to Qt 6.11.1#14552
HTRamsey wants to merge 1 commit into
mavlink:masterfrom
HTRamsey:chore/qt-6.11.1

Conversation

@HTRamsey

Copy link
Copy Markdown
Member

Summary

Updates the Qt target to 6.11.1 and the supported minimum to 6.11.0.

Changes

  • qt_version 6.10.3 → 6.11.1, qt_minimum_version 6.10.0 → 6.11.0 (.github/build-config.json).
  • iOS deployment target 14.0 → 17.0 — Qt 6.11's minimum supported iOS is 17 (QT_SUPPORTED_MIN_IOS_VERSION in Qt's .cmake.conf); 14.0 is no longer functional. macOS stays 13.0, matching Qt's minimum. Updated both build-config.json and the cmake/presets/iOS.json preset.
  • QGC_QT_DISABLE_DEPRECATED_UP_TO / QGC_QT_ENABLE_STRICT_MODE_UP_TO 0x060A000x060B00 to track the new floor.
  • Sync GStreamer color-transfer mapping to Qt 6.11.1's QGstCaps::formatAndVideoInfo(): SMPTE240MGamma22 and GAMMA18BT709 (previously swapped relative to Qt). Updated the unit test and added the missing GAMMA18 assertion.
  • Refreshed Qt-version references in comments (Y444 omission note, wayland plugin note).

Verification

  • Cross-checked every API deprecated in Qt 6.11 against the codebase — none are used.
  • Confirmed against local Qt 6.11.1 source: min macOS 13 (matches), min iOS 17, CMake floor 3.22 (QGC pins 3.25), Android Gradle 9.3.1 / AGP 9.0.0 / JDK 17 (already aligned).
  • QVideoFrameFormat::PixelFormat still has no Format_YUV444* in 6.11.1, so the Y444 omission remains correct.

Note: the color-transfer change alters behavior for SMPTE240M/GAMMA18 content (both rare) to match Qt's own mapping.

Copilot AI review requested due to automatic review settings June 17, 2026 08:45
@github-actions github-actions Bot added github_actions Pull requests that update GitHub Actions code CMake Tests Video size/XS labels Jun 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates QGroundControl’s Qt baseline to the Qt 6.11 line (target 6.11.1, minimum 6.11.0) and aligns related build/runtime expectations (iOS deployment target and GStreamer ↔ Qt color-transfer mapping) so CI and multimedia behavior match upstream Qt 6.11.

Changes:

  • Bumped Qt target/minimum versions and updated the project’s “disable deprecated / strict mode” cutoffs to 0x060B00.
  • Raised the iOS deployment target to 17.0 to match Qt 6.11’s minimum supported iOS version (including the iOS CMake preset).
  • Synced GStreamer color-transfer mapping/tests to Qt 6.11.1 behavior (SMPTE240M and GAMMA18 adjustments) and refreshed related comments.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/build-config.json Updates Qt target/min versions and iOS deployment target used by CI/tooling.
cmake/presets/iOS.json Raises iOS deployment target in the iOS CMake preset to 17.0.
cmake/CustomOptions.cmake Updates Qt deprecation/strict-mode cutoff hex values to Qt 6.11 (0x060B00).
cmake/install/Install.cmake Refreshes Wayland plugin comment while keeping deployment plugin inclusion intact.
src/VideoManager/VideoReceiver/GStreamer/GstAppSinkAdapter.cc Adjusts GStreamer→Qt transfer-function mapping to match Qt 6.11.1’s backend mapping.
src/VideoManager/VideoReceiver/GStreamer/gstqgc/gstqgcvideosinkbin.cc Updates Y444/Qt version comment in caps documentation.
test/VideoManager/GStreamer/GStreamerTest.cc Updates/extends unit tests for the revised transfer-function mapping and comment refresh.

@HTRamsey HTRamsey force-pushed the chore/qt-6.11.1 branch 7 times, most recently from 1de79c2 to ac5f389 Compare June 18, 2026 09:29
@github-actions github-actions Bot added the Tools label Jun 18, 2026
@github-actions github-actions Bot removed the Tools label Jun 18, 2026
@github-actions github-actions Bot added the Tools label Jun 18, 2026
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 30.24%. Comparing base (f29efd3) to head (75c29be).
⚠️ Report is 104 commits behind head on master.

Files with missing lines Patch % Lines
src/QGCApplication.cc 66.66% 0 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #14552      +/-   ##
==========================================
+ Coverage   25.47%   30.24%   +4.77%     
==========================================
  Files         769      772       +3     
  Lines       65912    67022    +1110     
  Branches    30495    31135     +640     
==========================================
+ Hits        16788    20270    +3482     
+ Misses      37285    32970    -4315     
- Partials    11839    13782    +1943     
Flag Coverage Δ
unittests 30.24% <75.00%> (+4.77%) ⬆️

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

Files with missing lines Coverage Δ
src/Utilities/Network/QGCNetworkHelper.h 12.50% <ø> (+12.50%) ⬆️
...nager/VideoReceiver/GStreamer/GstAppSinkAdapter.cc 32.95% <100.00%> (+0.53%) ⬆️
...eoReceiver/GStreamer/HwBuffers/GstHwVideoBuffer.cc 70.00% <ø> (ø)
...deoReceiver/GStreamer/gstqgc/gstqgcvideosinkbin.cc 38.46% <ø> (-0.64%) ⬇️
src/QGCApplication.cc 19.53% <66.66%> (-1.92%) ⬇️

... and 377 files with indirect coverage changes


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 cb2e6e0...75c29be. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Bump Qt target 6.10.3 -> 6.11.1 and minimum 6.10.0 -> 6.11.0.

- ios_deployment_target 14.0 -> 17.0: Qt 6.11 minimum supported iOS is 17
  (QT_SUPPORTED_MIN_IOS_VERSION). macOS stays 13, matching Qt's minimum.
- QGC_QT_DISABLE_DEPRECATED_UP_TO / ENABLE_STRICT_MODE_UP_TO 0x060A00 ->
  0x060B00 to track the new floor.
- Sync GStreamer color-transfer map to Qt 6.11.1 QGstCaps::formatAndVideoInfo:
  SMPTE240M now maps to Gamma22, GAMMA18 to BT709 (were swapped); update the
  unit test accordingly and add the missing GAMMA18 case.
- Refresh Qt-version references in comments (Y444 omission, wayland plugin).

Network helper follow-ons for the 6.11 floor:
- QGCNetworkHelper: add per-request TCP keep-alive + ConnectionCacheExpiry
  RequestConfig fields and apply them in configureRequest; wire them into
  QGeoTileFetcherQGC tile/terrain requests to keep sockets warm against Qt
  6.11's new 2-min idle-connection reaping.
- Reuse Qt facilities: classifyHttpStatus compares via QHttpServerResponder
  StatusCode; URL helpers use QUrl::adjusted; header setters use
  QHttpHeaders::WellKnownHeader; drop hand-rolled urlFileName for QUrl::fileName.
- Cover the new keep-alive fields in QGCNetworkHelperTest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake github_actions Pull requests that update GitHub Actions code size/S Tests Tools Video

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants