Re: [QBS] Project configuration from within qbs profile
On 07/21/2014 09:24 AM, Richard Weickelt wrote: > It took me a while, but after looking at some qbs projects in the www, I got > my head around this. Please correct me if I am wrong. > > Qbs modules are not a QML language feature, so the import statement is > useless here. Right. Modules are known automatically and get pulled in via a "Depends" item. > Instead, they seem to be loaded via some magic background > functionality. For custom modules in a project, one is supposed to create a > subfolder with the following layout: > > project-folder > +--subfolder e.g. 'qbs' > | +--'modules' folder > | +--folder with module-name, e.g. 'myModule' > |(name is important here) > |+--.qbs file containing the module definition > | (name does not matter) > | > +--.qbs project file which defines qbsSearchPaths : "qbs" > > In the project file one would now write 'Depends { name: "myModule" }' to > load the module. Then one can access its properties as expected. Correct. Or, if it is not project-specific, the qbsSearchPaths property can go under the "preferences" part of your configuration (globally or per profile). > The documentation mentions 'Depends' and 'qbsSearchPaths', but the missing > link was the folder layout and naming. Hm, yes, that seems to be missing. You could file a bug report. > Once I got modules working, the rest was easy. Module properties can be set > in a qbs profile and then accessed from within the qbs project file. Ok, good to hear. Christian ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
Re: [QBS] Project configuration from within qbs profile
> Ok, I've tried to create a module "MyModule" and access one of its > properties, but failed: > > mymodule.qbs > import qbs.base 1.0 > > Module > { > name: "MyModule" > property string myProperty > } > > myproject.qbs > import qbs.base 1.0 > import "mymodule.qbs" as MyModule > > Product { > // ... > > Depends { name: "MyModule" } > property string productProperty: MyModule.myProperty > > // ... > > } > > This results in : myproject.qbs:4:1 Product dependency 'MyModule' not found. > > I've also tried to create a subfolder and load the module from there as it > has been advised in the QML documentation, without luck. Maybe I make a > general mistake here. These are my first steps with qbs and QML so I'm not > too familiar with the module concept, yet. It took me a while, but after looking at some qbs projects in the www, I got my head around this. Please correct me if I am wrong. Qbs modules are not a QML language feature, so the import statement is useless here. Instead, they seem to be loaded via some magic background functionality. For custom modules in a project, one is supposed to create a subfolder with the following layout: project-folder +--subfolder e.g. 'qbs' | +--'modules' folder | +--folder with module-name, e.g. 'myModule' |(name is important here) |+--.qbs file containing the module definition | (name does not matter) | +--.qbs project file which defines qbsSearchPaths : "qbs" In the project file one would now write 'Depends { name: "myModule" }' to load the module. Then one can access its properties as expected. The documentation mentions 'Depends' and 'qbsSearchPaths', but the missing link was the folder layout and naming. > I have a question regarding project configuration. A qbs project defines a > property "myProperty". I can of course set the property in the qbs file > itself and I can set the property on command line via: > > qbs build myproject.qbs project.myProperty:bla > > Would it also be possible to set this property in a qbs profile? That is > because I have multiple projects which should be compiled with the same > value for "myProperty". > > After some investigation I guess that project-specific settings are not > supposed to go into the profile. Should I create a module for that? Is it > possible to set a module's properties in a qbs profile? Once I got modules working, the rest was easy. Module properties can be set in a qbs profile and then accessed from within the qbs project file. Cheers Richard ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs
[QBS] Project configuration from within qbs profile
Hi, I have a question regarding project configuration. A qbs project defines a property "myProperty". I can of course set the property in the qbs file itself and I can set the property on command line via: qbs build myproject.qbs project.myProperty:bla Would it also be possible to set this property in a qbs profile? That is because I have multiple projects which should be compiled with the same value for "myProperty". After some investigation I guess that project-specific settings are not supposed to go into the profile. Should I create a module for that? Is it possible to set a module's properties in a qbs profile? Ok, I've tried to create a module "MyModule" and access one of its properties, but failed: mymodule.qbs import qbs.base 1.0 Module { name: "MyModule" property string myProperty } myproject.qbs import qbs.base 1.0 import "mymodule.qbs" as MyModule Product { // ... Depends { name: "MyModule" } property string productProperty: MyModule.myProperty // ... } This results in : myproject.qbs:4:1 Product dependency 'MyModule' not found. I've also tried to create a subfolder and load the module from there as it has been advised in the QML documentation, without luck. Maybe I make a general mistake here. These are my first steps with qbs and QML so I'm not too familiar with the module concept, yet. Thanks Richard ___ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs