Assuming we go through with choosing CMake as the build system for Qt6, we would have to merge the wip/cmake branch of all repositories (including qt/qt5) to the wip/qt6 branches of all repositories.
To do that will require an elaborate dance of commits and merges across all repos.
The rough steps are as follows:
- Update qt5 repo wip/qt6 branch to contain UseLegacyInstructions flag for all qmake configs, this is just a preparation step and everything should be built as before
- Merge all wip/cmake branches into wip/qt6 branches of all submodules (qmake configs still build as before, no new cmake configs are built yet, but this does bring in the yaml files from the wip/cmake branch)
- We need to update qt5 repo wip/qt6 branch to contain all updated SHA1s of wip/qt6 repos (this will probably be the biggest issue, possible solution is to wait for the pinning bot, or use direct pushes)
- Activate the cmake based configurations in qt5 wip/qt6 by duplicating the qmake configurations, and just removing the UseLegacyInstructions flag, but only for specific platform configurations that are known to be built in the wip/cmake branch
The 3rd point is in particular painful.
Ignoring cmake completely, doing an update of qt/qt5 wip/qt6 branch currently fails due to various source incompatible changes across modules (QTextStream qualified enum usage aka Qt::hex vs hex in qtdeclarative, QLatin1Literal usage in qtremoteobjects, etc).