[Development] Proposing CMake as build tool for Qt 6

Simon Hausmann Simon.Hausmann at qt.io
Thu Jun 6 16:02:44 CEST 2019


I think our users should eventually end up in area that is currently called the "CMake Manual" in the docs. For example through one of the various overviews. As far as I can tell that page is currently located at


That page targets application developers and correctly also refers to CMake's own manual at


It might make sense to make that a more concrete link to the exactly version of CMake that Qt requires at the least. What do you think?

This page might also benefit from a section or sub-page that provides help for qmake users on how to transition to CMake.

Finally, the existing documentation about how to build Qt from source -- https://doc.qt.io/qt-5/build-sources.html -- will require changes. It is our intention (or at least mine ;-) to transition the internal docs that address that, currently located at cmake/README.md, to those pages. We have not yet achieved the desired degree of convenience for building Qt with CMake though, and we have not reached the target branch yet. But once in wip/qt6 I think it might make sense to move things across.


From: Development <development-bounces at qt-project.org> on behalf of Palaraja, Kavindra <KPalaraja at luxoft.com>
Sent: Thursday, June 6, 2019 15:37
To: development at qt-project.org
Subject: Re: [Development] Proposing CMake as build tool for Qt 6


Just curious, do you have a link to what the draft documentation for CMake looks like?

qmake's documentation has always been an afterthought. The documentation equivalent for CMake should be better than that – at the very least, it shouldn’t result in another https://wiki.qt.io/Undocumented_QMake and such.



From: Development <development-bounces at qt-project.org> on behalf of Simon Hausmann <Simon.Hausmann at qt.io>
Date: Thursday, 6. June 2019 at 13:46
To: "development at qt-project.org" <development at qt-project.org>
Subject: [Development] Proposing CMake as build tool for Qt 6


In the past months we, some developers from the Qt Company and KDAB,

have made good progress on the port of Qt to use CMake as build tool.

Since the initial prototype, the port has advanced very well and its

current state can be summarized roughly like this:

    * Builds on

      * Windows (desktop)

      * macOS

      * Linux (desktop and embedded)

      * Android (running not tested yet)

    * Static builds and plugins are implemented.

    * Many examples and tests are compiling and running.

    * Several modules outside of qtbase have been ported as well,

      including qtsvg, qtimageformats, qnetworkauth as well as parts of


    * There are early-warning style CI builds (no tests) running and

      reporting results to patches uploaded to Gerrit.

    * There is tooling in-place to re-generate cmake files from

      .pro/configure.json files, providing a method of dealing with the

      long term maintenance of merging from qmake based Qt (5) branches.

    * Very basic support for compiling applications (not modules) with qmake

      against a CMake built Qt.

Many of the more fine-grained details are tracked in JIRA under an Epic:


as well as in the Qt Project Wiki at


Detailed steps on how to build Qt with CMake are available at


There are some caveats with the above as well, but overall we feel confident

about it. Therefore we would like to propose CMake as the build tool for Qt 6

and would like to achieve a decision within the Qt project by lazy consensus.

For the decision making it is important to also lay out the proposed path

forward. We would like to merge the wip/cmake branch(es) into the wip/qt6

branch of qtbase and other applicable repositories. This would pave the way

for a transition that could look like this:

    (1) The CMake build system related files and scripts become visible

    to Qt 6 development. Both build systems co-exist.

    (2) The wip/qt6 branches continue to be built using qmake in the CI

    until we are ready to switch.

    (3) When the corresponding changes in Coin and qtbase are ready, a

    new configuration file in qtbase would switch the qtbase build over

    to use cmake for some configurations.

    (4) Through iteration all configurations are changed to use cmake.

    (5) The .pro/.pri files of projects can be removed -- the qmake

    sources themselves as well as mkspecs/features (and potentially

    other files) remain.

We are looking forward to a productive discussion and feedback.



This e-mail and any attachment(s) are intended only for the recipient(s) named above and others who have been specifically authorized to receive them. They may contain confidential information. If you are not the intended recipient, please do not read this email or its attachment(s). Furthermore, you are hereby notified that any dissemination, distribution or copying of this e-mail and any attachment(s) is strictly prohibited. If you have received this e-mail in error, please immediately notify the sender by replying to this e-mail and then delete this e-mail and any attachment(s) or copies thereof from your system. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190606/5bb25e85/attachment.html>

More information about the Development mailing list