[Development] Qt 6 buildsystem support requirements

Kevin Kofler kevin.kofler at chello.at
Sat Jul 21 14:42:08 CEST 2018


Bogdan Vatra via Development wrote:
> Anyway IMHO is more important to have a clean, nice and easy to use syntax
> and to be tooling friendly than 1.b.

A custom build system is always a major pain point for distributions. A 
circular dependency (what Thiago's 1.b forbids) makes it particularly 
painful. How should we bootstrap new architectures or entirely new 
distributions if we cannot build Qt due to the circular dependency between 
Qt and its build tool? This is a showstopper.

> GN[1] is another example of build system which didn't care too much about
> 1.a,b,c and it still used in quite big projects (e.g. chrome, fuchsia). To
> my huge surprise, they managed to move it into a separate repo and remove
> all chromium dependencies (yep, a few months ago you had to checkout the
> entire chromium repo to build it :) ).

GN (and its predecessor Gyp) is universally hated by distribution packagers 
for its non-standardness, weirdness, lack of documentation (including third-
party documentation such as tutorials, an issue inherent to custom build 
systems) and lack of flexibility (custom build systems are never as powerful 
as widely-used general-purpose build systems).

QtWebEngine is a particular pain to package because it uses TWO custom build 
systems (QMake and GN).

The Chromium mess is also what prompted Spot to write the list of FAILs 
[https://spot.livejournal.com/308370.html] I have already linked to 
elsewhere in this thread.


There is a build system that fulfills all of Thiago's points, and it is 
already widely used in the Qt community: CMake.

        Kevin Kofler




More information about the Development mailing list