Qt 6 - Based Qt Creator Snapshots

Qt 6 - Based Snapshots

We finally have some public snapshots of Qt Creator built with Qt 6!

These snapshots are based on the 4.15 branch of Qt Creator and the upcoming Qt 6.1 release. You find them on our download server here: https://download.qt.io/snapshots/qtcreator_qt6/.

Known Issues

All the profilers are turned off (QML, perf, CTF) because they rely on code that uses QSGMaterialShader, which has changed substantially. Qbs also does not support building with Qt 6 yet, so it is turned off as well. The FakeVim plugin does not compile with Qt 6 and MSVC at the moment, because of issues with recursive QMaps that have keys with a custom operator==.

So, "What did it take you to get to this state?", you might ask. We tried to link changes that were purely done to support building and running with Qt 6 with QTCREATORBUG-24098. The first comment on that task lists some more patches that were done before we created the task for tracking. The biggest change that we did probably was that we completely switched from QRegExp to QRegularExpression. This was also a somewhat tricky change, since the API of QRegularExpression sometimes differs subtly from QRegExp (the Qt documentation has some details on this). Doing the change was not strictly necessary though, since QRegExp is still available in the Core5Compat module of Qt 6. Similarly tricky, though much smaller in scope, was the change from QStringRef to QStringView. As with QRegExp, QStringRef is still available in Core5Compat, though some related APIs are gone from other classes like QString.

All in all supporting the Qt 6 based build consisted of a lot of smaller changes all over the codebase. In some regard we also made our lives harder as strictly necessary, because we did not want to raise the minimum required Qt version for building Qt Creator to Qt 5.15. Some replacements for API that is gone our changed in Qt 6 are only available in Qt 5.15 (and some only in 5.15.2 for QStringView), so we had to add some compatibility APIs for the Qt Creator codebase ourselves.

Building Qt Creator with Qt 6

Qt Creator builds with Qt 5 and Qt 6 out of the box (that is at least true for the CMake build). Just make sure that you have the Core5Compat module installed, which is a separate component in the Qt installer, and not installed by default. Otherwise just follow the standard build instructions from Qt Creator's README, and point the CMAKE_PREFIX_PATH to your Qt 6 installation.

Going Forward

We are not quite sure yet when we want and can switch to Qt 6 for our main prebuilt packages. We definitely want it to happen rather sooner than later. That said, we also want Qt Creator to be buildable with Qt 5 for some time after that happens, too.

It would be great to get some feedback from you, on how the Qt 6 based build works for your projects and use cases. When you install the snapshot you can make it aware of an existing Qt installation with the "Link with Qt" button in Tools > Options > Kits > Qt Versions (or Qt Creator > Preferences > Kits > Qt Versions on macOS). Please report issues in our bug tracker, project QTCREATORBUG, and assign the label "qtcreator_qt6". You can find the list of currently known issues on our bug tracker as well.

Blog Topics: