Update from QT5.15 to QT6.8.3 #293
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Upgrade the QT library version to QT6.8.3. This works in conjonction with the O3DE Qt6 branch.
What changes from vanilla QT ?
Nothing at the time of writing, but we will likely have to bring back some changes listed below.
Ideally we shouldn't have to customize QT as it hurts the portability of O3DE codebase. Yet some code (in particular the styling codepath) might be too much work or simply not viable to adapt on O3DE side.
- New ManualStyleSheet flag
- Styling rendering optimization
- Advanced layouting for tooltips
- MacOS ssl changes
- Tree view expand behavior changes
What remains before this PR can be merged ?
What to modify from vanilla QT : As listed above, need to prototype to see if changes are really required. If the changes are minimal, we might rely on patch files instead of custom branches owned by O3DE. One way to easily compare the styling is to compile and run O3DEQtControlGallery (under
Code/Framework/AzQtComponents). Changes required will be inCode\Framework\AzQtComponents\AzQtComponents\Components\StyleManager.cppand surrounding filesStable O3DE Qt6 branch : The target branch for QT6 is compiling and can be tested by anyone on windows and linux. But some work remains (noted by
// #QT6_TODOor in general the latest 'wip' commits). Some heavy testing will have to be done as well.Linguist module : It is currently omitted from the build as it has multiple dependencies. We currently don't use translation files in the editor so I don't believe it is blocking, but would need to be enabled back further down the road if we ever want to translate the UI.
Mac support + Pushed linux setup : This is primarly for Windows. On linux it is barebone and will need proper support for QtWayland. Mac will also have to be looked at.
How to test ?
Prerequisites are the same as building o3de from source. It is also recommended to delete your previous build folder to prevent symbols mismatch.
You will likely want to build the editor with a target project, you can use the
LY_PROJECTSflag in cmake configure to point to one of your o3de project.cmake .. -DLY_PROJECTS=PATH_TO_YOUR_PROJECTOn Windows
qt-6.8.3-rev1-windows.tar.xzinC:\Users\YOUR_USER_NAME\.o3de\3rdParty\downloaded_packagesEditortargetqt-6.8.3-rev1-windows.tar.xz.SHA256SUMSOn Linux
You must have
libicu70(can be downloaded from https://pkgs.org/search/?q=libicu70).qt-6.8.3-rev1-linux.tar.xzinYOUR_USER_NAME/.o3de/3rdParty/downloaded_packagesEditortargetqt-6.8.3-rev1-linux.tar.xz.SHA256SUMS** Temporary For X11 **
From
YOUR_USER_NAME/.o3de/3rdParty/packages/qt-6.8.3-rev1-linux/qt/lib. Copy thelibQt6XcbQpafiles into your build folder (next to whereEditorexecutable is built). Else the editor won't boot.** For Wayland **
If you want to make wayland work, these files will be of interest :
YOUR_USER_NAME/.o3de/3rdParty/packages/qt-6.8.3-rev1-linux/FindQt.cmakeand thePlatformfolderCode\Editor\Platform\Linux\Editor\Core\QtEditorApplication_linux.cpp