diff --git a/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.cpp b/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.cpp index fc24e81f2da..b77bbffce1e 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.cpp @@ -44,12 +44,11 @@ using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; QList -S60ProjectChecker::reportIssues(const QString &proFile, const QtVersion *version) +S60ProjectChecker::reportIssues(const QString &proFile) { QList results; - const QString epocRootDir = version->systemRoot(); - QFileInfo cppheader(epocRootDir + QLatin1String("/epoc32/include/stdapis/string.h")); #if defined (Q_OS_WIN) + const QString epocRootDir = version->systemRoot(); // Report an error if project- and epoc directory are on different drives: if (!epocRootDir.startsWith(proFile.left(3), Qt::CaseInsensitive) && !version->isBuildWithSymbianSbsV2()) { results.append(Task(Task::Error, @@ -58,19 +57,6 @@ S60ProjectChecker::reportIssues(const QString &proFile, const QtVersion *version QString(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); } #endif - // Report an error if EPOC root is not set: - if (epocRootDir.isEmpty() || !QDir(epocRootDir).exists()) { - results.append(Task(Task::Error, - QCoreApplication::translate("ProjectExplorer::Internal::S60ProjectChecker", - "The Symbian SDK was not found for Qt version %1.").arg(version->displayName()), - QString(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - } - if (!cppheader.exists()) { - results.append(Task(Task::Error, - QCoreApplication::translate("ProjectExplorer::Internal::S60ProjectChecker", - "The \"Open C/C++ plugin\" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1.").arg(version->displayName()), - QString(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - } // Warn of strange characters in project name and path: const QString projectName = proFile.mid(proFile.lastIndexOf(QLatin1Char('/')) + 1); @@ -98,8 +84,8 @@ S60ProjectChecker::reportIssues(const QString &proFile, const QtVersion *version } QList -S60ProjectChecker::reportIssues(const Qt4Project *project, const QtVersion *version) +S60ProjectChecker::reportIssues(const Qt4Project *project) { QString proFile = project->file()->fileName(); - return reportIssues(proFile, version); + return reportIssues(proFile); } diff --git a/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.h b/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.h index 8aa2129c1ac..034962b139c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60projectchecker.h @@ -50,14 +50,14 @@ public: /// @return a list of tasks, ordered on severity (errors first, then /// warnings and finally info items. static QList - reportIssues(const QString &proFile, const QtVersion *version); + reportIssues(const QString &proFile); /// Check a project/Qt version combination on possible issues with /// its symbian setup. /// @return a list of tasks, ordered on severity (errors first, then /// warnings and finally info items. static QList - reportIssues(const Qt4Project *project, const QtVersion *version); + reportIssues(const Qt4Project *project); }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index a478ec94ea2..cff1e5d2811 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -612,7 +612,9 @@ QtVersion::QtVersion(const QString &name, const QString &qmakeCommand, int id, m_defaultConfigIsDebugAndRelease(true), m_hasExamples(false), m_hasDemos(false), - m_hasDocumentation(false) + m_hasDocumentation(false), + m_qmakeIsExecutable(false), + m_validSystemRoot(true) { if (id == -1) m_id = getUniqueId(); @@ -637,7 +639,9 @@ QtVersion::QtVersion(const QString &name, const QString &qmakeCommand, m_defaultConfigIsDebugAndRelease(true), m_hasExamples(false), m_hasDemos(false), - m_hasDocumentation(false) + m_hasDocumentation(false), + m_qmakeIsExecutable(false), + m_validSystemRoot(true) { m_id = getUniqueId(); setQMakeCommand(qmakeCommand); @@ -658,7 +662,9 @@ QtVersion::QtVersion(const QString &qmakeCommand, bool isAutodetected, const QSt m_defaultConfigIsDebugAndRelease(true), m_hasExamples(false), m_hasDemos(false), - m_hasDocumentation(false) + m_hasDocumentation(false), + m_qmakeIsExecutable(false), + m_validSystemRoot(true) { m_id = getUniqueId(); setQMakeCommand(qmakeCommand); @@ -679,7 +685,9 @@ QtVersion::QtVersion() m_defaultConfigIsDebugAndRelease(true), m_hasExamples(false), m_hasDemos(false), - m_hasDocumentation(false) + m_hasDocumentation(false) , + m_qmakeIsExecutable(false), + m_validSystemRoot(true) { setQMakeCommand(QString()); } @@ -802,7 +810,7 @@ QtVersion::reportIssues(const QString &proFile, const QString &buildDir) QSet targets = supportedTargetIds(); if (targets.contains(Constants::S60_DEVICE_TARGET_ID) || targets.contains(Constants::S60_EMULATOR_TARGET_ID)) - results.append(S60ProjectChecker::reportIssues(proFile, this)); + results.append(S60ProjectChecker::reportIssues(proFile)); return results; } @@ -1153,8 +1161,6 @@ static bool queryQMakeVariables(const QString &binary, QHash * { const int timeOutMS = 30000; // Might be slow on some machines. QFileInfo qmake(binary); - if (!qmake.exists() || !qmake.isExecutable()) - return false; static const char * const variables[] = { "QT_VERSION", "QT_INSTALL_DATA", @@ -1217,6 +1223,13 @@ void QtVersion::updateVersionInfo() const m_hasQmlDump = false; m_hasQmlDebuggingLibrary = false; m_hasQmlObserver = false; + m_qmakeIsExecutable = true; + + QFileInfo fi(qmakeCommand()); + if (!fi.exists() || !fi.isExecutable()) { + m_qmakeIsExecutable = false; + return; + } if (!queryQMakeVariables(qmakeCommand(), &m_versionInfo)) return; @@ -1387,6 +1400,7 @@ void QtVersion::updateAbiAndMkspec() const m_targetIds.clear(); m_abis.clear(); + m_validSystemRoot = true; // qDebug()<<"Finding mkspec for"< m_targetIds; mutable bool m_isBuildUsingSbsV2; + mutable bool m_qmakeIsExecutable; + mutable bool m_validSystemRoot; }; struct QMakeAssignment