[Development] Proposing CMake as build tool for Qt 6

Palaraja, Kavindra KPalaraja at luxoft.com
Thu Jun 6 15:37:35 CEST 2019


Hi,

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.

--
Kavindra.

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

Hi,

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
      qtdeclarative.

    * 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:

    https://bugreports.qt.io/browse/QTBUG-73351

as well as in the Qt Project Wiki at

    https://wiki.qt.io/CMake_Port

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

   https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/README.md?h=wip/cmake

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.


Simon

________________________________

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/a0750c26/attachment.html>


More information about the Development mailing list