[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