[QBS] run script after building products

Denis Shienkov denis.shienkov at gmail.com
Tue Mar 3 12:03:50 CET 2015


Hi all.

Seems, this issue is similar to my question:
http://lists.qt-project.org/pipermail/qbs/2015-February/001217.html

I too need to run the WiX product after building of all others products.
But I can't get any suggestion how to do it.. :(

In previous solution is offers to use the "uses" directive inside of Rule..
But, what if the "end" product (for example as WiX) has not any of "public"
rules? I mean that it is impossible to add the "usings" directive (has not
a place for it)..




2015-03-03 12:22 GMT+03:00 Christian Kandeler <
christian.kandeler at theqtcompany.com>:

> On 03/02/2015 08:16 PM, Stephan Gatzka wrote:
> > I've to build a bare metal project, consisting of two elf binaries and
> > an FPGA image.
> >
> > Building both elf binaries worked like charm. But after building both
> > elf binaries I have to combine both elf files and the pre-built FPGA
> > image into a single image. This involves some fancy calls to objcopy
> > and dd.
> >
> > Now I'm struggling with the task how to implement that in a qbs product.
> >
> > This is my current structure:
> > Project {
> >    name: "productName"
> >
> >    Application {
> >      name: "app1"
> >      ...
> >    }
> >
> >    Application {
> >      name: "app2"
> >      ...
> >    }
> >
> >    Product {
> >      name: "image"
> >
> >      Depends {
> >        name:"app1"
> >        required:true
>
> "true" is the default.
>
> >      }
> >      Depends {
> >        name:"app2"
> >        required:true
> >      }
> >
> >    }
> > }
> >
> > Inside the image product I tried to make the calls to objcopy and dd
> > in the prepare script of a Rule or a Transformer. I think I haven't
> > totally understood the behavior or intention of the usings and input
> > directives.
>
> "usings" has a bad name and it will be called "inputsFromDependencies"
> in qbs 1.4, which tells you what it means.
> Your use case sounds rather straightforward to implement, but it's hard
> to say what it should look like exactly without concrete knowledge about
> your project. Anyway, here's a rough sketch:
> Product {
>      name: "image"
>      type: ["custom-image"]
>      Rule {
>          usings: ["application"] // Provided you want to call objcopy on
> the exeutables
>          Artifact {
>              filePath: ... // Whatever your output is
>              fileTags: ["custom-image"]
>          }
>          ... // Possibly more artifacts here
>          prepare: {
>              var cmds = [];
>              // Add your Process commands here.
>              // The application products are available as
> inputs["application"][0] and inputs["application"][1] (but not in a
> guaranteed order).
>              return cmds;
>          }
>      }
> }
>
> Hope this helps a little.
>
>
> Christian
> _______________________________________________
> 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/20150303/adfeed52/attachment.html>


More information about the Qbs mailing list