[Development] Proposing CMake as build tool for Qt 6

Jean-Michaël Celerier jeanmichael.celerier at gmail.com
Thu Jun 6 16:55:03 CEST 2019


> Looking at the CMake documentation – it looks like a maze.

I would recommend starting at the cmake-buildsystem doc page which gives a
general overview of the concepts of CMake :
https://cmake.org/cmake/help/v3.15/manual/cmake-buildsystem.7.html
It is also available as a man page for unix users (man cmake-buildsystem).
Also multiple IDEs can integrate with CMake's documentation nowadays :
QtCreator (the doc being available in QtHelp format :
https://cmake.org/documentation/), Visual Studio (
https://devblogs.microsoft.com/cppblog/in-editor-documentation-for-cmake-in-visual-studio/).
..
It's pretty nice to be able to do F1 in target_whatever_foobar in QtCreator
and get the relevant help shown :-)

Best,
Jean-Michaël



On Thu, Jun 6, 2019 at 4:42 PM Palaraja, Kavindra <KPalaraja at luxoft.com>
wrote:

> Thanks for the links.
>
>
>
> Looking at the CMake documentation – it looks like a maze. So definitely,
> content that resembles a “Migration Guide” would be helpful for users.
> Especially if there are cases where there’s no 1-1 mapping from qmake -->
> CMake.
>
>
>
> Yes, the exact link to the CMake version would definitely be necessary.
>
>
>
> Regards,
>
> Kavindra.
>
>
>
> *From: *Simon Hausmann <Simon.Hausmann at qt.io>
> *Date: *Thursday, 6. June 2019 at 16:02
> *To: *"Palaraja, Kavindra" <KPalaraja at luxoft.com>, "
> development at qt-project.org" <development at qt-project.org>
> *Subject: *Re: [Development] Proposing CMake as build tool for Qt 6
>
>
>
> Hi,
>
>
>
> 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
>
>
>
>     https://doc.qt.io/qt-5/cmake-manual.html
>
>
>
>
>
> That page targets application developers and correctly also refers to
> CMake's own manual at
>
>
>
>     https://cmake.org/documentation/
>
>
>
> 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.
>
>
>
>
>
>
>
> Simon
>
>
>
>
> ------------------------------
>
> *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
>
>
>
> 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.
>
> ------------------------------
>
> 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.
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190606/b4214e57/attachment.html>


More information about the Development mailing list