[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