oops, of course, property string gnuToolsDir: MyFunctions.findGnuToolsDir();
instead of property string gnuToolsDir: YourFunctions.findGnuToolsDir(); BR, Denis 2014-05-15 15:39 GMT+04:00 Denis Shienkov <denis.shien...@gmail.com>: > E.g. IMHO, in your case should be like this: > > > = myproject/myproject.qbs = > > import qbs 1.0 > > Project { > qbsSearchPaths: "qbs" > > references: [ > "app/app.qbs", > ] > } > > > = myproject/qbs/imports/MyFunctions/functions.js = > > function findGnuToolsDir() > { > ... > } > > > = myproject/app/app.qbs = > > import qbs.base 1.0 > import MyFunctions > > Application { > name: "myapplication" > > ... > ... > property string gnuToolsDir: YourFunctions.findGnuToolsDir(); > ... > ... > > } > > But, if to be honest, I do not know how to do it by other way (I even do > not trying do check other way). :) > > BR, > Denis > > > > 2014-05-15 15:26 GMT+04:00 Tim Hutt <tdh...@gmail.com>: > > Is there no way to do this in two files instead of three? It doesn't seem >> like I can put the `import YourFunctions` before the `Project`, so I need a >> separate file for the Project and Product, and then a third for the >> javascript. Is that right? >> >> Cheers, >> >> Tim >> >> >> On 15 May 2014 10:37, Denis Shienkov <denis.shien...@gmail.com> wrote: >> >>> Hi, >>> >>> 1. Your function shall be in the functions.js file , e.g. in: >>> /yourproject/qbs/imports/YourFunctions/functions.js >>> 2. Also your Project should have an option: >>> >>> Project { >>> ... >>> qbsSearchPaths: "qbs" >>> ... >>> } >>> >>> 3. Your Product's file should contains: >>> >>> ... >>> import YourFunctions >>> ... >>> ... >>> property string gnuToolsDir: YourFunctions.findGnuToolsDir(); >>> ... >>> >>> I would make it so. Also you can look how this done by analogy, e.g. in >>> QtCreator's sources. >>> >>> >>> BR, >>> Denis >>> >>> >>> >>> >>> 2014-05-15 12:30 GMT+04:00 Tim Hutt <tdh...@gmail.com>: >>> >>>> Hi, >>>> >>>> I have a QBS script that depends on using the GNU Arm toolchain, and I >>>> want it to automatically find them (on Windows for now). In my QBS I have >>>> this line: >>>> >>>> property string gnuToolsDir: "C:/Program Files/GNU Tools ARM >>>> Embedded/4.8 2014q1" >>>> >>>> >>>> And then I use that elsewhere. I want to set it to be a function, like >>>> this: >>>> >>>> function findGnuToolsDir() >>>> >>>> { >>>> >>>> // TODO: Fancy searching function. >>>> >>>> return "C:/Program Files/GNU Tools ARM Embedded/4.8 2014q1"; >>>> >>>> } >>>> >>>> property string gnuToolsDir: findGnuToolsDir(); >>>> >>>> >>>> But that doesn't work (says it can't find the function). Additionally, I >>>> can't seem to access the property in my Rules - it says the variable >>>> doesn't exist. >>>> >>>> >>>> >>>> Rule { >>>> >>>> // ... >>>> >>>> prepare: { >>>> >>>> >>>> // None of these work: >>>> >>>> var objCopyPath = gnuToolsDir + >>>> "/bin/arm-none-eabi-objcopy.exe"; >>>> >>>> var objCopyPath = parent.gnuToolsDir + >>>> "/bin/arm-none-eabi-objcopy.exe"; >>>> >>>> var objCopyPath = product.gnuToolsDir + >>>> "/bin/arm-none-eabi-objcopy.exe"; >>>> >>>> // ... >>>> >>>> } >>>> >>>> } >>>> >>>> >>>> Any ideas? I've seen the Probe item but it doesn't seem suitable - as far >>>> as I can tell it just determines the existence of a library or tool rather >>>> than its location. >>>> >>>> >>>> Cheers, >>>> >>>> >>>> Tim >>>> >>>> >>>> _______________________________________________ >>>> QBS mailing list >>>> QBS@qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/qbs >>>> >>>> >>> >> >
_______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs