[Development] Future of QBS
Christian Gagneraud
chgans at gmail.com
Wed Oct 18 00:48:37 CEST 2017
On 17/10/2017 11:27 PM, Jake Petroules wrote:
> We both want to solve the same problems, but I'm not sure exactly
> what you mean here about how building Qt with Qbs is a trap and that
> we should not "leak".
The trap:
From reading your comments, I had the feeling that you're thinking that
building Qt with Qbs will help having a better Qt/Qbs integration when
building the user's project.
I think it's dangerous, the 3 things are orthogonal: building Qt with
Qbs, Qbs having a build dependency on Qt, and user using Qbs to build
their Qt-dependent (or not) own projects.
The leak:
Current Qt build system (qmake) leaks into Qbs via qbs-setup-qt.
QtC suffers from that as well, I wrote an email about that, when i
realised that QtC was indirectly executing the cross-compiler defined in
qmake's mkspec and found on the PATH instead of using the one defined in
the QtC kit. This is rather scary.
> My point was that the Qbs module files to describe the various Qt
> libraries must come from somewhere - either as a probe-based module
> within Qbs, an installation of Qt itself, or a combination. If we
> rely solely on probe-based modules within Qbs, then we need a way to
> dynamically generate modules at runtime (since we can't know about Qt
> modules which don't yet exist), which is currently not possible. This
> could end up being useful in the general case too, or maybe it isn't,
> but like any major architectural decision, it needs time and
> thought.
Thanks for explaining, maybe this means that Qt should not be a Qbs
module. Or it should be a "container" module that gets populated by a probe.
The handling of a product dependency on, say, Qt.Widgets, should not be
different than a product dependency on boost or whatever library.
Qbs doesn't have/need a boost module.
Now I understand that Qt is more than the sum of it's libraries/modules,
there are moc, qdoc, qrc, uic, Qml, ... too. And this make the job harder.
>
>> We (at work) all want this, the only problem with qbs are: -
>> stability (not blaming qbs, I knew I picked up an on going effort)
>> - Qbs != Qt
>
> Qbs != Qt is a "problem"? I'm not sure what you mean. The decoupling
> of Qbs and Qt is a strength, and it seems like you already agree with
> that...
I agree that it would be a strength, if Qbs and Qt were not tightly coupled.
My understanding is that Qbs can be used on non Qt-dependent projects
(bare-metal or not), nice. But this doesn't make Qbs completely
decoupled from Qt, because as soon as I need Qt for my project, the
whole "q" kitchen sink get pulled in. This is not a Qbs-specific problem
tho.
>
>> - CI: can qbs solve Windows PC, Linux pc and arbitratly SoC tuned
>> embedded Linux builds w/o relying on qmake?
>>
>> I have hope, of all the cross-build systems I have used in the past
>> 15 years, none have been satisfactory, could qbs make a break
>> through?
>
> Hey, positive *and* negative (but constructive) feedback is always
> welcome. :)
This was not even negative, i am not satisfied with all the build
systems I've tried so far, but it's OK, such is life! :)
What I like with Qbs is the flexibility and its structured yet dynamic
language (Qml-ish).
But I'm having scalability and performance issues, that's another story
that i will report on the Qbs mailing list once i'm back on my Qbs stuff.
Chris
More information about the Development
mailing list