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

Reply via email to