[Development] CMake branch

Tobias Hunger tobias.hunger at gmail.com
Fri Mar 22 15:12:17 CET 2019

On Fri, Mar 22, 2019 at 12:53 PM Joerg Bornemann <Joerg.Bornemann at qt.io> wrote:
> I believe that this means a reduced feature set for the CMake port.

That's not what I wanted to say:-)

All buildsystems all have things where they are nice to use and other
areas where they are less nice.

I want a build system for Qt that uses the things that work well in
cmake... one that does not do things for the only reason that we did
it exactly like that with qmake. Things that make sense and where
there is no obvious nicer way to get a similar effect in cmake should
of course stay.

> What kind of things do we expect to go away that we take for granted
> with the current build?

I do not plan to test any platform that I have no compiler for, so I
expect things to break there. I hope those platforms that are relevant
for Qt 6 will eventually get fixed by people that know them well.

Things will change, but not all of them due to cmake:

* We will also try to move most of the 3rd party code out of the Qt
repositories -- as much as we can get away with. CMake is good at
finding stuff, but we do this mostly since Thiago has been pushing for
that even before we started with cmake.
* We will also lose the ability to build qt tools for a host machine
and then continue to build for a target machine. You will need a host
installation to cross-compile. But again that is not due to cmake, but
because Lars asked for this to avoid building host tools dozens of
times on the CI.
* Setting features, etc. will be done differently (via the cmake UIs).
* How to enable sanitizers, etc. will change to how you do that in cmake.
* I hope the builds will also become a bit more robust -- but not as
robust as you would have managed with qbs!
* Builds should be faster as well -- we remove 3rd party code, so
there is less to build in the first place;-)

There are lots more things.

> And even if that is the case, why can't the qmake part be kept separate
> and left alone?

Currently the cmake and qmake parts are completely separate in the
wip/cmake branch. But once cmake is functional I plan to remove the
.pro/.pri/.qrc files and update some things then.

E.g. we no longer need to bootstrap qmake, so we can remove some
defines from Qt Base that enable that.

In fact qmake does not even need to stay in qtbase when we can build
everything with cmake. So I would like to separate that out so that we
have the option of moving it into a separate repository. Whether or
not we will move qmake is not my decision to make, but I do want to
provide the option.

Best Regards,

More information about the Development mailing list