ProjectExplorer: Simplify ToolChainFactory::create() signature

Change-Id: I9d579898387609fa7374f43633711a978bb36d93
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-05-08 17:45:02 +02:00
parent 81a643ec99
commit 3ec78efb58
19 changed files with 45 additions and 88 deletions

View File

@@ -226,12 +226,6 @@ IarToolChain::IarToolChain(Detection d) :
ToolChain(Constants::IAREW_TOOLCHAIN_TYPEID, d)
{ }
IarToolChain::IarToolChain(Core::Id language, Detection d) :
IarToolChain(d)
{
setLanguage(language);
}
QString IarToolChain::typeDisplayName() const
{
return Internal::IarToolChainFactory::tr("IAREW");
@@ -465,9 +459,9 @@ bool IarToolChainFactory::canCreate()
return true;
}
ToolChain *IarToolChainFactory::create(Core::Id language)
ToolChain *IarToolChainFactory::create()
{
return new IarToolChain(language, ToolChain::ManualDetection);
return new IarToolChain(ToolChain::ManualDetection);
}
ToolChain *IarToolChainFactory::restore(const QVariantMap &data)

View File

@@ -90,7 +90,6 @@ protected:
private:
explicit IarToolChain(Detection d);
explicit IarToolChain(Core::Id language, Detection d);
ProjectExplorer::Abi m_targetAbi;
Utils::FileName m_compilerCommand;
@@ -112,7 +111,7 @@ public:
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
bool canCreate() final;
ProjectExplorer::ToolChain *create(Core::Id language) final;
ProjectExplorer::ToolChain *create() final;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;

View File

@@ -243,12 +243,6 @@ KeilToolchain::KeilToolchain(Detection d) :
ToolChain(Constants::KEIL_TOOLCHAIN_TYPEID, d)
{ }
KeilToolchain::KeilToolchain(Core::Id language, Detection d) :
KeilToolchain(d)
{
setLanguage(language);
}
QString KeilToolchain::typeDisplayName() const
{
return Internal::KeilToolchainFactory::tr("KEIL");
@@ -469,9 +463,9 @@ bool KeilToolchainFactory::canCreate()
return true;
}
ToolChain *KeilToolchainFactory::create(Core::Id language)
ToolChain *KeilToolchainFactory::create()
{
return new KeilToolchain(language, ToolChain::ManualDetection);
return new KeilToolchain(ToolChain::ManualDetection);
}
ToolChain *KeilToolchainFactory::restore(const QVariantMap &data)

View File

@@ -90,7 +90,6 @@ protected:
private:
explicit KeilToolchain(Detection d);
explicit KeilToolchain(Core::Id language, Detection d);
ProjectExplorer::Abi m_targetAbi;
Utils::FileName m_compilerCommand;
@@ -112,7 +111,7 @@ public:
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
bool canCreate() final;
ProjectExplorer::ToolChain *create(Core::Id language) final;
ProjectExplorer::ToolChain *create() final;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;

View File

@@ -220,12 +220,6 @@ SdccToolChain::SdccToolChain(Detection d) :
ToolChain(Constants::SDCC_TOOLCHAIN_TYPEID, d)
{ }
SdccToolChain::SdccToolChain(Core::Id language, Detection d) :
SdccToolChain(d)
{
setLanguage(language);
}
QString SdccToolChain::typeDisplayName() const
{
return Internal::SdccToolChainFactory::tr("SDCC");
@@ -446,9 +440,9 @@ bool SdccToolChainFactory::canCreate()
return true;
}
ToolChain *SdccToolChainFactory::create(Core::Id language)
ToolChain *SdccToolChainFactory::create()
{
return new SdccToolChain(language, ToolChain::ManualDetection);
return new SdccToolChain(ToolChain::ManualDetection);
}
ToolChain *SdccToolChainFactory::restore(const QVariantMap &data)

View File

@@ -90,7 +90,6 @@ protected:
private:
explicit SdccToolChain(Detection d);
explicit SdccToolChain(Core::Id language, Detection d);
ProjectExplorer::Abi m_targetAbi;
Utils::FileName m_compilerCommand;
@@ -112,7 +111,7 @@ public:
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
bool canCreate() final;
ProjectExplorer::ToolChain *create(Core::Id language) final;
ProjectExplorer::ToolChain *create() final;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;

View File

@@ -52,13 +52,9 @@ bool NimToolChainFactory::canCreate()
return true;
}
ToolChain *NimToolChainFactory::create(Core::Id l)
ToolChain *NimToolChainFactory::create()
{
if (l != Constants::C_NIMLANGUAGE_ID)
return nullptr;
auto result = new NimToolChain(ToolChain::ManualDetection);
result->setLanguage(l);
return result;
return new NimToolChain(ToolChain::ManualDetection);
}
ToolChain *NimToolChainFactory::restore(const QVariantMap &data)

View File

@@ -42,7 +42,7 @@ public:
NimToolChainFactory();
bool canCreate() final;
ProjectExplorer::ToolChain *create(Core::Id l) final;
ProjectExplorer::ToolChain *create() final;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
QList<ProjectExplorer::ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;

View File

@@ -86,12 +86,6 @@ CustomToolChain::CustomToolChain(Detection d) :
m_outputParserId(GccParser::id())
{ }
CustomToolChain::CustomToolChain(Core::Id language, Detection d) : CustomToolChain(d)
{
setLanguage(language);
}
QString CustomToolChain::typeDisplayName() const
{
return Internal::CustomToolChainFactory::tr("Custom");
@@ -434,9 +428,9 @@ bool CustomToolChainFactory::canCreate()
return true;
}
ToolChain *CustomToolChainFactory::create(Core::Id language)
ToolChain *CustomToolChainFactory::create()
{
return new CustomToolChain(language, ToolChain::ManualDetection);
return new CustomToolChain(ToolChain::ManualDetection);
}
ToolChain *CustomToolChainFactory::restore(const QVariantMap &data)

View File

@@ -118,7 +118,6 @@ protected:
private:
explicit CustomToolChain(Detection d);
explicit CustomToolChain(Core::Id language, Detection d);
Utils::FileName m_compilerCommand;
Utils::FileName m_makeCommand;
@@ -146,7 +145,7 @@ public:
CustomToolChainFactory();
bool canCreate() override;
ToolChain *create(Core::Id language) override;
ToolChain *create() override;
ToolChain *restore(const QVariantMap &data) override;
};

View File

@@ -884,11 +884,9 @@ bool GccToolChainFactory::canCreate()
return true;
}
ToolChain *GccToolChainFactory::create(Core::Id language)
ToolChain *GccToolChainFactory::create()
{
ToolChain *tc = createToolChain(false);
tc->setLanguage(language);
return tc;
return createToolChain(false);
}
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)

View File

@@ -58,7 +58,7 @@ public:
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) override;
bool canCreate() override;
ToolChain *create(Core::Id language) override;
ToolChain *create() override;
ToolChain *restore(const QVariantMap &data) override;

View File

@@ -782,9 +782,8 @@ MsvcToolChain::MsvcToolChain(const QString &name,
const Abi &abi,
const QString &varsBat,
const QString &varsBatArg,
Core::Id l,
Detection d)
: MsvcToolChain(Constants::MSVC_TOOLCHAIN_TYPEID, name, abi, varsBat, varsBatArg, l, d)
: MsvcToolChain(Constants::MSVC_TOOLCHAIN_TYPEID, name, abi, varsBat, varsBatArg, d)
{}
MsvcToolChain::MsvcToolChain(const MsvcToolChain &other)
@@ -828,7 +827,6 @@ MsvcToolChain::MsvcToolChain(Core::Id typeId,
const Abi &abi,
const QString &varsBat,
const QString &varsBatArg,
Core::Id l,
Detection d)
: ToolChain(typeId, d)
, m_headerPathsMutex(new QMutex)
@@ -839,7 +837,6 @@ MsvcToolChain::MsvcToolChain(Core::Id typeId,
{
addToAvailableMsvcToolchains(this);
setLanguage(l);
initEnvModWatcher(Utils::runAsync(envModThreadPool(),
&MsvcToolChain::environmentModifications,
varsBat,
@@ -1429,7 +1426,8 @@ static QList<ToolChain *> detectClangClToolChainInPath(const QString &clangClPat
clangClPath);
}));
if (!tc) {
tc = new ClangClToolChain(name, clangClPath, language, ToolChain::AutoDetection);
tc = new ClangClToolChain(name, clangClPath, ToolChain::AutoDetection);
tc->setLanguage(language);
tc->resetMsvcToolChain(toolChain);
}
res << tc;
@@ -1491,9 +1489,8 @@ void ClangClToolChainConfigWidget::makeReadOnlyImpl()
ClangClToolChain::ClangClToolChain(const QString &name,
const QString &clangPath,
Core::Id language,
Detection d)
: MsvcToolChain(Constants::CLANG_CL_TOOLCHAIN_TYPEID, name, Abi(), "", "", language, d)
: MsvcToolChain(Constants::CLANG_CL_TOOLCHAIN_TYPEID, name, Abi(), "", "", d)
, m_clangPath(clangPath)
{}
@@ -1679,8 +1676,10 @@ static QList<ToolChain *> findOrCreateToolChain(const QList<ToolChain *> &alread
auto mtc = static_cast<MsvcToolChain *>(tc);
return mtc->varsBat() == varsBat && mtc->varsBatArg() == varsBatArg;
});
if (!tc)
tc = new MsvcToolChain(name, abi, varsBat, varsBatArg, language, d);
if (!tc) {
tc = new MsvcToolChain(name, abi, varsBat, varsBatArg, d);
tc->setLanguage(language);
}
res << tc;
}
return res;
@@ -1715,12 +1714,13 @@ static void detectCppBuildTools2015(QList<ToolChain *> *list)
e.format,
e.wordSize);
for (auto language : {Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID}) {
list->append(new MsvcToolChain(name + QLatin1String(e.postFix),
auto tc = new MsvcToolChain(name + QLatin1String(e.postFix),
abi,
vcVarsBat,
QLatin1String(e.varsBatArg),
language,
ToolChain::AutoDetection));
ToolChain::AutoDetection);
tc->setLanguage(language);
list->append(tc);
}
}
}
@@ -1865,9 +1865,9 @@ QList<ToolChain *> ClangClToolChainFactory::autoDetect(const QList<ToolChain *>
return results;
}
ToolChain *ClangClToolChainFactory::create(Core::Id l)
ToolChain *ClangClToolChainFactory::create()
{
return new ClangClToolChain("clang-cl", "", l, ToolChain::ManualDetection);
return new ClangClToolChain("clang-cl", "", ToolChain::ManualDetection);
}
bool MsvcToolChain::operator==(const ToolChain &other) const

View File

@@ -59,7 +59,6 @@ public:
const Abi &abi,
const QString &varsBat,
const QString &varsBatArg,
Core::Id l,
Detection d = ManualDetection);
MsvcToolChain(const MsvcToolChain &other);
MsvcToolChain();
@@ -130,7 +129,6 @@ protected:
const Abi &abi,
const QString &varsBat,
const QString &varsBatArg,
Core::Id l,
Detection d);
explicit MsvcToolChain(Core::Id typeId);
@@ -182,7 +180,7 @@ protected:
class ClangClToolChain : public MsvcToolChain
{
public:
ClangClToolChain(const QString &name, const QString &llvmDir, Core::Id language, Detection d);
ClangClToolChain(const QString &name, const QString &llvmDir, Detection d);
ClangClToolChain();
bool isValid() const override;
@@ -246,7 +244,7 @@ public:
ToolChain *restore(const QVariantMap &data) override;
bool canCreate() override;
ToolChain *create(Core::Id l) override;
ToolChain *create() override;
};
// --------------------------------------------------------------------------

View File

@@ -443,9 +443,8 @@ bool ToolChainFactory::canCreate()
return false;
}
ToolChain *ToolChainFactory::create(Core::Id l)
ToolChain *ToolChainFactory::create()
{
Q_UNUSED(l);
return nullptr;
}

View File

@@ -198,7 +198,7 @@ public:
virtual QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language);
virtual bool canCreate();
virtual ToolChain *create(Core::Id l);
virtual ToolChain *create();
virtual ToolChain *restore(const QVariantMap &data);

View File

@@ -509,10 +509,12 @@ void ToolChainOptionsWidget::createToolChain(ToolChainFactory *factory, const Co
QTC_ASSERT(factory->canCreate(), return);
QTC_ASSERT(language.isValid(), return);
ToolChain *tc = factory->create(language);
ToolChain *tc = factory->create();
if (!tc)
return;
tc->setLanguage(language);
auto item = insertToolChain(tc, true);
m_toAddList.append(item);

View File

@@ -106,13 +106,6 @@ QnxToolChain::QnxToolChain(ToolChain::Detection d)
setOptionsReinterpreter(&reinterpretOptions);
}
QnxToolChain::QnxToolChain(Core::Id l, ToolChain::Detection d)
: QnxToolChain(d)
{
setLanguage(l);
}
QString QnxToolChain::typeDisplayName() const
{
return QnxToolChainFactory::tr("QCC");
@@ -243,9 +236,9 @@ bool QnxToolChainFactory::canCreate()
return true;
}
ToolChain *QnxToolChainFactory::create(Core::Id l)
ToolChain *QnxToolChainFactory::create()
{
return new QnxToolChain(l, ToolChain::ManualDetection);
return new QnxToolChain(ToolChain::ManualDetection);
}
//---------------------------------------------------------------------------------

View File

@@ -35,7 +35,6 @@ class QnxToolChain : public ProjectExplorer::GccToolChain
{
public:
explicit QnxToolChain(Detection d);
explicit QnxToolChain(Core::Id l, Detection d);
QString typeDisplayName() const override;
@@ -79,7 +78,7 @@ public:
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;
bool canCreate() override;
ProjectExplorer::ToolChain *create(Core::Id l) override;
ProjectExplorer::ToolChain *create() override;
};
//----------------------------------------------------------------------------