[QBS] Get property from parent project

Christian Kandeler christian.kandeler at digia.com
Fri May 23 15:28:22 CEST 2014


On 05/23/2014 11:05 AM, Tim Hutt wrote:
> I have found a reliable way to trigger the
> qbs-isn't-updated bug:
>
> 1. Create a new C++ QBS project in QtCreator.
> 2. Rename main.cpp to foo.txt
> 3. Paste this in the QBS file:
>
> import qbs
>
> Product {
> type: "foo"
> Group {
> files: "foo.txt"
> fileTags: "foo-source"
> }
> property string foo: "baz"
> Rule {
> inputs: "foo-source"
> Artifact {
> fileName: "foo.out"
> fileTags: "foo"
> }
> prepare: {
> foobar;
> var a = product.foo;
> var cmd = new JavaScriptCommand();
> cmd.silent = true;
> cmd.a = a;
> cmd.sourceCode = function() { console.log(a); }
> return cmd;
> }
> }
> }
>
> 4. Try and build it, it will say foobar not found (or whatever).
> 5. Change foobar to foobar2, but DON'T SAVE THE QBS FILE!
> 6. Now right-click on the project in the project pane and select rebuilt.
> 7. Lo! It still says 'foobar not found', not foobar2.
> 8. Now change it to foobar3, and this time save the QBS file before
> building.
> 9. Rebuild. It will still say 'foobar not found'.
>
> Perhaps some kind of race condition between QtCreator saving the file
> for a rebuild (because I have the "save all files before building"
> option enabled) and QBS checking the timestamps (or whatever it does).

Yes, that is indeed the reason. See 
https://bugreports.qt-project.org/browse/QBS-596. Thanks for the report. 
I have never seen this problem because I always save my files manually.


Christian



More information about the Qbs mailing list