This ordering for include directories is more correct

Though likely to be still wrong.
This commit is contained in:
dt
2009-11-02 16:57:44 +01:00
parent c542714707
commit 9891267a92

View File

@@ -546,6 +546,8 @@ void Qt4Project::updateCodeModel()
if (debug) if (debug)
qDebug()<<"Qt4Project::updateCodeModel()"; qDebug()<<"Qt4Project::updateCodeModel()";
// TODO figure out the correct ordering of #include directories
CppTools::CppModelManagerInterface *modelmanager = CppTools::CppModelManagerInterface *modelmanager =
ExtensionSystem::PluginManager::instance() ExtensionSystem::PluginManager::instance()
->getObject<CppTools::CppModelManagerInterface>(); ->getObject<CppTools::CppModelManagerInterface>();
@@ -580,7 +582,7 @@ void Qt4Project::updateCodeModel()
const QString newQtIncludePath = versionInfo.value(QLatin1String("QT_INSTALL_HEADERS")); const QString newQtIncludePath = versionInfo.value(QLatin1String("QT_INSTALL_HEADERS"));
const QString newQtLibsPath = versionInfo.value(QLatin1String("QT_INSTALL_LIBS")); const QString newQtLibsPath = versionInfo.value(QLatin1String("QT_INSTALL_LIBS"));
predefinedIncludePaths.append(newQtIncludePath); predefinedIncludePaths.prepend(newQtIncludePath);
QDir dir(newQtIncludePath); QDir dir(newQtIncludePath);
foreach (QFileInfo info, dir.entryInfoList(QDir::Dirs)) { foreach (QFileInfo info, dir.entryInfoList(QDir::Dirs)) {
const QString path = info.fileName(); const QString path = info.fileName();
@@ -588,7 +590,7 @@ void Qt4Project::updateCodeModel()
if (path == QLatin1String("Qt")) if (path == QLatin1String("Qt"))
continue; // skip $QT_INSTALL_HEADERS/Qt. There's no need to include it. continue; // skip $QT_INSTALL_HEADERS/Qt. There's no need to include it.
else if (path.startsWith(QLatin1String("Qt")) || path == QLatin1String("phonon")) else if (path.startsWith(QLatin1String("Qt")) || path == QLatin1String("phonon"))
predefinedIncludePaths.append(info.absoluteFilePath()); predefinedIncludePaths.prepend(info.absoluteFilePath());
} }
FindQt4ProFiles findQt4ProFiles; FindQt4ProFiles findQt4ProFiles;
@@ -598,13 +600,13 @@ void Qt4Project::updateCodeModel()
QStringList allFrameworkPaths = predefinedFrameworkPaths; QStringList allFrameworkPaths = predefinedFrameworkPaths;
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
allFrameworkPaths.append(newQtLibsPath); allFrameworkPaths.prepend(newQtLibsPath);
// put QtXXX.framework/Headers directories in include path since that qmake's behavior // put QtXXX.framework/Headers directories in include path since that qmake's behavior
QDir frameworkDir(newQtLibsPath); QDir frameworkDir(newQtLibsPath);
foreach (QFileInfo info, frameworkDir.entryInfoList(QDir::Dirs)) { foreach (QFileInfo info, frameworkDir.entryInfoList(QDir::Dirs)) {
if (! info.fileName().startsWith(QLatin1String("Qt"))) if (! info.fileName().startsWith(QLatin1String("Qt")))
continue; continue;
allIncludePaths.append(info.absoluteFilePath()+"/Headers"); allIncludePaths.prepend(info.absoluteFilePath()+"/Headers");
} }
#endif #endif
@@ -641,9 +643,9 @@ void Qt4Project::updateCodeModel()
const QStringList proIncludePaths = pro->variableValue(IncludePathVar); const QStringList proIncludePaths = pro->variableValue(IncludePathVar);
foreach (const QString &includePath, proIncludePaths) { foreach (const QString &includePath, proIncludePaths) {
if (!allIncludePaths.contains(includePath)) if (!allIncludePaths.contains(includePath))
allIncludePaths.append(includePath); allIncludePaths.prepend(includePath);
if (!info.includes.contains(includePath)) if (!info.includes.contains(includePath))
info.includes.append(includePath); info.includes.prepend(includePath);
} }
{ // Pkg Config support { // Pkg Config support
@@ -655,13 +657,13 @@ void Qt4Project::updateCodeModel()
process.waitForFinished(); process.waitForFinished();
QString result = process.readAllStandardOutput(); QString result = process.readAllStandardOutput();
foreach(const QString &part, result.trimmed().split(' ', QString::SkipEmptyParts)) { foreach(const QString &part, result.trimmed().split(' ', QString::SkipEmptyParts)) {
info.includes.append(part.mid(2)); // Chop off "-I" info.includes.prepend(part.mid(2)); // Chop off "-I"
} }
} }
} }
// Add mkspec directory // Add mkspec directory
info.includes.append(qtVersion(activeBuildConfiguration())->mkspecPath()); info.includes.prepend(qtVersion(activeBuildConfiguration())->mkspecPath());
info.frameworkPaths = allFrameworkPaths; info.frameworkPaths = allFrameworkPaths;
@@ -675,7 +677,7 @@ void Qt4Project::updateCodeModel()
} }
// Add mkspec directory // Add mkspec directory
allIncludePaths.append(qtVersion(activeBuildConfiguration())->mkspecPath()); allIncludePaths.prepend(qtVersion(activeBuildConfiguration())->mkspecPath());
// Dump things out // Dump things out
// This is debugging output... // This is debugging output...