forked from qt-creator/qt-creator
ToolChainFactory: Add typeIdFromMap and use it in factories
Change-Id: Id3254bcb3a5c426540bbab49dc61545031af6826 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
@@ -271,7 +271,7 @@ QList<ToolChain *> AndroidToolChainFactory::autoDetect()
|
|||||||
|
|
||||||
bool AndroidToolChainFactory::canRestore(const QVariantMap &data)
|
bool AndroidToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::ANDROID_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::ANDROID_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *AndroidToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *AndroidToolChainFactory::restore(const QVariantMap &data)
|
||||||
|
@@ -394,8 +394,7 @@ ToolChain *CustomToolChainFactory::create()
|
|||||||
// Used by the ToolChainManager to restore user-generated tool chains
|
// Used by the ToolChainManager to restore user-generated tool chains
|
||||||
bool CustomToolChainFactory::canRestore(const QVariantMap &data)
|
bool CustomToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
const QByteArray id = idFromMap(data);
|
return typeIdFromMap(data) == Constants::CUSTOM_TOOLCHAIN_ID;
|
||||||
return id.startsWith(QByteArray(Constants::CUSTOM_TOOLCHAIN_ID) + ':');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *CustomToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *CustomToolChainFactory::restore(const QVariantMap &data)
|
||||||
|
@@ -795,8 +795,7 @@ QList<ToolChain *> GccToolChainFactory::autoDetect()
|
|||||||
// Used by the ToolChainManager to restore user-generated tool chains
|
// Used by the ToolChainManager to restore user-generated tool chains
|
||||||
bool GccToolChainFactory::canRestore(const QVariantMap &data)
|
bool GccToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
const QByteArray id = idFromMap(data);
|
return typeIdFromMap(data) == Constants::GCC_TOOLCHAIN_ID;
|
||||||
return id.startsWith(QByteArray(Constants::GCC_TOOLCHAIN_ID) + ':');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *GccToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *GccToolChainFactory::restore(const QVariantMap &data)
|
||||||
@@ -1139,7 +1138,7 @@ ToolChain *ClangToolChainFactory::create()
|
|||||||
|
|
||||||
bool ClangToolChainFactory::canRestore(const QVariantMap &data)
|
bool ClangToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::CLANG_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::CLANG_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *ClangToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *ClangToolChainFactory::restore(const QVariantMap &data)
|
||||||
@@ -1245,7 +1244,7 @@ ToolChain *MingwToolChainFactory::create()
|
|||||||
|
|
||||||
bool MingwToolChainFactory::canRestore(const QVariantMap &data)
|
bool MingwToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::MINGW_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::MINGW_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *MingwToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *MingwToolChainFactory::restore(const QVariantMap &data)
|
||||||
@@ -1341,7 +1340,7 @@ ToolChain *LinuxIccToolChainFactory::create()
|
|||||||
|
|
||||||
bool LinuxIccToolChainFactory::canRestore(const QVariantMap &data)
|
bool LinuxIccToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::LINUXICC_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::LINUXICC_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *LinuxIccToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *LinuxIccToolChainFactory::restore(const QVariantMap &data)
|
||||||
|
@@ -632,7 +632,7 @@ bool MsvcToolChain::operator ==(const ToolChain &other) const
|
|||||||
|
|
||||||
bool MsvcToolChainFactory::canRestore(const QVariantMap &data)
|
bool MsvcToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::MSVC_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::MSVC_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -261,9 +261,22 @@ ToolChain *ToolChainFactory::restore(const QVariantMap &)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QPair<QString, QString> rawIdData(const QVariantMap &data)
|
||||||
|
{
|
||||||
|
const QString raw = data.value(QLatin1String(ID_KEY)).toString();
|
||||||
|
const int pos = raw.indexOf(QLatin1Char(':'));
|
||||||
|
QTC_ASSERT(pos > 0, return qMakePair(QString::fromLatin1("unknown"), QString::fromLatin1("unknown")));
|
||||||
|
return qMakePair(raw.mid(0, pos), raw.mid(pos + 1));
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray ToolChainFactory::idFromMap(const QVariantMap &data)
|
QByteArray ToolChainFactory::idFromMap(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return data.value(QLatin1String(ID_KEY)).toByteArray();
|
return rawIdData(data).second.toUtf8();
|
||||||
|
}
|
||||||
|
|
||||||
|
Core::Id ToolChainFactory::typeIdFromMap(const QVariantMap &data)
|
||||||
|
{
|
||||||
|
return Core::Id::fromString(rawIdData(data).first);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolChainFactory::autoDetectionToMap(QVariantMap &data, bool detected)
|
void ToolChainFactory::autoDetectionToMap(QVariantMap &data, bool detected)
|
||||||
|
@@ -192,6 +192,7 @@ public:
|
|||||||
virtual ToolChain *restore(const QVariantMap &data);
|
virtual ToolChain *restore(const QVariantMap &data);
|
||||||
|
|
||||||
static QByteArray idFromMap(const QVariantMap &data);
|
static QByteArray idFromMap(const QVariantMap &data);
|
||||||
|
static Core::Id typeIdFromMap(const QVariantMap &data);
|
||||||
static void autoDetectionToMap(QVariantMap &data, bool detected);
|
static void autoDetectionToMap(QVariantMap &data, bool detected);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@@ -161,9 +161,10 @@ static QList<ToolChain *> restoreFromFile(const FileName &fileName)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!restored)
|
if (!restored)
|
||||||
qWarning("Warning: Unable to restore compiler '%s' stored in %s.",
|
qWarning("Warning: '%s': Unable to restore compiler type '%s' for tool chain %s.",
|
||||||
qPrintable(QString::fromUtf8(ToolChainFactory::idFromMap(tcMap))),
|
qPrintable(fileName.toUserOutput()),
|
||||||
qPrintable(fileName.toUserOutput()));
|
qPrintable(ToolChainFactory::typeIdFromMap(tcMap).toString()),
|
||||||
|
qPrintable(QString::fromUtf8(ToolChainFactory::idFromMap(tcMap))));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@@ -432,7 +432,7 @@ QString WinCEToolChain::autoDetectCdbDebugger(QStringList *checkedDirectories /*
|
|||||||
|
|
||||||
bool WinCEToolChainFactory::canRestore(const QVariantMap &data)
|
bool WinCEToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
return idFromMap(data).startsWith(QByteArray(Constants::WINCE_TOOLCHAIN_ID) + ':');
|
return typeIdFromMap(data) == Constants::WINCE_TOOLCHAIN_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WinCEToolChain::operator ==(const ToolChain &other) const
|
bool WinCEToolChain::operator ==(const ToolChain &other) const
|
||||||
|
@@ -163,8 +163,7 @@ QnxToolChainFactory::QnxToolChainFactory()
|
|||||||
|
|
||||||
bool QnxToolChainFactory::canRestore(const QVariantMap &data)
|
bool QnxToolChainFactory::canRestore(const QVariantMap &data)
|
||||||
{
|
{
|
||||||
const QByteArray id = idFromMap(data);
|
return typeIdFromMap(data) == Constants::QNX_TOOLCHAIN_ID;
|
||||||
return id.startsWith(QByteArray(Constants::QNX_TOOLCHAIN_ID) + ':');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *QnxToolChainFactory::restore(const QVariantMap &data)
|
ToolChain *QnxToolChainFactory::restore(const QVariantMap &data)
|
||||||
|
Reference in New Issue
Block a user