[Development] Qmake Ninja generator

Kuba Ober kuba at mareimbrium.org
Thu May 29 19:49:08 CEST 2014

On May 29, 2014, at 6:03 AM, Adam Strzelecki <ono at java.pl> wrote:

> Putting my 2¢ in, Qmake is IMHO good enough. Qbs is kind of vaporware, sparse documentation, needs Qmake to build (woot?!).
> Altogether it sounds like a clinch, we don't want to extent Qmake with ninja or anything, because there comes Qbs. But Qbs isn't really there, because one needs lot of work to make it more less feature equal to CMake. So we are back to Qmake, huh.

Qbs has by definition more features than cmake because it is a make tool. Neither cmake nor qmake build anything, they just generate makefiles or project files. In that respect qmake and cmake are quite alike. Qbs is a full-featured build tool: it takes care of generating the DAG *and* executing it. It’s like qmake and ninja in one.

In the long run I think Qt either need Qbs as the default build system, or ninja support in qmake. Ninja makes all the difference when building llvm. On a modern system I can get null llvm rebuild times on the order of 100ms with ninja, and under a second with a single changed .cpp file - and that’s a big project. The 1 second single-file rebuilds on fairly small make-based projects (like examples bundled with Qt) are really bad. With cmake+ninja, a single changed .cpp rebuild of a small Qt example on OS X takes about 250ms.

Cheers, Kuba

More information about the Development mailing list