Fix available QtVersion::availableToolchains

Do really disable the symbian emulator if there's no toolchain
supporting it.

Reviewed-By: hunger
This commit is contained in:
dt
2011-04-12 19:05:32 +02:00
parent 7d4311881b
commit b9251a6626
6 changed files with 27 additions and 7 deletions

View File

@@ -135,7 +135,7 @@ QList<BuildConfigurationInfo> Qt4DesktopTargetFactory::availableBuildConfigurati
QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
foreach (QtVersion *version, knownVersions) { foreach (QtVersion *version, knownVersions) {
if (!version->isValid() || !version->toolChainAvailable()) if (!version->isValid() || !version->toolChainAvailable(id))
continue; continue;
QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();

View File

@@ -135,7 +135,7 @@ QList<BuildConfigurationInfo> Qt4SimulatorTargetFactory::availableBuildConfigura
QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
foreach (QtVersion *version, knownVersions) { foreach (QtVersion *version, knownVersions) {
if (!version->isValid() || !version->toolChainAvailable()) if (!version->isValid() || !version->toolChainAvailable(id))
continue; continue;
QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), id); QString dir = defaultShadowBuildDirectory(Qt4Project::defaultTopLevelBuildDirectory(proFilePath), id);

View File

@@ -155,7 +155,7 @@ QList<BuildConfigurationInfo> Qt4MaemoTargetFactory::availableBuildConfiguration
QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
foreach (QtVersion *version, knownVersions) { foreach (QtVersion *version, knownVersions) {
if (!version->isValid() || !version->toolChainAvailable()) if (!version->isValid() || !version->toolChainAvailable(id))
continue; continue;
QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); QtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
#ifdef Q_OS_WIN #ifdef Q_OS_WIN

View File

@@ -78,6 +78,7 @@ QStringList Qt4SymbianTargetFactory::supportedTargetIds(ProjectExplorer::Project
return QStringList(); return QStringList();
QStringList ids; QStringList ids;
// The QtVersionManager will just check whether theres
if (QtVersionManager::instance()->supportsTargetId(Constants::S60_DEVICE_TARGET_ID)) if (QtVersionManager::instance()->supportsTargetId(Constants::S60_DEVICE_TARGET_ID))
ids << QLatin1String(Constants::S60_DEVICE_TARGET_ID); ids << QLatin1String(Constants::S60_DEVICE_TARGET_ID);
if (QtVersionManager::instance()->supportsTargetId(Constants::S60_EMULATOR_TARGET_ID)) if (QtVersionManager::instance()->supportsTargetId(Constants::S60_EMULATOR_TARGET_ID))
@@ -168,7 +169,7 @@ QList<BuildConfigurationInfo> Qt4SymbianTargetFactory::availableBuildConfigurati
QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion); QList<QtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
foreach (QtVersion *version, knownVersions) { foreach (QtVersion *version, knownVersions) {
if (!version->isValid() || !version->toolChainAvailable()) if (!version->isValid() || !version->toolChainAvailable(id))
continue; continue;
bool buildAll = version->defaultBuildConfig() & QtVersion::BuildAll; bool buildAll = version->defaultBuildConfig() & QtVersion::BuildAll;

View File

@@ -247,7 +247,7 @@ bool QtVersionManager::supportsTargetId(const QString &id) const
{ {
QList<QtVersion *> versions = QtVersionManager::instance()->versionsForTargetId(id); QList<QtVersion *> versions = QtVersionManager::instance()->versionsForTargetId(id);
foreach (QtVersion *v, versions) foreach (QtVersion *v, versions)
if (v->isValid() && v->toolChainAvailable()) if (v->isValid() && v->toolChainAvailable(id))
return true; return true;
return false; return false;
} }
@@ -1815,10 +1815,29 @@ bool QtVersion::isValid() const
&& m_validSystemRoot; && m_validSystemRoot;
} }
bool QtVersion::toolChainAvailable() const bool QtVersion::toolChainAvailable(const QString &id) const
{ {
if (!isValid()) if (!isValid())
return false; return false;
if (id == QLatin1String(Constants::S60_EMULATOR_TARGET_ID)) {
QList<ProjectExplorer::ToolChain *> tcList =
ProjectExplorer::ToolChainManager::instance()->toolChains();
foreach (ProjectExplorer::ToolChain *tc, tcList) {
if (tc->id().startsWith(QLatin1String(Constants::WINSCW_TOOLCHAIN_ID)))
return true;
}
return false;
} else if (id == QLatin1String(Constants::S60_DEVICE_TARGET_ID)) {
QList<ProjectExplorer::ToolChain *> tcList =
ProjectExplorer::ToolChainManager::instance()->toolChains();
foreach (ProjectExplorer::ToolChain *tc, tcList) {
if (!tc->id().startsWith(Qt4ProjectManager::Constants::WINSCW_TOOLCHAIN_ID))
return true;
}
return false;
}
foreach (const ProjectExplorer::Abi &abi, qtAbis()) foreach (const ProjectExplorer::Abi &abi, qtAbis())
if (!ProjectExplorer::ToolChainManager::instance()->findToolChains(abi).isEmpty()) if (!ProjectExplorer::ToolChainManager::instance()->findToolChains(abi).isEmpty())
return true; return true;

View File

@@ -96,7 +96,7 @@ public:
~QtVersion(); ~QtVersion();
bool isValid() const; bool isValid() const;
bool toolChainAvailable() const; bool toolChainAvailable(const QString &id) const;
QString invalidReason() const; QString invalidReason() const;
QString description() const; QString description() const;