Projects and Products have qbsSearchPaths property to look for imports and modules. It would be very convenient to have full control over the structure of project without the build system, albeit slightly, getting in the way (by making it imperative to create modules and imports directories in order for this property to work).
Suppose there is MyProduct.qbs in “MyProduct” directory. There is a module, MyModule.qbs, specific to this product, not reusable. I would like this MyModule.qbs to be in “MyProduct/MyModule/“ directory. Instead I have to put it in “MyProduct/modules/MyModule/“
There are a couple of things that look odd to me here:
1) There is just one module, so the modules directory in this case has no purpose other than to contain just another single directory, this does not feel right.
2) If I remember it right initially I had this modules directory starting with upper case letter but had to change to lower case on Linux system due to it being case sensitive. This introduces an unpleasant inconsistency when other directories start with upper case, like in the example I have shown.
Last but not least, not having to create these mandatory directories would simplify converting third-party projects to QBS (a burden for every QBS user who needs to build and use third-party libraries I assume). I suppose once one makes some third-party library work with QBS, it would be easier to convince the author of that library to add QBS as an alternative when all that needs to be done is adding a few .qbs files here and there without having to modify project’s structure by creating all these import and modules directories.