forked from qt-creator/qt-creator
ProjectExplorer: Use a member for ToolChainFactory::canCreate
... in all but one case (ClangCL, which is special). Change-Id: I6429f2f37b18524c29b6be78801ea0e5517cad4c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -402,6 +402,7 @@ IarToolChainFactory::IarToolChainFactory()
|
|||||||
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
|
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
|
||||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new IarToolChain; });
|
setToolchainConstructor([] { return new IarToolChain; });
|
||||||
|
setUserCreatable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||||
@@ -460,11 +461,6 @@ QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alr
|
|||||||
return autoDetectToolchains(candidates, alreadyKnown);
|
return autoDetectToolchains(candidates, alreadyKnown);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IarToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<ToolChain *> IarToolChainFactory::autoDetectToolchains(
|
QList<ToolChain *> IarToolChainFactory::autoDetectToolchains(
|
||||||
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -110,8 +110,6 @@ public:
|
|||||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||||
|
|
||||||
bool canCreate() final;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
||||||
|
|||||||
@@ -407,6 +407,7 @@ KeilToolchainFactory::KeilToolchainFactory()
|
|||||||
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
|
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
|
||||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new KeilToolchain; });
|
setToolchainConstructor([] { return new KeilToolchain; });
|
||||||
|
setUserCreatable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||||
@@ -459,11 +460,6 @@ QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &al
|
|||||||
return autoDetectToolchains(candidates, alreadyKnown);
|
return autoDetectToolchains(candidates, alreadyKnown);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeilToolchainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<ToolChain *> KeilToolchainFactory::autoDetectToolchains(
|
QList<ToolChain *> KeilToolchainFactory::autoDetectToolchains(
|
||||||
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -110,8 +110,6 @@ public:
|
|||||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||||
|
|
||||||
bool canCreate() final;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
||||||
|
|||||||
@@ -391,6 +391,7 @@ SdccToolChainFactory::SdccToolChainFactory()
|
|||||||
setSupportedToolChainType(Constants::SDCC_TOOLCHAIN_TYPEID);
|
setSupportedToolChainType(Constants::SDCC_TOOLCHAIN_TYPEID);
|
||||||
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID});
|
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new SdccToolChain; });
|
setToolchainConstructor([] { return new SdccToolChain; });
|
||||||
|
setUserCreatable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||||
@@ -436,11 +437,6 @@ QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &al
|
|||||||
return autoDetectToolchains(candidates, alreadyKnown);
|
return autoDetectToolchains(candidates, alreadyKnown);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SdccToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<ToolChain *> SdccToolChainFactory::autoDetectToolchains(
|
QList<ToolChain *> SdccToolChainFactory::autoDetectToolchains(
|
||||||
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -105,13 +105,11 @@ class SdccToolChainFactory final : public ProjectExplorer::ToolChainFactory
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SdccToolChainFactory();
|
SdccToolChainFactory();
|
||||||
|
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||||
|
|
||||||
bool canCreate() final;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
|
||||||
|
|||||||
@@ -46,11 +46,7 @@ NimToolChainFactory::NimToolChainFactory()
|
|||||||
setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID);
|
setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID);
|
||||||
setSupportedLanguages({Constants::C_NIMLANGUAGE_ID});
|
setSupportedLanguages({Constants::C_NIMLANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new NimToolChain; });
|
setToolchainConstructor([] { return new NimToolChain; });
|
||||||
}
|
setUserCreatable(true);
|
||||||
|
|
||||||
bool NimToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ class NimToolChainFactory : public ProjectExplorer::ToolChainFactory
|
|||||||
public:
|
public:
|
||||||
NimToolChainFactory();
|
NimToolChainFactory();
|
||||||
|
|
||||||
bool canCreate() final;
|
|
||||||
|
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
|
QList<ProjectExplorer::ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -422,11 +422,7 @@ CustomToolChainFactory::CustomToolChainFactory()
|
|||||||
setSupportedToolChainType(Constants::CUSTOM_TOOLCHAIN_TYPEID);
|
setSupportedToolChainType(Constants::CUSTOM_TOOLCHAIN_TYPEID);
|
||||||
setSupportsAllLanguages(true);
|
setSupportsAllLanguages(true);
|
||||||
setToolchainConstructor([] { return new CustomToolChain; });
|
setToolchainConstructor([] { return new CustomToolChain; });
|
||||||
}
|
setUserCreatable(true);
|
||||||
|
|
||||||
bool CustomToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -143,8 +143,6 @@ class CustomToolChainFactory : public ToolChainFactory
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
CustomToolChainFactory();
|
CustomToolChainFactory();
|
||||||
|
|
||||||
bool canCreate() override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -878,11 +878,7 @@ GccToolChainFactory::GccToolChainFactory()
|
|||||||
setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID);
|
setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID);
|
||||||
setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID});
|
setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new GccToolChain; });
|
setToolchainConstructor([] { return new GccToolChain; });
|
||||||
}
|
setUserCreatable(true);
|
||||||
|
|
||||||
bool GccToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
|
||||||
|
|||||||
@@ -57,8 +57,6 @@ public:
|
|||||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||||
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) override;
|
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) override;
|
||||||
|
|
||||||
bool canCreate() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
enum class DetectVariants { Yes, No };
|
enum class DetectVariants { Yes, No };
|
||||||
using ToolchainChecker = std::function<bool(const ToolChain *)>;
|
using ToolchainChecker = std::function<bool(const ToolChain *)>;
|
||||||
|
|||||||
@@ -1878,7 +1878,7 @@ ClangClToolChainFactory::ClangClToolChainFactory()
|
|||||||
setToolchainConstructor([] { return new ClangClToolChain; });
|
setToolchainConstructor([] { return new ClangClToolChain; });
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClangClToolChainFactory::canCreate()
|
bool ClangClToolChainFactory::canCreate() const
|
||||||
{
|
{
|
||||||
return !g_availableMsvcToolchains.isEmpty();
|
return !g_availableMsvcToolchains.isEmpty();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ public:
|
|||||||
|
|
||||||
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
|
||||||
|
|
||||||
bool canCreate() override;
|
bool canCreate() const override;
|
||||||
ToolChain *create() override;
|
ToolChain *create() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -438,9 +438,9 @@ QList<ToolChain *> ToolChainFactory::autoDetect(const Utils::FileName &compilerP
|
|||||||
return QList<ToolChain *>();
|
return QList<ToolChain *>();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ToolChainFactory::canCreate()
|
bool ToolChainFactory::canCreate() const
|
||||||
{
|
{
|
||||||
return false;
|
return m_userCreatable;
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain *ToolChainFactory::create()
|
ToolChain *ToolChainFactory::create()
|
||||||
@@ -517,4 +517,9 @@ void ToolChainFactory::setToolchainConstructor
|
|||||||
m_toolchainConstructor = toolchainContructor;
|
m_toolchainConstructor = toolchainContructor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ToolChainFactory::setUserCreatable(bool userCreatable)
|
||||||
|
{
|
||||||
|
m_userCreatable = userCreatable;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public:
|
|||||||
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown);
|
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown);
|
||||||
virtual QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language);
|
virtual QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language);
|
||||||
|
|
||||||
virtual bool canCreate();
|
virtual bool canCreate() const;
|
||||||
virtual ToolChain *create();
|
virtual ToolChain *create();
|
||||||
|
|
||||||
virtual ToolChain *restore(const QVariantMap &data);
|
virtual ToolChain *restore(const QVariantMap &data);
|
||||||
@@ -207,6 +207,8 @@ public:
|
|||||||
|
|
||||||
QSet<Core::Id> supportedLanguages() const;
|
QSet<Core::Id> supportedLanguages() const;
|
||||||
|
|
||||||
|
void setUserCreatable(bool userCreatable);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void setDisplayName(const QString &name) { m_displayName = name; }
|
void setDisplayName(const QString &name) { m_displayName = name; }
|
||||||
void setSupportedToolChainType(const Core::Id &supportedToolChainType);
|
void setSupportedToolChainType(const Core::Id &supportedToolChainType);
|
||||||
@@ -232,6 +234,7 @@ private:
|
|||||||
Core::Id m_supportedToolChainType;
|
Core::Id m_supportedToolChainType;
|
||||||
QSet<Core::Id> m_supportedLanguages;
|
QSet<Core::Id> m_supportedLanguages;
|
||||||
bool m_supportsAllLanguages = false;
|
bool m_supportsAllLanguages = false;
|
||||||
|
bool m_userCreatable = false;
|
||||||
std::function<ToolChain *()> m_toolchainConstructor;
|
std::function<ToolChain *()> m_toolchainConstructor;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ QnxToolChainFactory::QnxToolChainFactory()
|
|||||||
setSupportedToolChainType(Constants::QNX_TOOLCHAIN_ID);
|
setSupportedToolChainType(Constants::QNX_TOOLCHAIN_ID);
|
||||||
setSupportedLanguages({ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
setSupportedLanguages({ProjectExplorer::Constants::CXX_LANGUAGE_ID});
|
||||||
setToolchainConstructor([] { return new QnxToolChain; });
|
setToolchainConstructor([] { return new QnxToolChain; });
|
||||||
|
setUserCreatable(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
|
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
|
||||||
@@ -222,11 +223,6 @@ QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
|
|||||||
return tcs;
|
return tcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QnxToolChainFactory::canCreate()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
// QnxToolChainConfigWidget
|
// QnxToolChainConfigWidget
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -74,8 +74,6 @@ public:
|
|||||||
|
|
||||||
QList<ProjectExplorer::ToolChain *> autoDetect(
|
QList<ProjectExplorer::ToolChain *> autoDetect(
|
||||||
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
|
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
|
||||||
|
|
||||||
bool canCreate() override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user