[Qbs] qbs-autoproject

Christian Gagneraud chgans at gmail.com
Fri Oct 27 12:52:48 CEST 2017


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
> 
> 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



More information about the Qbs mailing list