> On Dec 3, 2017, at 10:05 AM, Christian Gagneraud <[email protected]> wrote:
> 
> On 03/12/17 20:40, Jake Petroules wrote:
>> Qbs has a global view of the entire project, so there's no need to
>> qualify the names of your lib1, lib2 dependencies with the name of
>> the sub-project in which they're defined. I think your idea of a
>> cleaner syntax could be something of the form:
>> Depends { names: ["lib1", "lib2"] }
>> Basically, a condensed syntax that would allow to specify multiple
>> dependency names in a single depends item, and optionally apply
>> additional properties to all of those, like so:
>> Depends { names: ["lib1", "lib2"]; condition: project.hasCoolLibs }
>> equivalent to:
>> Depends { name: "lib1"; condition: project.hasCoolLibs } Depends {
>> name: "lib2"; condition: project.hasCoolLibs }
>> A "names" property as such would be mutually exclusive with the
>> existing submodules and productTypes property, as well as the name
>> property.
>> However your proposal as-is cannot work as the name of a dependency
>> must be the name of a product or module, and projects have nothing to
>> do with this. I don't think trying to add them into the mix would
>> make any sense, but I think something what I suggested above would
>> effectively solve the same problem I believe you're looking to do so,
>> which is to remove redundant syntax (and my proposal requires fewer
>> characters too :D).
> 
> Hi Jakes,
> 
> Yes, I sort of knew that project/products have nothing to do with modules (I 
> don't know why, but i've read something about it).
> 
> I like your proposition, it's IMHO a good compromise.
> 
> On the other hand you say that "there is no need to qualify a dependency with 
> the name of the project where it is declared", and it seems to justify why 
> this is not supported. "Not necessary" doesn't always imply "not possible". 
> After all there's already  similar mechanism with limitToSubProject 
> (Depends/Project coupling), so why not allowing an optional syntax, where 
> name refers to a project, and submodules refer to products from this project. 
> Or maybe in that case, a "project" property could be use in place of "name" 
> (that would make the Depends item syntax a bit messy tho). One (wild mind ;)) 
> could imagine something like:
> 
> Depends {
>       project: "MyLibraries"
>       products: [
>               "lib1",
>               ...
>       ]
> }
> 
> I don't know the internals of Qbs, so please excuse me if the above doesn't 
> make sense to you.

My point was that product names are already required to be globally unique 
across your project (and all sub-projects), so qualifying with the name of a 
sub-project wouldn't do anything.

> 
> This is not a show stopper for me, just a nice to have. IMHO it keeps the 
> product.qbs tidy, and is in sync with the concept that you write code once, 
> but it gets read countless time, so it's good to make it easy to 
> read/understand.
> 
> Is it worth creating a proposal/use-case ticket based on this thread?

Of course, feel free.

> 
> Chris

-- 
Jake Petroules - [email protected]
The Qt Company - Silicon Valley
Qbs build tool evangelist - qbs.io

_______________________________________________
Qbs mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qbs

Reply via email to