summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-04-12 19:16:49 +0200
committercon <qtc-committer@nokia.com>2010-04-13 17:23:15 +0200
commit61bbad28110729a7f9f84521402d227075e25677 (patch)
treeaf2313ba44f17bed83529f473100a1e586d224c7
parente6115fa7c99e314302d6f819a7236a28e13ac4de (diff)
downloadqt-creator-61bbad28110729a7f9f84521402d227075e25677.tar.gz
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.cpp24
-rw-r--r--src/plugins/qt4projectmanager/qtversionmanager.h3
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,