Merge remote-tracking branch 'origin/4.1'

Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/qmakeprojectmanager/makestep.cpp
	src/shared/qbs

Change-Id: If1787ed23afa786ed2cef57f53c1db642559cbe0
This commit is contained in:
Eike Ziller
2016-08-31 14:40:38 +02:00
36 changed files with 488 additions and 69 deletions

View File

@@ -458,19 +458,27 @@ QString PluginDumper::buildQmltypesPath(const QString &name) const
void PluginDumper::loadDependencies(const QStringList &dependencies,
QStringList &errors,
QStringList &warnings,
QList<FakeMetaObject::ConstPtr> &objects) const
QList<FakeMetaObject::ConstPtr> &objects,
QSet<QString> *visited) const
{
if (dependencies.isEmpty())
return;
QScopedPointer<QSet<QString>> visitedPtr(visited ? visited : new QSet<QString>());
QStringList dependenciesPaths;
QString path;
for (const QString &name: dependencies) {
path = buildQmltypesPath(name);
if (!path.isNull())
dependenciesPaths << path;
visitedPtr->insert(name);
}
QStringList newDependencies;
loadQmlTypeDescription(dependenciesPaths, errors, warnings, objects, 0, &newDependencies);
newDependencies = (newDependencies.toSet() - *visitedPtr).toList();
if (!newDependencies.isEmpty())
loadDependencies(newDependencies, errors, warnings, objects);
loadDependencies(newDependencies, errors, warnings, objects, visitedPtr.take());
}
void PluginDumper::loadQmltypesFile(const QStringList &qmltypesFilePaths,