On 06/27/2014 03:26 PM, Kurt Keller wrote: > I am using Qbs 1.2.1: > > I would like to have a Transformer which should create two artifacts on > windows and only one on linux, depending on one single input file: > > > Transformer { > inputs: "version.h.in" > > Artifact { > fileName: "version.h" > fileTags: "hpp" > } > > Artifact { > // condition: qbs.targetOS.contains("windows") > condition: false > fileName: "resource.rc" > fileTags: "rc" > } > > prepare: { > for (var tag in outputs) { > for (var index in outputs[tag]) { > var artifact = outputs[tag][index].filePath; > print("file = " + artifact); > } > } > } > } > > There are always both artifact file paths printed, the condition inside > the Artifact item for file tags 'rc' does not do anything. > > Is this a bug or is this my mistake?
Conditions on artifacts do not work or at least not the way one might think they do. If you need a dynamic number of output artifacts, please use a Rule instead of a Transformer (just make up some tag that only matches your version.h.in file). There, use the "outputArtifacts" property instead of "Artifact" items. See http://qt-project.org/doc/qbs-1.2/rule-item.html for details. Christian _______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs