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

Christian Kandeler christian.kandeler at digia.com
Thu May 15 12:01:14 CEST 2014


On 05/15/2014 11:53 AM, Denis Shienkov wrote:
>  > Well I guess it is fairly special - I'm compiling stuff for a
> microcontroller using gcc for arm embedded.
>
> As I know, you can create a custom *.config file in which to specify
> paths to your toolchain, and then pass to qbs this your config file.

That's news to me.

> PS: For me too very interestingly any HOWTO for setup of custom
> toolchain/profile for qbs. So, I also join to this question. :)

qbs-setup-toolchains and qbs-config are the tools you need. See also 
http://qt-project.org/doc/qbs-1.2/configuring.html.


Christian

>
>
> BR,
> Denis
>
>
> 2014-05-15 13:44 GMT+04:00 Tim Hutt <tdhutt at gmail.com
> <mailto:tdhutt at gmail.com>>:
>
>     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. Is there any documentation on
>     profiles? 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). 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?
>
>     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 <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