CppTools: Fix include/framework search order

Task-number: QTCREATORBUG-11599
Change-Id: Ie0bd25e0d6376b5e2c0e251e64aad8dfb773e76e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
This commit is contained in:
Finn Brudal
2016-05-31 10:35:56 +02:00
parent 943cb2b378
commit 23cd42557d

View File

@@ -291,25 +291,19 @@ QString CppSourceProcessor::resolveFile_helper(const QString &fileName,
ProjectPartHeaderPaths::Iterator headerPathsIt) ProjectPartHeaderPaths::Iterator headerPathsIt)
{ {
auto headerPathsEnd = m_headerPaths.end(); auto headerPathsEnd = m_headerPaths.end();
for (; headerPathsIt != headerPathsEnd; ++headerPathsIt) {
if (headerPathsIt->isFrameworkPath())
continue;
const QString path = headerPathsIt->path + fileName;
if (m_workingCopy.contains(path) || checkFile(path))
return path;
}
const int index = fileName.indexOf(QLatin1Char('/')); const int index = fileName.indexOf(QLatin1Char('/'));
if (index != -1) { for (; headerPathsIt != headerPathsEnd; ++headerPathsIt) {
const QString frameworkName = fileName.left(index); if (headerPathsIt->isValid()) {
const QString name = frameworkName + QLatin1String(".framework/Headers/") QString path;
+ fileName.mid(index + 1); if (headerPathsIt->isFrameworkPath()) {
if (index == -1)
foreach (const ProjectPartHeaderPath &headerPath, m_headerPaths) {
if (!headerPath.isFrameworkPath())
continue; continue;
const QString path = headerPath.path + name; path = headerPathsIt->path + fileName.left(index)
if (checkFile(path)) + QLatin1String(".framework/Headers/") + fileName.mid(index + 1);
} else {
path = headerPathsIt->path + fileName;
}
if (m_workingCopy.contains(path) || checkFile(path))
return path; return path;
} }
} }