[Qbs] Qbs: how to use a pre-build script

NIkolai Marchenko enmarantispam at gmail.com
Fri May 26 18:46:33 CEST 2017


This is what you really need:

http://codepad.org/LVxUvSaF a probe
http://codepad.org/14TUDCor utilitary javascript functions that probe
references. Sorry for code quality ;)

This probe attaches to a HEAD file to make sure params are regenerated each
time it changes.
used in actual project as:

import "../../GitProbe.qbs" as GitProbe

.... later in product....

GitProbe {

    id: gitProbe

    sourceDirectory: project.sourceDirectory

}


cpp.defines:{

    var result =base.concat([

                       "GIT_VERSION=" + "\"" + gitProbe.hash + "\"",

                       "GIT_TAG=" + "\"" + gitProbe.tag + "\"",

                       "GIT_COMMIT_DATE=" + "\"" + gitProbe.commitdate + "\"",

                  ])

    return result

}


and then use these defines directly in code without any generated header.



On Fri, May 26, 2017 at 7:17 PM, Timur Kristóf <timur.kristof at gmail.com>
wrote:

> Hi,
>
> What is the correct way to execute a pre-build script with Qbs whose
> output is a dependency to the product being built?
>
> For example, I have a script that generates a C++ header file
> containing the current git revision and the date of the build. This
> header is then included into one of the C++ source files of the
> product. How do I execute this script before compiling the product?
>
> I could try to create a Rule item, but I'm not sure how to make sure
> that the rule is executed before the project is compiled. Or should I
> create a separate Product and make the main Product depend on that?
>
> Thanks in advance!
> Cheers,
> Timur
> _______________________________________________
> 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/20170526/dbce141c/attachment.html>


More information about the Qbs mailing list