forked from qt-creator/qt-creator
ProjectExplorer: Replace ToolChainFactory::canRestore
... by a member-based check. Change-Id: Id7d19e488695e76ea17cf2d02c7b6eb2cd0246cc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -154,6 +154,7 @@ GccToolChain::DetectedAbisResult AndroidToolChain::detectSupportedAbis() const
|
||||
AndroidToolChainFactory::AndroidToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Android Clang"));
|
||||
setSupportedToolChainType(Constants::ANDROID_TOOLCHAIN_ID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> Android::Internal::AndroidToolChainFactory::supportedLanguages() const
|
||||
@@ -166,11 +167,6 @@ ToolChainList AndroidToolChainFactory::autoDetect(CToolChainList &alreadyKnown)
|
||||
return autodetectToolChainsForNdk(alreadyKnown);
|
||||
}
|
||||
|
||||
bool AndroidToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::ANDROID_TOOLCHAIN_ID;
|
||||
}
|
||||
|
||||
ToolChain *AndroidToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
auto tc = new AndroidToolChain();
|
||||
|
@@ -67,7 +67,6 @@ public:
|
||||
QSet<Core::Id> supportedLanguages() const override;
|
||||
|
||||
ToolChainList autoDetect(CToolChainList &alreadyKnown) override;
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;
|
||||
|
||||
class AndroidToolChainInformation
|
||||
|
@@ -399,6 +399,7 @@ ToolChain *IarToolChain::clone() const
|
||||
IarToolChainFactory::IarToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("IAREW"));
|
||||
setSupportedToolChainType(Constants::IAREW_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> IarToolChainFactory::supportedLanguages() const
|
||||
@@ -473,11 +474,6 @@ ToolChain *IarToolChainFactory::create(Core::Id language)
|
||||
return new IarToolChain(language, ToolChain::ManualDetection);
|
||||
}
|
||||
|
||||
bool IarToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::IAREW_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *IarToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
const auto tc = new IarToolChain(ToolChain::ManualDetection);
|
||||
|
@@ -115,7 +115,6 @@ public:
|
||||
bool canCreate() final;
|
||||
ProjectExplorer::ToolChain *create(Core::Id language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) final;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
|
||||
|
||||
private:
|
||||
|
@@ -409,6 +409,7 @@ ToolChain *KeilToolchain::clone() const
|
||||
KeilToolchainFactory::KeilToolchainFactory()
|
||||
{
|
||||
setDisplayName(tr("KEIL"));
|
||||
setSupportedToolChainType(Constants::KEIL_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> KeilToolchainFactory::supportedLanguages() const
|
||||
@@ -477,11 +478,6 @@ ToolChain *KeilToolchainFactory::create(Core::Id language)
|
||||
return new KeilToolchain(language, ToolChain::ManualDetection);
|
||||
}
|
||||
|
||||
bool KeilToolchainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::KEIL_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *KeilToolchainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
const auto tc = new KeilToolchain(ToolChain::ManualDetection);
|
||||
|
@@ -115,7 +115,6 @@ public:
|
||||
bool canCreate() final;
|
||||
ProjectExplorer::ToolChain *create(Core::Id language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) final;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
|
||||
|
||||
private:
|
||||
|
@@ -394,6 +394,7 @@ ToolChain *SdccToolChain::clone() const
|
||||
SdccToolChainFactory::SdccToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("SDCC"));
|
||||
setSupportedToolChainType(Constants::SDCC_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> SdccToolChainFactory::supportedLanguages() const
|
||||
@@ -454,11 +455,6 @@ ToolChain *SdccToolChainFactory::create(Core::Id language)
|
||||
return new SdccToolChain(language, ToolChain::ManualDetection);
|
||||
}
|
||||
|
||||
bool SdccToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::SDCC_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *SdccToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
const auto tc = new SdccToolChain(ToolChain::ManualDetection);
|
||||
|
@@ -115,7 +115,6 @@ public:
|
||||
bool canCreate() final;
|
||||
ProjectExplorer::ToolChain *create(Core::Id language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) final;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
|
||||
|
||||
private:
|
||||
|
@@ -43,6 +43,7 @@ namespace Nim {
|
||||
NimToolChainFactory::NimToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Nim"));
|
||||
setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
bool NimToolChainFactory::canCreate()
|
||||
@@ -59,11 +60,6 @@ ToolChain *NimToolChainFactory::create(Core::Id l)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool NimToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::C_NIMTOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *NimToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
auto tc = new NimToolChain(ToolChain::AutoDetection);
|
||||
|
@@ -43,7 +43,6 @@ public:
|
||||
|
||||
bool canCreate() final;
|
||||
ProjectExplorer::ToolChain *create(Core::Id l) final;
|
||||
bool canRestore(const QVariantMap &data) final;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
|
||||
QSet<Core::Id> supportedLanguages() const final;
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||
|
@@ -425,6 +425,7 @@ namespace Internal {
|
||||
CustomToolChainFactory::CustomToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Custom"));
|
||||
setSupportedToolChainType(Constants::CUSTOM_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> CustomToolChainFactory::supportedLanguages() const
|
||||
@@ -442,12 +443,6 @@ ToolChain *CustomToolChainFactory::create(Core::Id language)
|
||||
return new CustomToolChain(language, ToolChain::ManualDetection);
|
||||
}
|
||||
|
||||
// Used by the ToolChainManager to restore user-generated tool chains
|
||||
bool CustomToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::CUSTOM_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *CustomToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
auto tc = new CustomToolChain(ToolChain::ManualDetection);
|
||||
|
@@ -149,8 +149,6 @@ public:
|
||||
bool canCreate() override;
|
||||
ToolChain *create(Core::Id language) override;
|
||||
|
||||
// Used by the ToolChainManager to restore user-generated tool chains
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ToolChain *restore(const QVariantMap &data) override;
|
||||
};
|
||||
|
||||
|
@@ -875,6 +875,7 @@ QString GccToolChain::detectVersion() const
|
||||
GccToolChainFactory::GccToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("GCC"));
|
||||
setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> GccToolChainFactory::supportedLanguages() const
|
||||
@@ -923,12 +924,6 @@ QList<ToolChain *> GccToolChainFactory::autoDetect(const FileName &compilerPath,
|
||||
return QList<ToolChain *>();
|
||||
}
|
||||
|
||||
// Used by the ToolChainManager to restore user-generated tool chains
|
||||
bool GccToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::GCC_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *GccToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
GccToolChain *tc = createToolChain(false);
|
||||
@@ -1499,6 +1494,7 @@ ToolChain *ClangToolChain::clone() const
|
||||
ClangToolChainFactory::ClangToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Clang"));
|
||||
setSupportedToolChainType(Constants::CLANG_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> ClangToolChainFactory::supportedLanguages() const
|
||||
@@ -1539,11 +1535,6 @@ QList<ToolChain *> ClangToolChainFactory::autoDetect(const FileName &compilerPat
|
||||
return QList<ToolChain *>();
|
||||
}
|
||||
|
||||
bool ClangToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::CLANG_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
GccToolChain *ClangToolChainFactory::createToolChain(bool autoDetect)
|
||||
{
|
||||
return new ClangToolChain(autoDetect ? ToolChain::AutoDetection : ToolChain::ManualDetection);
|
||||
@@ -1717,6 +1708,7 @@ ToolChain *MingwToolChain::clone() const
|
||||
MingwToolChainFactory::MingwToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("MinGW"));
|
||||
setSupportedToolChainType(Constants::MINGW_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> MingwToolChainFactory::supportedLanguages() const
|
||||
@@ -1753,11 +1745,6 @@ QList<ToolChain *> MingwToolChainFactory::autoDetect(const FileName &compilerPat
|
||||
return QList<ToolChain *>();
|
||||
}
|
||||
|
||||
bool MingwToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::MINGW_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
GccToolChain *MingwToolChainFactory::createToolChain(bool autoDetect)
|
||||
{
|
||||
return new MingwToolChain(autoDetect ? ToolChain::AutoDetection : ToolChain::ManualDetection);
|
||||
@@ -1821,6 +1808,7 @@ ToolChain *LinuxIccToolChain::clone() const
|
||||
LinuxIccToolChainFactory::LinuxIccToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("Linux ICC"));
|
||||
setSupportedToolChainType(Constants::LINUXICC_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> LinuxIccToolChainFactory::supportedLanguages() const
|
||||
@@ -1847,11 +1835,6 @@ QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const FileName &compiler
|
||||
return {};
|
||||
}
|
||||
|
||||
bool LinuxIccToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::LINUXICC_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
GccToolChain *LinuxIccToolChainFactory::createToolChain(bool autoDetect)
|
||||
{
|
||||
return new LinuxIccToolChain(autoDetect ? ToolChain::AutoDetection : ToolChain::ManualDetection);
|
||||
|
@@ -61,7 +61,6 @@ public:
|
||||
bool canCreate() override;
|
||||
ToolChain *create(Core::Id language) override;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ToolChain *restore(const QVariantMap &data) override;
|
||||
|
||||
protected:
|
||||
@@ -152,8 +151,6 @@ public:
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
|
||||
protected:
|
||||
GccToolChain *createToolChain(bool autoDetect) override;
|
||||
};
|
||||
@@ -173,8 +170,6 @@ public:
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
|
||||
protected:
|
||||
GccToolChain *createToolChain(bool autoDetect) override;
|
||||
};
|
||||
@@ -194,8 +189,6 @@ public:
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
|
||||
protected:
|
||||
GccToolChain *createToolChain(bool autoDetect) override;
|
||||
};
|
||||
|
@@ -1640,6 +1640,7 @@ ClangClToolChain::BuiltInHeaderPathsRunner ClangClToolChain::createBuiltInHeader
|
||||
MsvcToolChainFactory::MsvcToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("MSVC"));
|
||||
setSupportedToolChainType(Constants::MSVC_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
QSet<Core::Id> MsvcToolChainFactory::supportedLanguages() const
|
||||
@@ -1819,6 +1820,7 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect(const QList<ToolChain *> &al
|
||||
ClangClToolChainFactory::ClangClToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("clang-cl"));
|
||||
setSupportedToolChainType(Constants::CLANG_CL_TOOLCHAIN_TYPEID);
|
||||
}
|
||||
|
||||
bool ClangClToolChainFactory::canCreate()
|
||||
@@ -1983,12 +1985,6 @@ Utils::optional<QString> MsvcToolChain::generateEnvironmentSettings(const Utils:
|
||||
return Utils::nullopt;
|
||||
}
|
||||
|
||||
bool MsvcToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
const Core::Id id = typeIdFromMap(data);
|
||||
return id == Constants::MSVC_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
template<class ToolChainType>
|
||||
ToolChainType *readFromMap(const QVariantMap &data)
|
||||
{
|
||||
@@ -2004,12 +2000,6 @@ ToolChain *MsvcToolChainFactory::restore(const QVariantMap &data)
|
||||
return readFromMap<MsvcToolChain>(data);
|
||||
}
|
||||
|
||||
bool ClangClToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
const Core::Id id = typeIdFromMap(data);
|
||||
return id == Constants::CLANG_CL_TOOLCHAIN_TYPEID;
|
||||
}
|
||||
|
||||
ToolChain *ClangClToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
return readFromMap<ClangClToolChain>(data);
|
||||
|
@@ -228,7 +228,6 @@ public:
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ToolChain *restore(const QVariantMap &data) override;
|
||||
|
||||
static QString vcVarsBatFor(const QString &basePath,
|
||||
@@ -245,7 +244,6 @@ public:
|
||||
|
||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ToolChain *restore(const QVariantMap &data) override;
|
||||
|
||||
bool canCreate() override;
|
||||
|
@@ -449,11 +449,6 @@ ToolChain *ToolChainFactory::create(Core::Id l)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool ToolChainFactory::canRestore(const QVariantMap &)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ToolChain *ToolChainFactory::restore(const QVariantMap &)
|
||||
{
|
||||
return nullptr;
|
||||
@@ -482,4 +477,14 @@ void ToolChainFactory::autoDetectionToMap(QVariantMap &data, bool detected)
|
||||
data.insert(QLatin1String(AUTODETECT_KEY), detected);
|
||||
}
|
||||
|
||||
Core::Id ToolChainFactory::supportedToolChainType() const
|
||||
{
|
||||
return m_supportedToolChainType;
|
||||
}
|
||||
|
||||
void ToolChainFactory::setSupportedToolChainType(const Core::Id &supportedToolChain)
|
||||
{
|
||||
m_supportedToolChainType = supportedToolChain;
|
||||
}
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
@@ -192,6 +192,7 @@ public:
|
||||
static const QList<ToolChainFactory *> allToolChainFactories();
|
||||
|
||||
QString displayName() const { return m_displayName; }
|
||||
Core::Id supportedToolChainType() const;
|
||||
|
||||
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown);
|
||||
virtual QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language);
|
||||
@@ -199,7 +200,6 @@ public:
|
||||
virtual bool canCreate();
|
||||
virtual ToolChain *create(Core::Id l);
|
||||
|
||||
virtual bool canRestore(const QVariantMap &data);
|
||||
virtual ToolChain *restore(const QVariantMap &data);
|
||||
|
||||
static QByteArray idFromMap(const QVariantMap &data);
|
||||
@@ -210,6 +210,7 @@ public:
|
||||
|
||||
protected:
|
||||
void setDisplayName(const QString &name) { m_displayName = name; }
|
||||
void setSupportedToolChainType(const Core::Id &supportedToolChainType);
|
||||
|
||||
class Candidate {
|
||||
public:
|
||||
@@ -226,6 +227,7 @@ protected:
|
||||
|
||||
private:
|
||||
QString m_displayName;
|
||||
Core::Id m_supportedToolChainType;
|
||||
};
|
||||
|
||||
} // namespace ProjectExplorer
|
||||
|
@@ -253,8 +253,10 @@ QList<ToolChain *> ToolChainSettingsAccessor::toolChains(const QVariantMap &data
|
||||
const QVariantMap tcMap = data.value(key).toMap();
|
||||
|
||||
bool restored = false;
|
||||
const Core::Id tcType = ToolChainFactory::typeIdFromMap(tcMap);
|
||||
if (tcType.isValid()) {
|
||||
for (ToolChainFactory *f : factories) {
|
||||
if (f->canRestore(tcMap)) {
|
||||
if (f->supportedToolChainType() == tcType) {
|
||||
if (ToolChain *tc = f->restore(tcMap)) {
|
||||
result.append(tc);
|
||||
restored = true;
|
||||
@@ -262,9 +264,10 @@ QList<ToolChain *> ToolChainSettingsAccessor::toolChains(const QVariantMap &data
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!restored)
|
||||
qWarning("Warning: Unable to restore compiler type '%s' for tool chain %s.",
|
||||
qPrintable(ToolChainFactory::typeIdFromMap(tcMap).toString()),
|
||||
qPrintable(tcType.toString()),
|
||||
qPrintable(QString::fromUtf8(ToolChainFactory::idFromMap(tcMap))));
|
||||
}
|
||||
|
||||
|
@@ -213,6 +213,7 @@ bool QnxToolChain::operator ==(const ToolChain &other) const
|
||||
QnxToolChainFactory::QnxToolChainFactory()
|
||||
{
|
||||
setDisplayName(tr("QCC"));
|
||||
setSupportedToolChainType(Constants::QNX_TOOLCHAIN_ID);
|
||||
}
|
||||
|
||||
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
|
||||
@@ -231,11 +232,6 @@ QSet<Core::Id> QnxToolChainFactory::supportedLanguages() const
|
||||
return {ProjectExplorer::Constants::CXX_LANGUAGE_ID};
|
||||
}
|
||||
|
||||
bool QnxToolChainFactory::canRestore(const QVariantMap &data)
|
||||
{
|
||||
return typeIdFromMap(data) == Constants::QNX_TOOLCHAIN_ID;
|
||||
}
|
||||
|
||||
ToolChain *QnxToolChainFactory::restore(const QVariantMap &data)
|
||||
{
|
||||
auto tc = new QnxToolChain(ToolChain::ManualDetection);
|
||||
|
@@ -78,7 +78,6 @@ public:
|
||||
|
||||
QSet<Core::Id> supportedLanguages() const override;
|
||||
|
||||
bool canRestore(const QVariantMap &data) override;
|
||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;
|
||||
|
||||
bool canCreate() override;
|
||||
|
Reference in New Issue
Block a user