aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-05-24 11:08:09 +0200
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-05-24 11:33:42 +0200
commit9ff09fb283cd130fb717769b44f54bfbb28efd8a (patch)
tree711f70b4b494bd996d54bdab5c44f3c89b37a6d1 /tools
parent592b5b49b6c0043fae5db7721689813ebd226032 (diff)
parentec2b2a5f5d804095b6b2b8575b1cd1b75a8335ff (diff)
Merge remote-tracking branch 'origin/dev' into wip/scenegraphng
Conflicts: src/quick/items/qquickopenglshadereffectnode.cpp src/quick/items/qquickshadereffect.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h src/quick/scenegraph/qsgdefaultglyphnode_p.h Change-Id: I3d6874b4e4231a89d2836c04fe8e7f2ef2d698c4
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlimportscanner/main.cpp46
-rw-r--r--tools/qmlplugindump/Info.plist6
-rw-r--r--tools/qmlplugindump/main.cpp2
3 files changed, 38 insertions, 16 deletions
diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp
index dcb9709bb8..2569d78c63 100644
--- a/tools/qmlimportscanner/main.cpp
+++ b/tools/qmlimportscanner/main.cpp
@@ -157,24 +157,46 @@ QVariantMap pluginsForModulePath(const QString &modulePath) {
// Search for a given qml import in g_qmlImportPaths.
QString resolveImportPath(const QString &uri, const QString &version)
{
- // Create path from uri (QtQuick.Controls -> QtQuick/Controls)
- QString path = uri;
- path.replace(QLatin1Char('.'), QLatin1Char('/'));
- // search for the most spesifc version first
- QString versionedName = path + QLatin1Char('.') + version;
+ const QLatin1Char dot('.');
+ const QLatin1Char slash('/');
+ const QStringList parts = uri.split(dot, QString::SkipEmptyParts);
+
+ QString ver = version;
while (true) {
- // look in all g_qmlImportPaths
foreach (const QString &qmlImportPath, g_qmlImportPaths) {
- QString candidatePath = QDir::cleanPath(qmlImportPath + QLatin1Char('/') + versionedName);
- if (QDir(candidatePath).exists())
- return candidatePath; // import found
+ // Search for the most specific version first, and search
+ // also for the version in parent modules. For example:
+ // - qml/QtQml/Models.2.0
+ // - qml/QtQml.2.0/Models
+ // - qml/QtQml/Models.2
+ // - qml/QtQml.2/Models
+ // - qml/QtQml/Models
+ if (ver.isEmpty()) {
+ const QString candidatePath = QDir::cleanPath(qmlImportPath + slash + parts.join(slash));
+ if (QDir(candidatePath).exists())
+ return candidatePath; // import found
+ } else {
+ for (int index = parts.count() - 1; index >= 0; --index) {
+ const QString candidatePath = QDir::cleanPath(qmlImportPath + slash
+ + parts.mid(0, index + 1).join(slash)
+ + dot + ver + slash
+ + parts.mid(index + 1).join(slash));
+
+ if (QDir(candidatePath).exists())
+ return candidatePath; // import found
+ }
+ }
}
// remove the last version digit; stop if there are none left
- int lastDot = versionedName.lastIndexOf(QLatin1Char('.'));
- if (lastDot == -1)
+ if (ver.isEmpty())
break;
- versionedName = versionedName.mid(0, lastDot);
+
+ int lastDot = ver.lastIndexOf(dot);
+ if (lastDot == -1)
+ ver.clear();
+ else
+ ver = ver.mid(0, lastDot);
}
return QString(); // not found
diff --git a/tools/qmlplugindump/Info.plist b/tools/qmlplugindump/Info.plist
index f35846d048..e6c4914ca0 100644
--- a/tools/qmlplugindump/Info.plist
+++ b/tools/qmlplugindump/Info.plist
@@ -5,11 +5,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
- <string>@TYPEINFO@</string>
+ <string>????</string>
<key>CFBundleExecutable</key>
- <string>@EXECUTABLE@</string>
+ <string>qmlplugindump</string>
<key>CFBundleIdentifier</key>
- <string>com.nokia.qt.qmlplugindump</string>
+ <string>org.qt-project.qt.qmlplugindump</string>
<key>LSUIElement</key>
<string>1</string>
</dict>
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp
index 7870e3a9df..d0d70fd0fe 100644
--- a/tools/qmlplugindump/main.cpp
+++ b/tools/qmlplugindump/main.cpp
@@ -771,7 +771,7 @@ static bool readDependenciesData(QString dependenciesFile, const QByteArray &fil
QString version = obj.value(QStringLiteral("version")).toString();
if (name.isEmpty() || urisToSkip.contains(name) || version.isEmpty())
continue;
- if (name.endsWith(QLatin1String("Private"))) {
+ if (name.endsWith(QLatin1String("Private"), Qt::CaseInsensitive)) {
if (verbose)
std::cerr << "skipping private dependecy "
<< qPrintable( name ) << " " << qPrintable(version) << std::endl;