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

NIkolai Marchenko enmarantispam at gmail.com
Sat May 27 13:28:14 CEST 2017


Yes, the files that reference the defines in their body are rebuilt.
This mechanism is what I use to inject git information into our app and so
far it worked properly.

On Sat, May 27, 2017 at 6:56 AM, André Somers <andre at familiesomers.nl>
wrote:

>
>
> Op 26/05/2017 om 18:46 schreef NIkolai Marchenko:
>
> 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.
>
> Does that actually rebuild the files where these variables are used when
> building? If not, then it is a bit useless.
>
> André
>
>
> 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
>>
>
>
>
> _______________________________________________
> Qbs mailing listQbs at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/qbs
>
>
>
> _______________________________________________
> 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/20170527/b60a326d/attachment.html>


More information about the Qbs mailing list