diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-04-12 19:16:49 +0200 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2010-04-13 17:23:15 +0200 |
commit | 61bbad28110729a7f9f84521402d227075e25677 (patch) | |
tree | af2313ba44f17bed83529f473100a1e586d224c7 | |
parent | e6115fa7c99e314302d6f819a7236a28e13ac4de (diff) |
Add a method to find pro-files used to create a Makefile
Reviewed-by: dt
(cherry picked from commit 772c838aa339cc1192fd76463f68861613cd8e9c)
-rw-r--r-- | src/plugins/qt4projectmanager/qtversionmanager.cpp | 24 | ||||
-rw-r--r-- | src/plugins/qt4projectmanager/qtversionmanager.h | 3 |
2 files changed, 23 insertions, 4 deletions
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 1579022ab4..73620ffa16 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -779,6 +779,24 @@ void dumpQMakeAssignments(const QList<QMakeAssignment> &list) } } +bool QtVersionManager::makefileIsFor(const QString &directory, const QString &proFile) +{ + if (proFile.isEmpty()) + return true; + + QString line = findQMakeLine(directory, QLatin1String("# Project:")).trimmed(); + if (line.isEmpty()) + return false; + + + line = line.mid(line.indexOf(QChar(':')) + 1); + line = line.trimmed(); + + QFileInfo srcFileInfo(QDir(directory), line); + QFileInfo proFileInfo(proFile); + return srcFileInfo == proFileInfo; +} + QPair<QtVersion::QmakeBuildConfigs, QStringList> QtVersionManager::scanMakeFile(const QString &directory, QtVersion::QmakeBuildConfigs defaultBuildConfig) { if (debug) @@ -786,7 +804,7 @@ QPair<QtVersion::QmakeBuildConfigs, QStringList> QtVersionManager::scanMakeFile( QtVersion::QmakeBuildConfigs result = defaultBuildConfig; QStringList result2; - QString line = findQMakeLine(directory); + QString line = findQMakeLine(directory, QLatin1String("# Command:")); if (!line.isEmpty()) { if (debug) qDebug()<<"Found line"<<line; @@ -836,14 +854,14 @@ QPair<QtVersion::QmakeBuildConfigs, QStringList> QtVersionManager::scanMakeFile( return qMakePair(result, result2); } -QString QtVersionManager::findQMakeLine(const QString &directory) +QString QtVersionManager::findQMakeLine(const QString &directory, const QString &key) { QFile makefile(directory + QLatin1String("/Makefile" )); if (makefile.exists() && makefile.open(QFile::ReadOnly)) { QTextStream ts(&makefile); while (!ts.atEnd()) { const QString line = ts.readLine(); - if (line.startsWith(QLatin1String("# Command:"))) + if (line.startsWith(key)) return line; } } diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 02d2d5bcea..cc01d06335 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -225,6 +225,7 @@ public: QSet<QString> supportedTargetIds() const; // Static Methods + static bool makefileIsFor(const QString &directory, const QString &proFile); static QPair<QtVersion::QmakeBuildConfigs, QStringList> scanMakeFile(const QString &directory, QtVersion::QmakeBuildConfigs defaultBuildConfig); static QString findQMakeBinaryFromMakefile(const QString &directory); @@ -239,7 +240,7 @@ private slots: private: // This function is really simplistic... static bool equals(QtVersion *a, QtVersion *b); - static QString findQMakeLine(const QString &directory); + static QString findQMakeLine(const QString &directory, const QString &key); static QString trimLine(const QString line); static QStringList splitLine(const QString &line); static void parseParts(const QStringList &parts, |