[QBS] Functions in QBS scripts and accessing properties from them.

Denis Shienkov denis.shienkov at gmail.com
Thu May 15 11:37:17 CEST 2014


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 <tdhutt at 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 at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qbs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qbs/attachments/20140515/80e628be/attachment.html>


More information about the Qbs mailing list