move postprocessing of INCLUDEPATH into ProFileEvaluator::accept()

the rationale is that postprocessing which is done by the generators (in
some cases right at the point of emitting code to the makefile) should
be abstracted inside the "medium-level" class which also does the path
resolution done by the generators.

along the way we also make minor fixes to the processing:
- we pay attention to CONFIG+=no_include_pwd
- we add the build dir as well when shadow building

Change-Id: Ib389942fdc0470e05c1aa49e3615b6ac00241662
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
Oswald Buddenhagen
2014-11-26 17:37:42 +01:00
parent 1304c08764
commit 5a9a24fa3d
5 changed files with 19 additions and 25 deletions

View File

@@ -231,7 +231,6 @@ public:
QStringList newProjectFilesCumlative;
ProFile *fileForCurrentProjectCumlative; // probably only used in parser thread
TargetInformation targetInformation;
QString resolvedMkspecPath;
InstallsList installsList;
QHash<QmakeVariable, QStringList> newVarValues;
bool isDeployable;
@@ -1892,7 +1891,6 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
}
}
result->targetInformation = targetInformation(input.readerExact, readerBuildPass, input.buildDirectory, input.projectFilePath);
result->resolvedMkspecPath = input.readerExact->resolvedMkSpec();
result->installsList = installsList(readerBuildPass, input.projectFilePath, input.projectDir);
// update other variables
@@ -2237,7 +2235,6 @@ void QmakeProFileNode::applyEvaluate(EvalResult *evalResult)
if (m_validParse) {
// update TargetInformation
m_qmakeTargetInformation = result->targetInformation;
m_resolvedMkspecPath = result->resolvedMkspecPath;
m_subProjectsNotToDeploy = result->subProjectsNotToDeploy;
m_installsList = result->installsList;
@@ -2317,13 +2314,10 @@ QStringList QmakeProFileNode::includePaths(QtSupport::ProFileReader *reader, con
}
paths.append(reader->absolutePathValues(QLatin1String("INCLUDEPATH"), projectDir));
paths.append(reader->absolutePathValues(QLatin1String("QMAKE_INCDIR"), projectDir));
// paths already contains moc dir and ui dir, due to corrrectly parsing uic.prf and moc.prf
// except if those directories don't exist at the time of parsing
// thus we add those directories manually (without checking for existence)
paths << mocDirPath(reader, buildDir) << uiDirPath(reader, buildDir);
// qmake always adds "."
paths << projectDir;
paths.removeDuplicates();
return paths;
}
@@ -2427,11 +2421,6 @@ TargetInformation QmakeProFileNode::targetInformation() const
return m_qmakeTargetInformation;
}
QString QmakeProFileNode::resolvedMkspecPath() const
{
return m_resolvedMkspecPath;
}
InstallsList QmakeProFileNode::installsList(const QtSupport::ProFileReader *reader, const QString &projectFilePath, const QString &projectDir)
{
InstallsList result;