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

Christian Kandeler christian.kandeler at digia.com
Thu May 15 11:33:52 CEST 2014


On 05/15/2014 10:30 AM, Tim Hutt wrote:
> 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).

Are you sure that's really what you want? Toolchain information 
typically comes from the "outside" via a profile, and then it just works 
automatically and its properties are available via the cpp module. 
Unless you use your toolchain in a very "special" way (i.e. not to 
compile your sources), then your current approach is probably wrong.


Christian


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
>




More information about the Qbs mailing list