aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2024-04-19 13:17:46 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2024-04-22 08:30:36 +0000
commit12bc60c93d684432af1b28576f21f853b8922d99 (patch)
treed087f8cdc9c45a70e2322457ebcd8513e1a51542
parentca74c524363d17c689bb0ec4ca39c744df8d036e (diff)
Loader: Fix look-up of qbs properties from provider probes
... by setting the provider scope on the values instead of the item. Task-number: QBS-1742 Change-Id: I8084e3f8529335c3d045c057ba70a3c3b091efa6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
-rw-r--r--changelogs/changes-2.3.1.md4
-rw-r--r--src/lib/corelib/loader/moduleproviderloader.cpp4
-rw-r--r--tests/auto/blackbox/testdata-providers/probe-in-module-provider/module-providers/provider_a.qbs6
3 files changed, 12 insertions, 2 deletions
diff --git a/changelogs/changes-2.3.1.md b/changelogs/changes-2.3.1.md
index 0514bc204..598c6748f 100644
--- a/changelogs/changes-2.3.1.md
+++ b/changelogs/changes-2.3.1.md
@@ -1,3 +1,6 @@
+# Language
+* Fixed look-up of qbs properties in module providers via probes (QBS-1742).
+
# Apple support
* Fixed codesing module when multiplexing over build variants (QBS-1775).
@@ -5,4 +8,5 @@
* Fixed release jobs.
# Contributors
+* Christian Kandeler
* Ivan Komissarov
diff --git a/src/lib/corelib/loader/moduleproviderloader.cpp b/src/lib/corelib/loader/moduleproviderloader.cpp
index a9f5eb26f..212ad75b3 100644
--- a/src/lib/corelib/loader/moduleproviderloader.cpp
+++ b/src/lib/corelib/loader/moduleproviderloader.cpp
@@ -378,7 +378,9 @@ ModuleProviderLoader::EvaluationResult ModuleProviderLoader::evaluateModuleProvi
BuiltinDeclarations::instance().nameForType(ItemType::ModuleProvider)));
}
- providerItem->setScope(createProviderScope(product, qbsModule));
+ Item * const scope = createProviderScope(product, qbsModule);
+ for (auto it = providerItem->properties().begin(); it != providerItem->properties().end(); ++it)
+ it.value()->setScope(scope, {});
providerItem->setProperty(
StringConstants::nameProperty(),
VariantValue::create(name.toString()));
diff --git a/tests/auto/blackbox/testdata-providers/probe-in-module-provider/module-providers/provider_a.qbs b/tests/auto/blackbox/testdata-providers/probe-in-module-provider/module-providers/provider_a.qbs
index a1228b19c..476a83143 100644
--- a/tests/auto/blackbox/testdata-providers/probe-in-module-provider/module-providers/provider_a.qbs
+++ b/tests/auto/blackbox/testdata-providers/probe-in-module-provider/module-providers/provider_a.qbs
@@ -1,11 +1,13 @@
import "../../qbs-module-providers-helpers.js" as Helpers
ModuleProvider {
+ property string sysroot: qbs.sysroot
Probe {
id: theProbe
property string theValue: "value"
+ property string dummy: sysroot
configure: {
- console.info("Running probe");
+ console.info("Running probe with irrelevant value '" + dummy + "'");
found = true;
}
}
@@ -14,6 +16,8 @@ ModuleProvider {
property string theValue: theProbe.theValue
relativeSearchPaths: {
Helpers.writeModule(outputBaseDir, "qbsmetatestmodule", theValue, undefined, found);
+ if (sysroot !== qbs.sysroot)
+ throw "this is unexpected";
return "";
}
}