[Development] Qt 6 buildsystem support requirements

Bogdan Vatra bogdan.vatra at kdab.com
Sat Jul 21 09:18:40 CEST 2018


Hi,
În ziua de sâmbătă, 21 iulie 2018, la 09:40:47 EEST, Allan Sandfeld Jensen a 
scris:
> On Samstag, 21. Juli 2018 07:38:10 CEST Bogdan Vatra via Development wrote:
> > Hi,
> > 
> > În ziua de sâmbătă, 21 iulie 2018, la 05:35:48 EEST, Thiago Macieira a
> 
> scris:
> > > Hello
> > > 
> > > Having spent far too much time trying to figure out why crappy
> > > buildsystems
> > 
> > [...]
> > 
> > > 1) Ease of obtention
> > > 
> > > a) Must be packaged by all major package managers where Qt 6 is expected
> > > to
> > > 
> > > be relevant. That is, it must be available as a package in:
> > >  - ArchLinux
> > >  - Debian testing
> > >  - Gentoo
> > >  - Fedora current and previous
> > >  - openSUSE current and previous
> > >  - Ubuntu LTS released more than 6 months prior
> > >  - Homebrew (macOS)
> > 
> > [...]
> > 
> > > b) Must be easily compiled from source on a standard system
> > > installation.
> > > All of its dependencies must come from the system's package manager and
> > > there must be no cyclic dependencies. That is, it cannot require itself
> > > to
> > > build and it must not depend on Qt, either in source form or binary.
> > 
> > You really hate QBS don't you ? :)
> > 
> > Anyway IMHO is more important to have a clean, nice and easy to use syntax
> > and to be tooling friendly than 1.b.
> > 
> > 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 :) ).
> 
> Sounds good, but at least for the last year it has also been so unstable
> that any older version of GN couldn't build a newer Chromium release, and
> all the build logic was heavily tied to how Chromium does this, and it has
> a bootstrapper than never worked in any releases ever, so the only way to
> build GN was to download GN and build it with the blackbox binary.
> 

Check the new repo, the bootstrap works ok now (if you don't have clang you'll 
need to apply https://gn-review.googlesource.com/c/gn/+/2340).

I'm not trying to sell GN here, because from my experience, Google folks are 
quite difficult to work with and not very open to changes. 
What I'm trying to sell here is QBS which I (still) believe is one of the best 
buildsystems out there and we should not ditch it just because can't be 
boostraped (easily?).

Cheers,
BogDan.





More information about the Development mailing list