[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