Hi, I am trying to set up a project using the Qt Plugin System. The project consists of multiple binaries, one dynamic library that defines the Q_INTERFACE (LIB) and multiple plugins (PLUGIN) implementing this interface. To have common unit tests for all plugins, I have a gtest-based binary that loads and tests the plugins via their interface. This binary should only get linked to LIB, not to PLUGINS, which is why I removed the „dynamiclibrary“ tag, and added a new tag, „plugin“ for PLUGINS. Now, of course, my plugin will not be build because there is no rule cpp,hpp - plugin. Is there an easy way to call the prepare script of the cpp rules that would be active for a dynamic library? Something like prepare: cpp.compiler.prepare? Or is there a better way to achieve what I want?
I am probably not the only person trying to create a plugin, maybe it would make sense to add such a plugin type to QBS.cpp or qt_plugin to QBS.Qt? Or is there already something like this? plugin1.qbs: Product { name: „PLUGIN1“ type: „plugin“ Depends {name: „cpp“} Depends { name: „LIB“ } Rule { id: mycompiler inputs: ["cpp"] auxiliaryInputs: ["hpp"] Artifact { fileTags: [„plugin"] filePath: product.name + ".so" } prepare: compiler.prepare } } test.qbs CppApplication { type: ["application", "copied_plugins"] name: "PluginTester" Depends { name: "cpp" } cpp.systemIncludePaths: [ "/usr/src/gtest/" ] Depends { name: „LIB" } Depends { name: „PLUGIN1" } files: [ "main.cpp" ] Rule { id: plugin_copy // take outputs of projects this product depends on, if they are of type plugin // as input to this rule usings: [„plugin"] Artifact { fileTags: [ "copied_plugins" ] filePath: input.fileName } prepare: { var args = [] args.push("--symbolic-link") args.push(input.filePath) args.push(output.filePath) var cmd = new Command("cp", args) cmd.description = "creating symlink for " + input.fileName + " to PluginTester" return cmd; } } } _______________________________________________ QBS mailing list QBS@qt-project.org http://lists.qt-project.org/mailman/listinfo/qbs