diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-11-11 08:59:27 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-11-12 16:28:50 +0100 |
commit | 93564d323514a96f6e848825e5336beff2410d2d (patch) | |
tree | 9d6525b76eaf69124025a63d641052c290e7f918 | |
parent | 78fcaf4814c95f0a0c09c09857f45f011014fa8b (diff) |
translate multipart module names in moduleProperty function
Task-number: QBS-452
Change-Id: Ibd83e1866aee0e2922bfa6f2541151b58fb24ea5
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r-- | src/lib/jsextensions/moduleproperties.cpp | 9 | ||||
-rw-r--r-- | src/lib/jsextensions/moduleproperties.h | 1 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata/codegen/codegen.qbs | 6 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/jsextensions/moduleproperties.cpp b/src/lib/jsextensions/moduleproperties.cpp index 86297a3eb..cc9102b73 100644 --- a/src/lib/jsextensions/moduleproperties.cpp +++ b/src/lib/jsextensions/moduleproperties.cpp @@ -121,7 +121,7 @@ QScriptValue ModuleProperties::moduleProperties(QScriptContext *context, QScript } ScriptEngine * const qbsEngine = static_cast<ScriptEngine *>(engine); - const QString moduleName = context->argument(0).toString(); + const QString moduleName = internalModuleName(context->argument(0).toString()); const QString propertyName = context->argument(1).toString(); QVariant value = qbsEngine->retrieveFromPropertyCache(moduleName, propertyName, properties); @@ -143,5 +143,12 @@ QScriptValue ModuleProperties::moduleProperties(QScriptContext *context, QScript return engine->toScriptValue(value); } +QString ModuleProperties::internalModuleName(const QString &name) +{ + QString result = name; + result.replace(QLatin1Char('.'), QLatin1Char('/')); + return result; +} + } // namespace Internal } // namespace qbs diff --git a/src/lib/jsextensions/moduleproperties.h b/src/lib/jsextensions/moduleproperties.h index 644f5f25c..9032d83ee 100644 --- a/src/lib/jsextensions/moduleproperties.h +++ b/src/lib/jsextensions/moduleproperties.h @@ -53,6 +53,7 @@ private: static QScriptValue moduleProperties(QScriptContext *context, QScriptEngine *engine, bool oneValue); + static QString internalModuleName(const QString &name); }; } // namespace Internal diff --git a/tests/auto/blackbox/testdata/codegen/codegen.qbs b/tests/auto/blackbox/testdata/codegen/codegen.qbs index d7210e21c..bb71a5540 100644 --- a/tests/auto/blackbox/testdata/codegen/codegen.qbs +++ b/tests/auto/blackbox/testdata/codegen/codegen.qbs @@ -18,6 +18,7 @@ Project { fileTags: ['text'] } Depends { name: 'cpp' } + Depends { name: 'Qt.core' } } Rule { @@ -40,6 +41,11 @@ Project { return str; } + // check whether multipart module name translation is working + var actual = product.moduleProperty("Qt.core", "mocName"); + if (!actual || !actual.contains("moc")) + throw "multipart module name translation is broken"; + // check whether we can access project properties here var expected = "CODEGEN_" + product.moduleProperty("qbs", "targetOS")[0].toUpperCase(); if (project.osSpecificName !== expected) |