[Interest] Build Issues with QT 6.2.3

Volker Hilsheimer volker.hilsheimer at qt.io
Sun Feb 6 16:33:51 CET 2022


These are not work arounds, but documented features of ninja :P

I’m not going to reopen the thread from three years ago when the choice of build system was made, but that the qmake build system was not sustainable, at the very least not for Qt itself, was fairly undisputed.

Back in the days you did

$ cd buildtree
$ ../sourcetree/configure -redo
$ make -j14

and now you can either do

$ cd buildtree
$ ../sourcetree/configure -redo
$ ninja -j14

or, if you configured your build with the Makefile generator,

$ cd buildtree
$ ../sourcetree/configure -redo
$ make -j14


So think about cmake as a replacement for qmake; you didn’t build Qt with qmake, you built it with make (or perhaps in Visual Studio or Xcode using the respective generators). And you can build Qt with make today if you want (but we don’t test the Makefile generator). If you don’t care much for cmake, you don’t have to do anything with it to configure and build Qt from source.


Volker



> On 6 Feb 2022, at 16:22, BeneschTech LLC <chris at beneschtech.com> wrote:
> 
> So you guys put in a work around cmake as well...
> 
> Ill be happy to compile the changes needed once I get linguist building. Just curious why the change? Is there a benefit to these tools?
> 
> On Sun, Feb 6, 2022, 7:59 AM Volker Hilsheimer <volker.hilsheimer at qt.io> wrote:
> > On 6 Feb 2022, at 15:37, BeneschTech LLC <chris at beneschtech.com> wrote:
> > 
> > Thanks! I dont like ruby either lol. I found two more files that broke as well the fixes were trivial. Havent tried to fix linguist yet.
> > 
> > I have three big problems with the cmake and ninja combo:
> > 1. Ninja uses all the cpu cores +1 by default. Unless you have a water cooled system you will overheat on a 30k file build like this.
> 
> You can pass -j x to ninja to limit the number of parallel jobs, e.g.
> 
> $ ninja -j 6
> 
> or more flexibly
> 
> $ ninja -j $(( $(nproc) - 2 ))
> 
> 
> > 2 . Cmake does not store your last configuration command anywhere i can find like autotools does.
> 
> 
> Assuming that your issues are mostly with building Qt (because you’re probably not using cmake for your own project), the Qt configure script does still save the command options, so “configure -redo” will work as before.
> 
> 
> > 3 . During the build you can not see the flags being passed to the compiler. If you have an odd configuration like I do where I use clangs polly extension theres no easy way to see that its being used correctly.
> 
> Have you tried 
> 
> $ ninja -v
> 
> ?
> 
> > Qt itself is wonderful well written software and ive only ever encountered issues with third party code. Indulge us old guys though. We have reasons we like traditional make and autotools.
> 
> 
> Cheers,
> Volker
> 
> 
> 
> > On Sun, Feb 6, 2022, 7:22 AM Bob Hood <bhood2 at comcast.net> wrote:
> > On 2/5/2022 4:15 PM, BeneschTech LLC wrote:
> > > I have to say, not thrilled with the change to cmake/ninja, but maybe I'm 
> > > just old and not "cool" LOL.
> > 
> > You're not alone.
> > 
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > https://lists.qt-project.org/listinfo/interest
> 



More information about the Interest mailing list