MakefileGenerator: deduplicate code

Factor out a resolveDependency method.
We will enhance it in a subsequent commit.

Change-Id: I4eead8bd03066c2ccbc9d9276acbc9f6c3bc6b97
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Joerg Bornemann 2019-01-11 11:27:19 +01:00 committed by Jani Heikkinen
parent af99497bdb
commit b95a4bbe84
2 changed files with 15 additions and 20 deletions

View File

@ -1839,6 +1839,18 @@ static QStringList splitDeps(const QString &indeps, bool lineMode)
return deps;
}
QString MakefileGenerator::resolveDependency(const QDir &outDir, const QString &file)
{
const QList<QMakeLocalFileName> &depdirs = QMakeSourceFileInfo::dependencyPaths();
for (const auto &depdir : depdirs) {
const QString &local = depdir.local();
QString lf = outDir.absoluteFilePath(local + '/' + file);
if (exists(lf))
return lf;
}
return {};
}
void
MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
{
@ -1991,16 +2003,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
} else if (exists(absFile)) {
file = absFile;
} else {
QString localFile;
QList<QMakeLocalFileName> depdirs = QMakeSourceFileInfo::dependencyPaths();
for (QList<QMakeLocalFileName>::Iterator dit = depdirs.begin();
dit != depdirs.end(); ++dit) {
QString lf = outDir.absoluteFilePath((*dit).local() + '/' + file);
if (exists(lf)) {
localFile = lf;
break;
}
}
QString localFile = resolveDependency(outDir, file);
if (localFile.isEmpty()) {
if (exists(file))
warn_msg(WarnDeprecated, ".depend_command for extra compiler %s"
@ -2088,16 +2091,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
} else if (exists(absFile)) {
file = absFile;
} else {
QString localFile;
QList<QMakeLocalFileName> depdirs = QMakeSourceFileInfo::dependencyPaths();
for (QList<QMakeLocalFileName>::Iterator dit = depdirs.begin();
dit != depdirs.end(); ++dit) {
QString lf = outDir.absoluteFilePath((*dit).local() + '/' + file);
if (exists(lf)) {
localFile = lf;
break;
}
}
QString localFile = resolveDependency(outDir, file);
if (localFile.isEmpty()) {
if (exists(file))
warn_msg(WarnDeprecated, ".depend_command for extra compiler %s"

View File

@ -82,6 +82,7 @@ protected:
void writeExportedVariables(QTextStream &t);
void writeExtraVariables(QTextStream &t);
void writeExtraTargets(QTextStream &t);
QString resolveDependency(const QDir &outDir, const QString &file);
void writeExtraCompilerTargets(QTextStream &t);
void writeExtraCompilerVariables(QTextStream &t);
bool writeDummyMakefile(QTextStream &t);