Qt4ProjectManager: Fix codemodel not finding source files in VPATH

Due to not using VPATH for resolving the absolute paths.
Task-number: QTCREATORBUG-7441

Change-Id: Ifd76e6e782195b6371aac49ed257534184149805
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
Daniel Teske
2012-06-05 17:32:30 +02:00
parent 72db9dcff3
commit 79d35cd886
2 changed files with 20 additions and 8 deletions

View File

@@ -1980,9 +1980,15 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
newVarValues[DefinesVar] = m_readerExact->values(QLatin1String("DEFINES")); newVarValues[DefinesVar] = m_readerExact->values(QLatin1String("DEFINES"));
newVarValues[IncludePathVar] = includePaths(m_readerExact); newVarValues[IncludePathVar] = includePaths(m_readerExact);
newVarValues[CppFlagsVar] = m_readerExact->values("QMAKE_CXXFLAGS"); newVarValues[CppFlagsVar] = m_readerExact->values("QMAKE_CXXFLAGS");
newVarValues[CppHeaderVar] = fileListForVar(m_readerExact, m_readerCumulative, QLatin1String("HEADERS"), m_projectDir); newVarValues[CppHeaderVar] = fileListForVar(m_readerExact, m_readerCumulative,
newVarValues[CppSourceVar] = fileListForVar(m_readerExact, m_readerCumulative, QLatin1String("SOURCES"), m_projectDir); QLatin1String("HEADERS"), m_projectDir,
newVarValues[ObjCSourceVar] = fileListForVar(m_readerExact, m_readerCumulative, QLatin1String("OBJECTIVE_SOURCES"), m_projectDir); ProjectExplorer::HeaderType);
newVarValues[CppSourceVar] = fileListForVar(m_readerExact, m_readerCumulative,
QLatin1String("SOURCES"), m_projectDir,
ProjectExplorer::SourceType);
newVarValues[ObjCSourceVar] = fileListForVar(m_readerExact, m_readerCumulative,
QLatin1String("OBJECTIVE_SOURCES"), m_projectDir,
ProjectExplorer::SourceType);
newVarValues[UiDirVar] = QStringList() << uiDirPath(m_readerExact); newVarValues[UiDirVar] = QStringList() << uiDirPath(m_readerExact);
newVarValues[MocDirVar] = QStringList() << mocDirPath(m_readerExact); newVarValues[MocDirVar] = QStringList() << mocDirPath(m_readerExact);
newVarValues[PkgConfigVar] = m_readerExact->values(QLatin1String("PKGCONFIG")); newVarValues[PkgConfigVar] = m_readerExact->values(QLatin1String("PKGCONFIG"));
@@ -2036,18 +2042,24 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
} }
QStringList Qt4ProFileNode::fileListForVar(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative, QStringList Qt4ProFileNode::fileListForVar(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative,
const QString &varName, const QString &projectDir) const const QString &varName, const QString &projectDir, FileType type) const
{ {
QStringList baseVPathsExact = baseVPaths(readerExact, projectDir);
QStringList vPathsExact = fullVPaths(baseVPathsExact, readerExact, type, varName, projectDir);
QStringList result; QStringList result;
result = readerExact->absoluteFileValues(varName, result = readerExact->absoluteFileValues(varName,
projectDir, projectDir,
QStringList() << projectDir, vPathsExact,
0); 0);
if (readerCumulative) if (readerCumulative) {
QStringList baseVPathsCumulative = baseVPaths(readerCumulative, projectDir);
QStringList vPathsCumulative = fullVPaths(baseVPathsCumulative, readerCumulative, type, varName, projectDir);
result += readerCumulative->absoluteFileValues(varName, result += readerCumulative->absoluteFileValues(varName,
projectDir, projectDir,
QStringList() << projectDir, vPathsCumulative,
0); 0);
}
result.removeDuplicates(); result.removeDuplicates();
return result; return result;
} }

View File

@@ -423,7 +423,7 @@ private:
QStringList updateUiFiles(); QStringList updateUiFiles();
QStringList fileListForVar(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative, QStringList fileListForVar(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative,
const QString &varName, const QString &projectDir) const; const QString &varName, const QString &projectDir, FileType type) const;
QString uiDirPath(QtSupport::ProFileReader *reader) const; QString uiDirPath(QtSupport::ProFileReader *reader) const;
QString mocDirPath(QtSupport::ProFileReader *reader) const; QString mocDirPath(QtSupport::ProFileReader *reader) const;
QStringList includePaths(QtSupport::ProFileReader *reader) const; QStringList includePaths(QtSupport::ProFileReader *reader) const;