summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport/qtversionmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qtsupport/qtversionmanager.cpp')
-rw-r--r--src/plugins/qtsupport/qtversionmanager.cpp238
1 files changed, 0 insertions, 238 deletions
diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp
index ea1e99851b..7513ad40e3 100644
--- a/src/plugins/qtsupport/qtversionmanager.cpp
+++ b/src/plugins/qtsupport/qtversionmanager.cpp
@@ -64,13 +64,6 @@ namespace QtSupport {
using namespace Internal;
-struct QMakeAssignment
-{
- QString variable;
- QString op;
- QString value;
-};
-
const char QTVERSION_DATA_KEY[] = "QtVersion.";
const char QTVERSION_TYPE_KEY[] = "QtVersion.Type";
const char QTVERSION_FILE_VERSION_KEY[] = "Version";
@@ -107,36 +100,6 @@ bool qtVersionNumberCompare(BaseQtVersion *a, BaseQtVersion *b)
{
return a->qtVersion() > b->qtVersion() || (a->qtVersion() == b->qtVersion() && a->uniqueId() < b->uniqueId());
}
-
-static QString findQMakeLine(const QString &makefile, const QString &key)
-{
- QFile fi(makefile);
- if (fi.exists() && fi.open(QFile::ReadOnly)) {
- QTextStream ts(&fi);
- while (!ts.atEnd()) {
- const QString line = ts.readLine();
- if (line.startsWith(key))
- return line;
- }
- }
- return QString();
-}
-
-/// This function trims the "#Command /path/to/qmake" from the line
-static QString trimLine(const QString &line)
-{
-
- // Actually the first space after #Command: /path/to/qmake
- const int firstSpace = line.indexOf(QLatin1Char(' '), 11);
- return line.mid(firstSpace).trimmed();
-}
-
-static void parseArgs(const QString &args,
- QList<QMakeAssignment> *assignments,
- QList<QMakeAssignment> *afterAssignments,
- QString *additionalArguments);
-static BaseQtVersion::QmakeBuildConfigs qmakeBuildConfigFromCmdArgs(QList<QMakeAssignment> *assignments,
- BaseQtVersion::QmakeBuildConfigs defaultBuildConfig);
static bool restoreQtVersions();
static void findSystemQt();
static void saveQtVersions();
@@ -608,210 +571,9 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
emit m_instance->qtVersionsChanged(addedVersions, removedVersions, changedVersions);
}
-// Returns the version that was used to build the project in that directory
-// That is returns the directory
-// To find out whether we already have a qtversion for that directory call
-// QtVersion *QtVersionManager::qtVersionForDirectory(const QString directory);
-FileName QtVersionManager::findQMakeBinaryFromMakefile(const QString &makefile)
-{
- bool debugAdding = false;
- QFile fi(makefile);
- if (fi.exists() && fi.open(QFile::ReadOnly)) {
- QTextStream ts(&fi);
- QRegExp r1(QLatin1String("QMAKE\\s*=(.*)"));
- while (!ts.atEnd()) {
- QString line = ts.readLine();
- if (r1.exactMatch(line)) {
- if (debugAdding)
- qDebug()<<"#~~ QMAKE is:"<<r1.cap(1).trimmed();
- QFileInfo qmake(r1.cap(1).trimmed());
- QString qmakePath = qmake.filePath();
- if (!QString::fromLatin1(QTC_HOST_EXE_SUFFIX).isEmpty()
- && !qmakePath.endsWith(QLatin1String(QTC_HOST_EXE_SUFFIX))) {
- qmakePath.append(QLatin1String(QTC_HOST_EXE_SUFFIX));
- }
- // Is qmake still installed?
- QFileInfo fi(qmakePath);
- if (fi.exists())
- return FileName(fi);
- }
- }
- }
- return FileName();
-}
-
BaseQtVersion *QtVersionManager::qtVersionForQMakeBinary(const FileName &qmakePath)
{
return Utils::findOrDefault(versions(), Utils::equal(&BaseQtVersion::qmakeCommand, qmakePath));
}
-void dumpQMakeAssignments(const QList<QMakeAssignment> &list)
-{
- foreach (const QMakeAssignment &qa, list) {
- qDebug()<<qa.variable<<qa.op<<qa.value;
- }
-}
-
-QtVersionManager::MakefileCompatible QtVersionManager::makefileIsFor(const QString &makefile, const QString &proFile)
-{
- if (proFile.isEmpty())
- return CouldNotParse;
-
- // The Makefile.Debug / Makefile.Release lack a # Command: line
- if (findQMakeLine(makefile, QLatin1String("# Command:")).trimmed().isEmpty())
- return CouldNotParse;
-
- QString line = findQMakeLine(makefile, QLatin1String("# Project:")).trimmed();
- if (line.isEmpty())
- return CouldNotParse;
-
- line.remove(0, line.indexOf(QLatin1Char(':')) + 1);
- line = line.trimmed();
-
- QFileInfo srcFileInfo(QFileInfo(makefile).absoluteDir(), line);
- QFileInfo proFileInfo(proFile);
- return (srcFileInfo == proFileInfo) ? SameProject : DifferentProject;
-}
-
-QPair<BaseQtVersion::QmakeBuildConfigs, QString> QtVersionManager::scanMakeFile(const QString &makefile, BaseQtVersion::QmakeBuildConfigs defaultBuildConfig)
-{
- if (debug)
- qDebug()<<"ScanMakeFile, the gory details:";
- BaseQtVersion::QmakeBuildConfigs result = defaultBuildConfig;
- QString result2;
-
- QString line = findQMakeLine(makefile, QLatin1String("# Command:"));
- if (!line.isEmpty()) {
- if (debug)
- qDebug()<<"Found line"<<line;
- line = trimLine(line);
- QList<QMakeAssignment> assignments;
- QList<QMakeAssignment> afterAssignments;
- parseArgs(line, &assignments, &afterAssignments, &result2);
-
- if (debug) {
- dumpQMakeAssignments(assignments);
- if (!afterAssignments.isEmpty())
- qDebug()<<"-after";
- dumpQMakeAssignments(afterAssignments);
- }
-
- // Search in assignments for CONFIG(+=,-=,=)(debug,release,debug_and_release)
- // Also remove them from the list
- result = qmakeBuildConfigFromCmdArgs(&assignments, defaultBuildConfig);
-
- if (debug)
- dumpQMakeAssignments(assignments);
-
- foreach (const QMakeAssignment &qa, assignments)
- QtcProcess::addArg(&result2, qa.variable + qa.op + qa.value);
- if (!afterAssignments.isEmpty()) {
- QtcProcess::addArg(&result2, QLatin1String("-after"));
- foreach (const QMakeAssignment &qa, afterAssignments)
- QtcProcess::addArg(&result2, qa.variable + qa.op + qa.value);
- }
- }
-
- // Dump the gathered information:
- if (debug) {
- qDebug()<<"\n\nDumping information from scanMakeFile";
- qDebug()<<"QMake CONFIG variable parsing";
- qDebug()<<" "<< (result & BaseQtVersion::NoBuild ? QByteArray("No Build") : QByteArray::number(int(result)));
- qDebug()<<" "<< (result & BaseQtVersion::DebugBuild ? "debug" : "release");
- qDebug()<<" "<< (result & BaseQtVersion::BuildAll ? "debug_and_release" : "no debug_and_release");
- qDebug()<<"\nAddtional Arguments";
- qDebug()<<result2;
- qDebug()<<"\n\n";
- }
- return qMakePair(result, result2);
-}
-
-static void parseArgs(const QString &args, QList<QMakeAssignment> *assignments, QList<QMakeAssignment> *afterAssignments, QString *additionalArguments)
-{
- QRegExp regExp(QLatin1String("([^\\s\\+-]*)\\s*(\\+=|=|-=|~=)(.*)"));
- bool after = false;
- bool ignoreNext = false;
- *additionalArguments = args;
- QtcProcess::ArgIterator ait(additionalArguments);
- while (ait.next()) {
- if (ignoreNext) {
- // Ignoring
- ignoreNext = false;
- ait.deleteArg();
- } else if (ait.value() == QLatin1String("-after")) {
- after = true;
- ait.deleteArg();
- } else if (ait.value().contains(QLatin1Char('='))) {
- if (regExp.exactMatch(ait.value())) {
- QMakeAssignment qa;
- qa.variable = regExp.cap(1);
- qa.op = regExp.cap(2);
- qa.value = regExp.cap(3).trimmed();
- if (after)
- afterAssignments->append(qa);
- else
- assignments->append(qa);
- } else {
- qDebug()<<"regexp did not match";
- }
- ait.deleteArg();
- } else if (ait.value() == QLatin1String("-o")) {
- ignoreNext = true;
- ait.deleteArg();
-#if defined(Q_OS_WIN32)
- } else if (ait.value() == QLatin1String("-win32")) {
-#elif defined(Q_OS_MAC)
- } else if (ait.value() == QLatin1String("-macx")) {
-#elif defined(Q_OS_QNX6)
- } else if (ait.value() == QLatin1String("-qnx6")) {
-#else
- } else if (ait.value() == QLatin1String("-unix")) {
-#endif
- ait.deleteArg();
- }
- }
- ait.deleteArg(); // The .pro file is always the last arg
-}
-
-/// This function extracts all the CONFIG+=debug, CONFIG+=release
-static BaseQtVersion::QmakeBuildConfigs qmakeBuildConfigFromCmdArgs(QList<QMakeAssignment> *assignments, BaseQtVersion::QmakeBuildConfigs defaultBuildConfig)
-{
- BaseQtVersion::QmakeBuildConfigs result = defaultBuildConfig;
- QList<QMakeAssignment> oldAssignments = *assignments;
- assignments->clear();
- foreach (const QMakeAssignment &qa, oldAssignments) {
- if (qa.variable == QLatin1String("CONFIG")) {
- QStringList values = qa.value.split(QLatin1Char(' '));
- QStringList newValues;
- foreach (const QString &value, values) {
- if (value == QLatin1String("debug")) {
- if (qa.op == QLatin1String("+="))
- result = result | BaseQtVersion::DebugBuild;
- else
- result = result & ~BaseQtVersion::DebugBuild;
- } else if (value == QLatin1String("release")) {
- if (qa.op == QLatin1String("+="))
- result = result & ~BaseQtVersion::DebugBuild;
- else
- result = result | BaseQtVersion::DebugBuild;
- } else if (value == QLatin1String("debug_and_release")) {
- if (qa.op == QLatin1String("+="))
- result = result | BaseQtVersion::BuildAll;
- else
- result = result & ~BaseQtVersion::BuildAll;
- } else {
- newValues.append(value);
- }
- QMakeAssignment newQA = qa;
- newQA.value = newValues.join(QLatin1Char(' '));
- if (!newValues.isEmpty())
- assignments->append(newQA);
- }
- } else {
- assignments->append(qa);
- }
- }
- return result;
-}
-
} // namespace QtVersion