On 09/08/2016 02:03 PM, Bo Thorsen wrote: > Ok, go try it. Create a simple python or perl script that reads a file. > The file just has a single number N inside it. And based on N the script > outputs those files: > > server.h > method1.h > method2.h > ... > methodN.h > > Inside method1.h you write this: > > #include <QObject> > > class Method1 : public QObject { > Q_OBJECT > }; > > server.h has this: > > #include "method1.h" > ... > #include "methodN.h" > > class Server { > public: > Method1* call1() { return new Method1; } > ... > MethodN* callN() { return new MethodN; } > }; > > In main.cpp you instantiate Server. > > The only problem is that you have to run moc on each of the .h files. > > Solution to the problem is only accepted if you can press build one > single time inside both Visual Studio and Qt Creator and it builds this > even when you modify the input file and the main.cpp.
In qbs: Rule { inputs: ["metadata"] fileTags: ["hpp"] outputArtifacts: { var p = new Process(); try { p.exec("path_to_script", ["--list", input.filePath]); var files = p.readStdout.split("\n"); var artifacts = []; for (var i in files) artifacts.push({ filePath: files[i], fileTags: ["hpp"]}); return artifacts: } finally { p.close(); } prepare: { var cmd = new Command("path_to_script", ["--generate", input.filePath]); cmd.description = "creating headers"; return [cmd]; } } (This is a somewhat more advanced example in that it is not assumed that we have a priori knowledge about how the content of the input file relates to the outputs.) FYI, Christian _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development