diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index b8ed0afdb9a..455c91452c0 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -35,9 +35,11 @@ #include "qt-maemo/maemomanager.h" #include "qt-s60/s60manager.h" +#include "qt-s60/s60projectchecker.h" #include #include +#include #include #include #include @@ -635,6 +637,34 @@ bool QtVersion::supportsShadowBuilds() const return true; } +QList +QtVersion::reportIssues(const QString &proFile) +{ + QList results; + + if (!isValid()) + results.append(ProjectExplorer::Task(ProjectExplorer::Task::Error, + QObject::tr("The Qt version is invalid: %1", + "%1: Reason for being invalid").arg(invalidReason()), + QString(), -1, + QLatin1String(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + + QFileInfo qmakeInfo(qmakeCommand()); + if (!qmakeInfo.exists() || + !qmakeInfo.isExecutable()) + results.append(ProjectExplorer::Task(ProjectExplorer::Task::Error, + QObject::tr("The qmake command \"%1\" was not found or is not executable.", + "%1: Path to qmake executable.").arg(qmakeCommand()), + QString(), -1, + QLatin1String(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); + + QSet targets = supportedTargetIds(); + if (targets.contains(Constants::S60_DEVICE_TARGET_ID) || + targets.contains(Constants::S60_EMULATOR_TARGET_ID)) + results.append(S60ProjectChecker::reportIssues(proFile, this)); + return results; +} + QString QtVersion::displayName() const { return m_displayName; diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index cc01d063356..e1a19124185 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -30,6 +30,7 @@ #ifndef QTVERSIONMANAGER_H #define QTVERSIONMANAGER_H +#include #include #include @@ -139,6 +140,12 @@ public: bool supportsShadowBuilds() const; + /// Check a .pro-file/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. + QList reportIssues(const QString &proFile); + private: QList > toolChains() const; static int getUniqueId();