As a temporary work-around I disabled the error checking in
PropertyStackManager constructor. I assume the matcher is a little bit
too simple, but that is just a guess.

Should I create an issue for that or is my example / analysis wrong?

Regards, Jochen


Am Donnerstag, dem 10.07.2025 um 14:15 +0200 schrieb Jochen Becher via
Qbs:
> 
> One more note: in the minimal example I can replace the SubProject
> with
> a references property and it works.
> 
> Unfortunately, this is not a good work-around for me as I had to
> change
> hundreds of test frames in our code...
> 
> Regards, Jochen
> 
> 
> Am Donnerstag, dem 10.07.2025 um 14:11 +0200 schrieb Jochen Becher
> via
> Qbs:
> > 
> > I was able to create a small (not necessary minimal) example.
> > Please
> > see the attached zip file.
> > 
> > It is much more complex than my original minimal code. The main
> > aspect
> > seems to me a change in qbs 3.0.0:
> > 
> > SubProject { filePath: "MyApp.qbs" }
> > 
> > seems to set parent differently than in the past. If I insert the
> > content of MyApps.qbs which is a fairly simple CppApplication
> > product
> > then it works. The module "mymodule" also seems to be important to
> > see
> > the issue.
> > 
> > Regards, Jochen
> > 
> > 
> > 
> > Am Donnerstag, dem 10.07.2025 um 13:16 +0200 schrieb Richard
> > Weickelt:
> > > Hi,
> > > 
> > >  > readonly property stringList onEmbedded: parent.onEmbedded
> > > 
> > >  > Project {
> > >  >        property bool mySetting: true
> > >  >
> > >  >        Project {
> > >  >                property bool mySettings: parent.mySetting
> > >  >                     ? parent.mySetting : false
> > >  >        }
> > >  > }
> > > 
> > > This looks problematic. Qbs flattens nested and merges referenced
> > > project 
> > > items during the evaluation process (see 
> > > https://doc.qt.io/qbs/special-property-values.html#project). The 
> > > documentation does not say it, but that's what Qbs does with
> > > project
> > > items 
> > > under the hood AFAIK. If you define properties with the same name
> > > shadowing 
> > > each other and you use parent in addition, you may observe
> > > unwanted
> > > side 
> > > effects of the project merger. Maybe you get different results in
> > > different 
> > > projects because the property is evaluated at different times
> > > during
> > > the 
> > > resolve proces. For instance during early project evaluation,
> > > during
> > > probe 
> > > resolving or during module loading in products.
> > > 
> > > I was under the impression that the special "parent" alias is
> > > only
> > > a
> > > relict 
> > > from the QML parser and not guaranteed to work in Qbs. The same
> > > applies to 
> > > "id". It's reserved for probes at the moment although it works in
> > > other 
> > > cases too.
> > > 
> > > Could you live with a different solution? This would work:
> > > 
> > > Project {
> > >      property bool mySetting: true
> > >      Project {
> > >          property bool myOtherSetting: project.mySetting
> > >              ? project.mySetting : false
> > >      }
> > > }
> > > 
> > > Or if you explain what you want to achieve, we may find a
> > > different
> > > solution?
> > > 
> > > Richard
> > > 
> > > _______________________________________________
> > > Qbs mailing list
> > > Qbs@qt-project.org
> > > https://lists.qt-project.org/listinfo/qbs
> > 
> > _______________________________________________
> > Qbs mailing list
> > Qbs@qt-project.org
> > https://lists.qt-project.org/listinfo/qbs
> 
> _______________________________________________
> Qbs mailing list
> Qbs@qt-project.org
> https://lists.qt-project.org/listinfo/qbs

_______________________________________________
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs

Reply via email to