[Qbs] Can't find variable when using custom property
Christian Kandeler
christian.kandeler at qt.io
Mon Feb 5 15:30:59 CET 2018
On Mon, 5 Feb 2018 14:43:57 +0100
Ola Røer Thorsen <ola at silentwings.no> wrote:
> I'm trying to do something like this:
>
> import qbs
> Rule {
> property var myProperty: "test"
> ...
>
> outputArtifacts: {
> console.warn(myProperty);
> }
> }
>
> qbs can't find "myProperty" in the line trying to print it, saying
> ReferenceError: Can't find variable: myProperty
Right. Custom Rule properties are not collected for later use. Rule behavior is parameterized via properties of the respective module/product.
> I've tried setting an id to the Rule item and using that, doesn't work. How
> can I access properties like this from within the Rule item? This does not
> seem to work well in general in qbs, except when defining a property in a
> "Product" item.
Custom properties are collected and made accessible in rules for the Product, Project and Modules items.
For all other items, only the built-in properties are retrieved and acted upon according to their documented semantics.
> My use-case here is that in another Product I plan to do this:
> import "myrule.qbs" as MyRule
> ...
> MyRule { myProperty: "1" }
> MyRule { myProperty: "2" }
> MyRule { myProperty: "3" }
> MyRule { myProperty: "etc" }
Yes, I can see how that could be useful (see also the TODO item in CppModule.qbs). You might want to create a task in our bugtracker.
Christian
More information about the Qbs
mailing list