[Qbs] QBS usage

Christian Gagneraud chgans at gmail.com
Mon Jun 18 01:01:10 CEST 2018


On 16 June 2018 at 15:58, Tino Pyssysalo <tino.pyssysalo at qt.io> wrote:
> I’d like to know, if you have used or are using QBS as a build system in
> real projects and all feedback and suggestions would be mostly welcome. This
> is a great opportunity to affect the future of QBS. Obviously, we are
> closely following QBS issues in Jira and in this mailing list, so there’s no
> need to report any known issues, unless you want to emphasize something
> extremely important to you.

I use it on pet projects, and tried to use it for at work (for my own
consumption) for a big C++/Qt project.

I really like Qbs, but i will try to focus on the dark areas, i guess
you want to hear these as well.

IMHO, the main show stopper for Qbs adoption is lack of support in the
most popular IDEs.
Visual Studio, Visual Code, XCode, Eclipse, ... are not Qbs aware.
The minimum needed would be that these tools at least understand how
to read it (to get list of  source, targets, ...), and how to fire
build, clean, run steps.
At work, most of the devs use Visual Studio, and there are on-going
discussions about switching to CMake, if only VS could handle Qbs...

I think Qbs is a great tool, I like the language and the modern design.
However, what i don't like:
- Too "elitist": cannot easily be used on projects with dodgy
dependencies, it seem to offer an all or nothing.
- toolchain and Qt profiles, are IMHO counter-intuitive. Qbs is the
only build tool i'm aware of that requires having "global" profiles.
  IMHO profiles should be managed at "configure time" of a project,
gcc and Qt profiles should be managed via probes?
- Command line interface could be simplified and be more end-user
friendly, as of now it still looks like a power-user tool
  I've always like the GNU autotools workflow (but not the underlying
technology!), eg I should be able to do:
  $ qbs configure --enable-foo --disable-bar --with-stuff=/usr/local/...
  $ qbs build
  $ qbs check
  $ qbs install DESTDIR=...
  $ qbs package

  The above functionalities can be done with qbs, but i think that it
should be as simple as the above commands, something straight forward.

Last thing, Qbs has built-in support for different compilers/linkers,
this is nice b/c I can just express my toolchian flags in a toolchain
agnostic way, but...
- Qbs will have to continuously catch up with the fast moving toolchain world
- Users depend on Qbs core team to gain support for exotic compilers
- You will never be able to unify them all, too much specificities,
corner cases, ...
- Other tools have different approaches, they let users have their own
boiler plate inside their projects.

It is a strength of Qbs, but somehow it could be a weakness at the same time.


Keep up the good job!
Chris



More information about the Qbs mailing list