[Development] Proposing CMake as build tool for Qt 6

Michael Winkelmann michael.winkelmann at qt.io
Thu Jun 6 19:19:41 CEST 2019

Awesome news!
Any ideas/plans for WebAssembly?

On 06.06.19 13:45, Simon Hausmann wrote:
> 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
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development

Michael Winkelmann
Qt Advisor

The Qt Company GmbH
Rudower Chaussee 13
D-12489 Berlin
michael.winkelmann at qt.io

Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht
Charlottenburg, HRB 144331 B

More information about the Development mailing list