[Qbs] qbs-autoproject
resurrection at centrum.cz
resurrection at centrum.cz
Fri Oct 27 13:59:39 CEST 2017
Thanks for trying it out Christian! I will try to answer some of your questions:
> qbs-autoproject tooks something like 10 to 15 minutes (as advertised)
Take a look at https://github.com/Resurr3ction/qbs-autoproject#performance-tips if any of those could help you there. Particularly not using the contentPattern and removing unused items should help a lot. If you just want to see the structure (like the qbs-create-project does) you may disable the dependency scanner by setting dependencyMode = DependencyMode.Disabled.
> At this stage, i'm not sure if qbs-autoproject refused to write the qbs
> files, or if it allows to generate broken qbs files, that can then be
> fixed manually.
qbs-autoproject will write out only one file that will be named as your root directory. Since you cannot edit it (because it would be overwritten) I did not see any benefit in splitting it into multiple files. It is also easier to debug when all projects/products are in single file imho.
> After trying the "full" dependency-tracked custom Qbs (Export items), i
> decided that i don't want that. I like it, but I cannot afford so to
> speak. My DAG is so wild, that qbs fight to load it and i end up with
> Linux's limits.conf problems. Such as command line too long (true) and
> too many open files (Ubuntu's mistake).
Now this is interesting. Could you tell me more about these issues? Export item vs include-directory should not be a significant difference except for the cyclic dependency problem. Have you tried NoHeaderOnly dependencyMode?
> It's not clear to me how i can inject my initial qbs support files into
> the qbs-autoproject ones, maybe i just need to edit '.qbs-autoproject/'
> files. I found it hard to define "where the project is", "what the
> project name is", and "where is my custom stuff".
All your custom stuff should be done via custom items and modules. So in your case you would edit (or remove or add more) stuff in .autoproject/imports/ and then you would link these to the qbs-autproject via the `items` property - giving them the pattern etc.
______________________________________________________________
> Od: Christian Gagneraud <chgans at gmail.com>
> Komu: qbs at qt-project.org
> Datum: 27.10.2017 12:52
> Předmět: Re: [Qbs] qbs-autoproject
>
On 25/10/17 12:24, Christian Gagneraud wrote:
> On 25/10/2017 10:30 AM, resurrection at centrum.cz wrote:
>> Hi everyone,
>>
>> I would like to announce:
>>
>> *qbs-autoproject*
>>
>> "A project file to end all project files."
>>
>> **https://github.com/Resurr3ction/qbs-autoproject <https://github.com/Resurr3ction/qbs-autoproject>
>
> Wow! It looks interesting, I will definitely give it a try on our
> project!
I watched the QtWS video about Qbs, and discovered the
"qbs-create-project" command.
I tried both tools on a somehow large project, qbs-autoproject tooks
something like 10 to 15 minutes (as advertised), qbs-create-project was
so fast that i thought it failed immediately.
The 2 projects project have quite a different approach, but i see good
things for both.
I am interested by these tools, as for now, i have 2 of my own -
customised for my very specific case:
- A shell script (yes), it can generate the perfect set of qbs file
from a set of msvc projects that allows me to use QtCreator as an
editor, generated qbs files are unmaintainable, it takes a minute or so
to execute.
- Python code (WIP) that parse an msvc solution, and generate qbs
files that allow me to fully use QtC and provide clean Qbs files.
The python stuff doesn't work yet as i would like.
qbs-autoproject generated an interesting file structure while
qbs-create-project both in flat and hierarchy mode didn't suit me (when
used in QtC).
qbs-autoproject goes through a dependency analysis phase which is
interesting but very slow (as advertised), guess what? My code base
failed the acyclic test. Thank you for letting me know! ;)
Luckily it is easy to fix.
At this stage, i'm not sure if qbs-autoproject refused to write the qbs
files, or if it allows to generate broken qbs files, that can then be
fixed manually.
After trying the "full" dependency-tracked custom Qbs (Export items), i
decided that i don't want that. I like it, but I cannot afford so to
speak. My DAG is so wild, that qbs fight to load it and i end up with
Linux's limits.conf problems. Such as command line too long (true) and
too many open files (Ubuntu's mistake).
It's not clear to me how i can inject my initial qbs support files into
the qbs-autoproject ones, maybe i just need to edit '.qbs-autoproject/'
files. I found it hard to define "where the project is", "what the
project name is", and "where is my custom stuff".
I don't think that Qbs has and want a cpp parser in their dependency,
but maybe a project generator plugin system (importer from a Qbs user
POV) could allow for optional heavy dependencies.
I'm just thinking loudly, I unfortunately didn't have much time to play
with qbs-autoproject and qbs-create-project tools.
Who wrote qbs-create-project by the way?
Chris
_______________________________________________
Qbs mailing list
Qbs at qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs <http://lists.qt-project.org/mailman/listinfo/qbs>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20171027/338a312f/attachment.html>
More information about the Qbs
mailing list