From a806c6a8b299836e578379c2e297adfb65b3c7fd Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 20 Jul 2012 12:39:53 +0200 Subject: Search the include paths for json files containing plugin info This fixes shadow builds with autogenerated .json files as e.g. used by Qt Creator. Change-Id: Ibb783b05d97d996100da4b0dca859fa3f310dc83 Reviewed-by: Friedemann Kleint --- src/tools/moc/moc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/tools/moc/moc.cpp') diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp index e76f2c1776..f63404c3c2 100644 --- a/src/tools/moc/moc.cpp +++ b/src/tools/moc/moc.cpp @@ -1103,6 +1103,18 @@ void Moc::parsePluginData(ClassDef *def) next(STRING_LITERAL); QByteArray metaDataFile = unquotedLexem(); QFileInfo fi(QFileInfo(QString::fromLocal8Bit(currentFilenames.top().constData())).dir(), QString::fromLocal8Bit(metaDataFile.constData())); + for (int j = 0; j < includes.size() && !fi.exists(); ++j) { + const IncludePath &p = includes.at(j); + if (p.isFrameworkPath) + continue; + + fi.setFile(QString::fromLocal8Bit(p.path.constData()), QString::fromLocal8Bit(metaDataFile.constData())); + // try again, maybe there's a file later in the include paths with the same name + if (fi.isDir()) { + fi = QFileInfo(); + continue; + } + } if (!fi.exists()) { QByteArray msg; msg += "Plugin Metadata file "; -- cgit v1.2.3