diff options
Diffstat (limited to 'tests/auto/blackbox/testdata-providers/module-providers')
4 files changed, 93 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata-providers/module-providers/main.cpp b/tests/auto/blackbox/testdata-providers/module-providers/main.cpp new file mode 100644 index 000000000..85a4f551c --- /dev/null +++ b/tests/auto/blackbox/testdata-providers/module-providers/main.cpp @@ -0,0 +1,8 @@ +#include <iostream> + +int main() +{ + std::cout << "The letters are " << LETTER1 << " and " << LETTER2 << std::endl; + std::cout << "The MY_DEFINE is " << MY_DEFINE << std::endl; + return 0; +} diff --git a/tests/auto/blackbox/testdata-providers/module-providers/module-providers.qbs b/tests/auto/blackbox/testdata-providers/module-providers/module-providers.qbs new file mode 100644 index 000000000..e83c80bb1 --- /dev/null +++ b/tests/auto/blackbox/testdata-providers/module-providers/module-providers.qbs @@ -0,0 +1,35 @@ +import qbs.Host + +Project { + property bool enabled: { + var result = qbs.targetPlatform === Host.platform(); + if (!result) + console.info("targetPlatform differs from hostPlatform"); + return result; + } + readonly property string beginning: "beginning" + CppApplication { + name: "app1" + Depends { name: "mygenerator.module1" } + Depends { name: "mygenerator.module2" } + Depends { name: "othergenerator" } + moduleProviders.mygenerator.chooseLettersFrom: project.beginning + moduleProviders.othergenerator.someDefines: name + files: "main.cpp" + } + CppApplication { + readonly property string end: "end" + name: "app2" + Depends { name: "mygenerator.module1" } + Depends { name: "mygenerator.module2" } + Depends { name: "othergenerator" } + Profile { + name: "myProfile" + baseProfile: project.profile + moduleProviders.mygenerator.chooseLettersFrom: product.end + moduleProviders.othergenerator.someDefines: "app2" + } + qbs.profile: "myProfile" + files: "main.cpp" + } +} diff --git a/tests/auto/blackbox/testdata-providers/module-providers/module-providers/mygenerator/provider.qbs b/tests/auto/blackbox/testdata-providers/module-providers/module-providers/mygenerator/provider.qbs new file mode 100644 index 000000000..dae02c03a --- /dev/null +++ b/tests/auto/blackbox/testdata-providers/module-providers/module-providers/mygenerator/provider.qbs @@ -0,0 +1,31 @@ +import qbs.File; +import qbs.FileInfo; +import qbs.TextFile; + +ModuleProvider { + property string chooseLettersFrom + relativeSearchPaths: { + console.info("Running setup script for " + name); + var startAtBeginning = chooseLettersFrom === "beginning"; + var moduleBaseDir = FileInfo.joinPaths(outputBaseDir, "modules", "mygenerator"); + var module1Dir = FileInfo.joinPaths(moduleBaseDir, "module1"); + File.makePath(module1Dir); + var module1 = new TextFile(FileInfo.joinPaths(module1Dir, "module1.qbs"), TextFile.WriteOnly); + module1.writeLine("Module {"); + module1.writeLine(" Depends { name: 'cpp' }"); + module1.writeLine(" cpp.defines: 'LETTER1=" + (startAtBeginning ? "\\\'A\\\'" : "\\\'Z\\\'") + + "'"); + module1.writeLine("}"); + module1.close(); + var module2Dir = FileInfo.joinPaths(moduleBaseDir, "module2"); + File.makePath(module2Dir); + var module2 = new TextFile(FileInfo.joinPaths(module2Dir, "module2.qbs"), TextFile.WriteOnly); + module2.writeLine("Module {"); + module2.writeLine(" Depends { name: 'cpp' }"); + module2.writeLine(" cpp.defines: 'LETTER2=" + (startAtBeginning ? "\\\'B\\\'" : "\\\'Y\\\'") + + "'"); + module2.writeLine("}"); + module2.close(); + return ""; + } +} diff --git a/tests/auto/blackbox/testdata-providers/module-providers/module-providers/othergenerator/provider.qbs b/tests/auto/blackbox/testdata-providers/module-providers/module-providers/othergenerator/provider.qbs new file mode 100644 index 000000000..66557037c --- /dev/null +++ b/tests/auto/blackbox/testdata-providers/module-providers/module-providers/othergenerator/provider.qbs @@ -0,0 +1,19 @@ +import qbs.File; +import qbs.FileInfo; +import qbs.TextFile; + +ModuleProvider { + property string someDefines + relativeSearchPaths: { + console.info("Running setup script for " + name); + var moduleDir = FileInfo.joinPaths(outputBaseDir, "modules", "othergenerator"); + File.makePath(moduleDir); + var module = new TextFile(FileInfo.joinPaths(moduleDir, "module.qbs"), TextFile.WriteOnly); + module.writeLine("Module {"); + module.writeLine(" Depends { name: 'cpp' }"); + module.writeLine(" cpp.defines: 'MY_DEFINE=\"" + someDefines + "\"'"); + module.writeLine("}"); + module.close(); + return ""; + } +} |