diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp index bb28f73f1c6..3d7122c3695 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp @@ -136,7 +136,7 @@ QList Qt4DesktopTargetFactory::availableBuildConfigurati QList knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); foreach (QtVersion *version, knownVersions) { - if (!version->isValid()) + if (!version->isValid() || !version->toolChainAvailable()) continue; QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp index d15ec83fd39..4bbdfb6f94d 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp @@ -136,7 +136,7 @@ QList Qt4SimulatorTargetFactory::availableBuildConfigura QList knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); foreach (QtVersion *version, knownVersions) { - if (!version->isValid()) + if (!version->isValid() || !version->toolChainAvailable()) continue; QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), id); diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp index d8754522933..68c5500099e 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotargetfactory.cpp @@ -156,7 +156,7 @@ QList Qt4MaemoTargetFactory::availableBuildConfiguration QList knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); foreach (QtVersion *version, knownVersions) { - if (!version->isValid()) + if (!version->isValid() || !version->toolChainAvailable()) continue; QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), id); diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index 6d69fc57037..ec76194fa28 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -45,6 +45,7 @@ #include #include +#include using ProjectExplorer::idFromMap; using namespace Qt4ProjectManager; @@ -139,8 +140,9 @@ QList Qt4SymbianTargetFactory::availableBuildConfigurati QList knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); foreach (QtVersion *version, knownVersions) { - if (!version->isValid()) + if (!version->isValid() || !version->toolChainAvailable()) continue; + bool buildAll = version->defaultBuildConfig() & QtVersion::BuildAll; QtVersion::QmakeBuildConfigs config = buildAll ? QtVersion::BuildAll : QtVersion::QmakeBuildConfig(0); QString dir = QFileInfo(proFilePath).absolutePath(), id; diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index bae2bf390fe..6be3306c0d0 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -254,10 +254,10 @@ void QtVersionManager::removeVersion(QtVersion *version) bool QtVersionManager::supportsTargetId(const QString &id) const { - foreach (QtVersion *version, m_versions) { - if (version->supportsTargetId(id)) + QList versions = QtVersionManager::instance()->versionsForTargetId(id); + foreach (QtVersion *v, versions) + if (v->isValid() && v->toolChainAvailable()) return true; - } return false; } @@ -1750,6 +1750,16 @@ bool QtVersion::isValid() const && !m_abis.isEmpty(); } +bool QtVersion::toolChainAvailable() const +{ + if (!isValid()) + return false; + foreach (const ProjectExplorer::Abi &abi, qtAbis()) + if (!ProjectExplorer::ToolChainManager::instance()->findToolChains(abi).isEmpty()) + return true; + return false; +} + QString QtVersion::invalidReason() const { if (isValid()) diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index a73423d4c3a..0fbad7f9fdb 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -95,7 +95,8 @@ public: QtVersion(); ~QtVersion(); - bool isValid() const; //TOOD check that the dir exists and the name is non empty + bool isValid() const; + bool toolChainAvailable() const; QString invalidReason() const; QString description() const; bool isAutodetected() const { return m_isAutodetected; }