[QBS] Using qbs for in-source build

Joerg Bornemann joerg.bornemann at theqtcompany.com
Wed Aug 5 10:31:25 CEST 2015

On 04-Aug-15 22:14, Orgad Shaneh wrote:

>   * If I delete the output file it is not regenerated (unless I delete
>     the build graph, which regenerates all the files)

The timestamps are stored in the build graph for performance reasons 
(esp. for Windows). If you mess around with the contents of the build 
dir you must pass --check-timestamps to qbs.

>   * If the source file is modified, but the target file has a newer date
>     (e.g. pbuilder was invoked from the shell), it is still regenerated.

Probably because the target file path in your output artifact is never 
generated. You said pbuilder will generate files in the source dir.
You could add a rule "html" -> "html-copy" that copies each HTML file 
into the build dir. Then a rule "html-copy" -> "html-cpp" runs pbuilder 
in the build dir where the cpp files will end up.

>   * In my example, I simplified the generator's output. The generator
>     actually produces 2 files: input.c and input_v.cpp. After it
>     finishes, I need to rename input.c -> input.cpp (overwriting the
>     existing one), and delete input_v.cpp.

You can use a JavaScriptCommand for that in the "html-copy" -> 
"html-cpp" rule.



More information about the Qbs mailing list