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

Christian Kandeler christian.kandeler at digia.com
Thu May 15 11:58:38 CEST 2014


On 05/15/2014 11:44 AM, Tim Hutt wrote:
> Well I guess it is fairly special - I'm compiling stuff for a
> microcontroller using gcc for arm embedded. It needs specific flags and
> linker scripts and so on.

See http://qt-project.org/doc/qbs-1.2/cpp-module.html for information on 
the cpp module.

> Is there any documentation on profiles?

For the command line, see the "qbs setup-toolchains" command. It comes 
with a "--help" option that should tell you everything you need to know.

> The only thing I could find was on listing them with the qbs binary which I
> don't have (since I'm using Qt Creator).

Qt Creator will automatically create a qbs profile from your Kit. 
Additional properties can be set in Qt Creator's build step (or in your 
project files).

> If I made a profile would I be
> able to make it automatically find the arm gcc, and could I distribute
> it with my code easily?

The profile does not "find" anything, it *knows* where the toolchain is 
because it was given that information when it was created. It makes no 
sense to distribute this information as the location of the toolchain is 
dependent on the host system.


Christian

>
> Thanks for the info Denis!
>
>
> On 15 May 2014 10:33, Christian Kandeler <christian.kandeler at digia.com
> <mailto:christian.kandeler at digia.com>> wrote:
>
>     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 <mailto:QBS at qt-project.org>
>      > http://lists.qt-project.org/mailman/listinfo/qbs
>      >
>
>     _______________________________________________
>     QBS mailing list
>     QBS at qt-project.org <mailto:QBS at qt-project.org>
>     http://lists.qt-project.org/mailman/listinfo/qbs
>
>
>
>
> _______________________________________________
> QBS mailing list
> QBS at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qbs
>




More information about the Qbs mailing list