Development hosts and targets in Qt 6.0
September 11, 2020 by Santtu Ahonen | Comments
There are significant updates in Qt 6 that also impact the underlying way in which the development host OS and target OS are supported. The most significant changes affecting development hosts and targets include how Qt integrates to the graphics system (Blog: Technical vision for Qt 6), the C++ minimum version update from C++ 11 to C++ 17, and the transition from QMake to CMake. We have also taken the opportunity to clean up and reorganize quite a few OS-specific bits (Blog: Qt 6.0 feature freeze).
Host operating systems in Qt 6.0
Qt 6.0 will be supported on development hosts familiar for Qt 5 releases; Windows, Linux, and macOS. For RedHat Linux users, the biggest change is the move of RedHat to CentOS in CI. For developers using Windows, only 64bit Windows 10 is now supported as a host. Additionally, there are minor updates with the latest host operating system versions (with new versions being added and older versions being dropped.)
A list of the planned Qt 6.0 development hosts in our CI and testing can be found here:
- Windows 10 2004 (64bit Intel; msvc2019 or mingw81/gcc8.1)
- macOS 10.15 (64bit Intel; XCode 11)
- Linux:
- Ubuntu 20.04 (64bit Intel; gcc9)
- CentOS 8.1 (64bit Intel; gcc9)
- SLES 15 (SUSE Linux Enterprise Server, 64bit Intel; gcc10)
- Open SUSE 15.1 (64bit; gcc9)
Other operating systems and versions may well work, but those listed above are part of our CI and verification activities. For Technical Support to accept issue tickets, the issues need to be reproducible on one of the supported hosts, or there needs to be a corresponding, customer-specific, additional service to cover the issue.
Development targets supported in Qt 6.0
In order to ensure that we can focus on the essential key features, we have limited the number of development targets, and cross functionality for what hosts can be used for those targets, in Qt 6.0. This means that there will be a gradual addition of targets through Qt 6.0, 6.1, and finally 6.2 (where the plan is to ensure Qt 6.2 is on par to be compliant with the wide range of supported target platforms in Qt 5.15 LTS.)
Naturally, all development hosts listed above can act as targets. Additionally, Windows 10 1809 64bit and macOS 10.14 and 11 (formerly a.k.a. 10.16), when available, can be targeted.
Embedded Linux meta-qt6 layer is created for Yocto 3.1 Dunfell (and gcc9.3). Qt 6.0 comes with four ready-made Boot-2-Qt images for ARM-v8A 64bit (iMX8) and ARM-v7A 32bit (iMX6) based devices. One should be able to bake Qt6 support on a wide range of hardware with the new meta-Qt6, and if needed Qt Professional Services can always jump in and help. There will be more details on the new meta-Qt6 in a later blog post.
Qt 6.0 will support development for mobile targets on iOS (13 and 14) and Android (28 build-time, 21 runtime).
Development hosts and targets in Qt 5.15 that are not planned in Qt 6
In addition to documenting what will be changing, it is also important to communicate what will be discontinued or will no longer part of our CI and verification efforts.
Both Windows 7 or 8.x version support will not be available for Qt 6. Microsoft discontinued the support for both Windows versions some time ago, and as a vendor, we can no longer maintain support for these windows versions in Qt 6. Windows 7 (both 32bit and 64bit) was supported as a target in Qt 5.15 LTS and Windows 8.1 (both 32bit and 64bit) as a target in Qt 5.12 LTS. This means that we will not have 32bit Windows support available. Additionally, it will no longer be possible to create UWP applications on Windows 10.
Apple watchOS and tvOS are both also dropped from CI due to low interest and the need to free up resources. We would like to hear if you have projects depending on these targets.
The Qt community may very well maintain support for these and other environments. As usual, there is also a commercial opportunity for customers to purchase additional, extended support for dedicated hosts and targets.
Development hosts and targets planned for later 6.x releases
Windows on ARM based PCs instead of traditional Intel based PCs is under work (QTBUG-85820). The ability to support it as a full-blown host and target may take time, but the initial focus is to enable Windows on ARM as a target for desktop applications.
The support for macOS on ARM (instead of Intel-only) based HW is being worked on (QTBUG-85279) and planned for Qt 6.1. This will also cover macOS as a development host. The DIY folks may find significant parts of the work already covered in Qt 6.0.
Adding macOS as development host for embedded Linux based targets requires changes to how we create and maintain cross compilation toolchains. We plan to include containers for the cross compilation tooling host. This work is currently roadmapped into Qt 6.2 (QTBUG-81947). This same work will also impact how embedded developments target support is implemented on all hosts.
For Yocto Embedded Linux, we will follow the Yocto roadmap. Qt 5.15meta-qt5 is with Yocto 3.0 Zeus, Qt 6.0 meta-qt6 layer is with Yocto 3.1 Dunfell, and it looks like Qt 6.1 will move to Yocto 3.2 Gatesgarth. Correspondingly, Qt 6.2 most likely will be with Yocto 3.3 (depending on how the roadmaps align). The Yocto community introduced the 3.1 Dunfell as an LTS release, so we may still revisit this plan whilst moving along with the latest and greatest release. The plan for this area for Qt 6.1 and 6.2 is still open to alteration.
Real-Time Operating System (RTOS) support for Blackberry QNX and GreenHills INTEGRITY is mostly pending on vendor compiler support for C++17. The current plan is Technology Preview (TP) level support in Qt 6.1, and full support in Qt 6.2. Windriver VxWorks schedules are open as of writing this blog. RTOS support is a special breed for support; Qt comes with a reference implementation on a specific HW+RTOS combination, but most customers have something custom as the platform. Therefore, it is always recommended to work with Qt Professional Services for full support in this area.
Finally, WebAssembly (a.k.a. WASM) will be back in Qt 6.1.
Detailed planning in JIRA - Waiting for your feedback
You can follow the detailed planning & progress in JIRA under Epics:
- Qt 6.0 development hosts (QTBUG-85851)
- Qt 6.0 development targets (QTBUG-85855)
- Qt 6.1 development hosts (QTBUG-86432)
- Qt 6.1 development targets (QTBUG-86433)
Looking forward to your feedback, input and contribution!
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.8 Now!
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.