[Development] CMake Workshop Summary

Kevin Funk kevin.funk at kdab.com
Wed Feb 13 14:58:18 CET 2019

On Wednesday, 13 February 2019 11:22:15 CET Vitaly Fanaskov wrote:
> Hi Simon,
> Thank you for the update.
> It's not clear why you included version to a package name (e.g. Qt5/Qt6).
> With CMake you can pass a version as the second argument, e.g.:
> find_package(Qt 5.12)


We in fact implemented it in a way so the actual "package prefix" we use 
(here: "Qt5", "Qt6", or even just "Qt") can be changed by just modifying one 
internal variable.

So, technically that's very easy to do.

The problem is, besides the reasons Simon mentioned, that just using "Qt" as 
the package prefix will make it more difficult for distros to co-install the 
CMake config files for different Qt versions.

Still all up for discussions though. Happy to get more people involved.


> Perhaps it would be better, what do you think?
> On 2/13/19 10:33 AM, Simon Hausmann wrote:
> Hi,
> On Monday/Tuesday a bunch of us met at KDAB offices in Berlin to accelerate
> the attempt of building Qt with CMake. I'd like to give a brief summary of
> this workshop.
> Who: Jean-Michaƫl, Liang, Volker, Mikhail, Kevin, me, Tobias, Kai and
> Albert.
> A very early visible artifact was the creation of a wiki page (like all good
> workshops ;-)
>     https://wiki.qt.io/CMake_Port
> With such a large group, we were able to make good progress:
>     * We were able to fix the artifacts of "make install" in qtbase to allow
> for building an external module (qtsvg) and sample apps. The plan for
> allowing people to develop apps that work with Qt 5 and Qt 6 is quite
> simple API wise:
>         (1) In your application use either find_package(Qt5) or
> find_package(Qt6) (2) Always use Qt::Core, Qt::Gui, etc. for linkage
>         (3) We want to add the "plain" Qt::Core, Qt::Gui, targets also to
> Qt5's cmake support
>     * The script to converting .pro files to CMakeLists.txt is becoming
> really good. The goal is to convert all scopes and (source) file names
> correctly. Right now the repo contains incremental conversions with
> hand-edits.
>     * We're working on installing the latest cmake (as required) in the
> provisioning setup, so that we can get a building CI as soon as possible.
>     * We were able to verify that cross-compilation works well. The main
> challenge is ensuring that third-party libraries that used to be copied in
> src/3rdparty are either installed in the sysroot or can be found outside.
>     * We discussed and experimented with different ways of making static
> builds robust. So static builds themselves work already, but what we're
> looking into in particular is an automatic way of propagating Qt internal
> dependencies (such as double-conversion) correctly to the build process of
> the application that is not fragile.
>     * We added a lot more plugins and platform support libraries to the
> build process and did many improvements to the finding of external
> libraries.
> Our overall next goal is completing the build on Linux, macOS and Windows,
> cross-compilation, static builds and basic CI build support.
> Simon
> _______________________________________________
> Development mailing list
> Development at qt-project.org<mailto:Development at qt-project.org>
> https://lists.qt-project.org/listinfo/development
> --
> Best Regards,
> Fanaskov Vitaly
> Senior Software Engineer
> The Qt Company / Qt Quick and Widgets Team

Kevin Funk | kevin.funk at kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt, C++ and OpenGL Experts
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5322 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190213/a96c2a10/attachment.bin>

More information about the Development mailing list