On 07/23/2015 04:59 PM, Waldschmidt, Stefan wrote: > I am struggling for a while trying to trigger a Rule on completion of an > Application. > In any way I tried it, the Rule is never executed. > Here is a small example, which do not work for me, because the Rule is > never executed. > > import qbs 1.0 > import qbs.File > import qbs.FileInfo > > Project { > name: "mainproject" > minimumQbsVersion: "1.4.0" > > > Product { > name: "helloworld" > type: "application" > files: "main.c" > Depends { name: "cpp" } > } > > Product { > name: "copy" > type: ["custom-image"] > Depends { name:"helloworld" } > > Rule { > multiplex: true > inputsFromDependencies: ["application"] > > prepare: { > var cmds = []; > > var cmd = new JavaScriptCommand(); > cmd.description = "deploy " + input.filePath; > cmd.highlight = "codegen"; > cmd.sourceCode = function() { > File.copy(input.filePath, "/tmp/helloworld"); > } > cmds.push(cmd); > return cmds; > } > } > } > } > > Probably I am making a noob's mistake. I would be very glad for any hint.
Your rule is missing an output artifact. There always needs to be a chain of file tags leading to your product type. In your case, this should do the trick: Artifact { filePath: "/tmp/helloworld" fileTags: ["custom-image"] } And then use output.filePath in the command's source code. Christian _______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs