summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-05-10 18:22:58 +0200
committerhjk <hjk@qt.io>2019-05-13 14:55:15 +0000
commitb997214abbb352df2392ed8e6377cfefdbb8dce2 (patch)
tree06b7d13f15655bd45cc01d077177526f2c3b687d
parent086eb4d598dffc65ce78297c718e2383aa2fbf38 (diff)
downloadqt-creator-b997214abbb352df2392ed8e6377cfefdbb8dce2.tar.gz
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>
-rw-r--r--src/plugins/baremetal/iarewtoolchain.cpp6
-rw-r--r--src/plugins/baremetal/iarewtoolchain.h2
-rw-r--r--src/plugins/baremetal/keiltoolchain.cpp6
-rw-r--r--src/plugins/baremetal/keiltoolchain.h2
-rw-r--r--src/plugins/baremetal/sdcctoolchain.cpp6
-rw-r--r--src/plugins/baremetal/sdcctoolchain.h4
-rw-r--r--src/plugins/nim/project/nimtoolchainfactory.cpp6
-rw-r--r--src/plugins/nim/project/nimtoolchainfactory.h2
-rw-r--r--src/plugins/projectexplorer/customtoolchain.cpp6
-rw-r--r--src/plugins/projectexplorer/customtoolchain.h2
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp6
-rw-r--r--src/plugins/projectexplorer/gcctoolchainfactories.h2
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp2
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.h2
-rw-r--r--src/plugins/projectexplorer/toolchain.cpp9
-rw-r--r--src/plugins/projectexplorer/toolchain.h5
-rw-r--r--src/plugins/qnx/qnxtoolchain.cpp6
-rw-r--r--src/plugins/qnx/qnxtoolchain.h2
18 files changed, 21 insertions, 55 deletions
diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp
index a74f1798d8..d287ef9f4e 100644
--- a/src/plugins/baremetal/iarewtoolchain.cpp
+++ b/src/plugins/baremetal/iarewtoolchain.cpp
@@ -402,6 +402,7 @@ IarToolChainFactory::IarToolChainFactory()
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
setToolchainConstructor([] { return new IarToolChain; });
+ setUserCreatable(true);
}
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
@@ -460,11 +461,6 @@ QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alr
return autoDetectToolchains(candidates, alreadyKnown);
}
-bool IarToolChainFactory::canCreate()
-{
- return true;
-}
-
QList<ToolChain *> IarToolChainFactory::autoDetectToolchains(
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
{
diff --git a/src/plugins/baremetal/iarewtoolchain.h b/src/plugins/baremetal/iarewtoolchain.h
index 569f012b43..810bfbd0b3 100644
--- a/src/plugins/baremetal/iarewtoolchain.h
+++ b/src/plugins/baremetal/iarewtoolchain.h
@@ -110,8 +110,6 @@ public:
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
- bool canCreate() final;
-
private:
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp
index fbdd600281..29375ac440 100644
--- a/src/plugins/baremetal/keiltoolchain.cpp
+++ b/src/plugins/baremetal/keiltoolchain.cpp
@@ -407,6 +407,7 @@ KeilToolchainFactory::KeilToolchainFactory()
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
ProjectExplorer::Constants::CXX_LANGUAGE_ID});
setToolchainConstructor([] { return new KeilToolchain; });
+ setUserCreatable(true);
}
QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
@@ -459,11 +460,6 @@ QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &al
return autoDetectToolchains(candidates, alreadyKnown);
}
-bool KeilToolchainFactory::canCreate()
-{
- return true;
-}
-
QList<ToolChain *> KeilToolchainFactory::autoDetectToolchains(
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
{
diff --git a/src/plugins/baremetal/keiltoolchain.h b/src/plugins/baremetal/keiltoolchain.h
index 95a968286e..55c523f1d4 100644
--- a/src/plugins/baremetal/keiltoolchain.h
+++ b/src/plugins/baremetal/keiltoolchain.h
@@ -110,8 +110,6 @@ public:
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
- bool canCreate() final;
-
private:
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
diff --git a/src/plugins/baremetal/sdcctoolchain.cpp b/src/plugins/baremetal/sdcctoolchain.cpp
index b95c218298..dd29073284 100644
--- a/src/plugins/baremetal/sdcctoolchain.cpp
+++ b/src/plugins/baremetal/sdcctoolchain.cpp
@@ -391,6 +391,7 @@ SdccToolChainFactory::SdccToolChainFactory()
setSupportedToolChainType(Constants::SDCC_TOOLCHAIN_TYPEID);
setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID});
setToolchainConstructor([] { return new SdccToolChain; });
+ setUserCreatable(true);
}
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
@@ -436,11 +437,6 @@ QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &al
return autoDetectToolchains(candidates, alreadyKnown);
}
-bool SdccToolChainFactory::canCreate()
-{
- return true;
-}
-
QList<ToolChain *> SdccToolChainFactory::autoDetectToolchains(
const Candidates &candidates, const QList<ToolChain *> &alreadyKnown) const
{
diff --git a/src/plugins/baremetal/sdcctoolchain.h b/src/plugins/baremetal/sdcctoolchain.h
index 787470bf9d..711207d209 100644
--- a/src/plugins/baremetal/sdcctoolchain.h
+++ b/src/plugins/baremetal/sdcctoolchain.h
@@ -105,13 +105,11 @@ class SdccToolChainFactory final : public ProjectExplorer::ToolChainFactory
Q_OBJECT
public:
- explicit SdccToolChainFactory();
+ SdccToolChainFactory();
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
- bool canCreate() final;
-
private:
QList<ProjectExplorer::ToolChain *> autoDetectToolchains(const Candidates &candidates,
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) const;
diff --git a/src/plugins/nim/project/nimtoolchainfactory.cpp b/src/plugins/nim/project/nimtoolchainfactory.cpp
index b59f83303b..953ad569b1 100644
--- a/src/plugins/nim/project/nimtoolchainfactory.cpp
+++ b/src/plugins/nim/project/nimtoolchainfactory.cpp
@@ -46,11 +46,7 @@ NimToolChainFactory::NimToolChainFactory()
setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID);
setSupportedLanguages({Constants::C_NIMLANGUAGE_ID});
setToolchainConstructor([] { return new NimToolChain; });
-}
-
-bool NimToolChainFactory::canCreate()
-{
- return true;
+ setUserCreatable(true);
}
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/nim/project/nimtoolchainfactory.h b/src/plugins/nim/project/nimtoolchainfactory.h
index ab7a8584ec..ed40bfeb62 100644
--- a/src/plugins/nim/project/nimtoolchainfactory.h
+++ b/src/plugins/nim/project/nimtoolchainfactory.h
@@ -41,8 +41,6 @@ class NimToolChainFactory : public ProjectExplorer::ToolChainFactory
public:
NimToolChainFactory();
- bool canCreate() final;
-
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
QList<ProjectExplorer::ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
};
diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp
index a46702e38d..199e1faca1 100644
--- a/src/plugins/projectexplorer/customtoolchain.cpp
+++ b/src/plugins/projectexplorer/customtoolchain.cpp
@@ -422,11 +422,7 @@ CustomToolChainFactory::CustomToolChainFactory()
setSupportedToolChainType(Constants::CUSTOM_TOOLCHAIN_TYPEID);
setSupportsAllLanguages(true);
setToolchainConstructor([] { return new CustomToolChain; });
-}
-
-bool CustomToolChainFactory::canCreate()
-{
- return true;
+ setUserCreatable(true);
}
// --------------------------------------------------------------------------
diff --git a/src/plugins/projectexplorer/customtoolchain.h b/src/plugins/projectexplorer/customtoolchain.h
index 0fda88c5b1..ef403851a0 100644
--- a/src/plugins/projectexplorer/customtoolchain.h
+++ b/src/plugins/projectexplorer/customtoolchain.h
@@ -143,8 +143,6 @@ class CustomToolChainFactory : public ToolChainFactory
public:
CustomToolChainFactory();
-
- bool canCreate() override;
};
// --------------------------------------------------------------------------
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index a49f79484a..bfb179bdfa 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -878,11 +878,7 @@ GccToolChainFactory::GccToolChainFactory()
setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID);
setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID});
setToolchainConstructor([] { return new GccToolChain; });
-}
-
-bool GccToolChainFactory::canCreate()
-{
- return true;
+ setUserCreatable(true);
}
QList<ToolChain *> GccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h
index 1c917da035..90d76ea734 100644
--- a/src/plugins/projectexplorer/gcctoolchainfactories.h
+++ b/src/plugins/projectexplorer/gcctoolchainfactories.h
@@ -57,8 +57,6 @@ public:
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) override;
- bool canCreate() override;
-
protected:
enum class DetectVariants { Yes, No };
using ToolchainChecker = std::function<bool(const ToolChain *)>;
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index fdd617d9d6..ce40d4ea91 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -1878,7 +1878,7 @@ ClangClToolChainFactory::ClangClToolChainFactory()
setToolchainConstructor([] { return new ClangClToolChain; });
}
-bool ClangClToolChainFactory::canCreate()
+bool ClangClToolChainFactory::canCreate() const
{
return !g_availableMsvcToolchains.isEmpty();
}
diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h
index bf3ecdbcec..03f7a2fc47 100644
--- a/src/plugins/projectexplorer/msvctoolchain.h
+++ b/src/plugins/projectexplorer/msvctoolchain.h
@@ -239,7 +239,7 @@ public:
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
- bool canCreate() override;
+ bool canCreate() const override;
ToolChain *create() override;
};
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index 47b33fe4da..fd81769cb4 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -438,9 +438,9 @@ QList<ToolChain *> ToolChainFactory::autoDetect(const Utils::FileName &compilerP
return QList<ToolChain *>();
}
-bool ToolChainFactory::canCreate()
+bool ToolChainFactory::canCreate() const
{
- return false;
+ return m_userCreatable;
}
ToolChain *ToolChainFactory::create()
@@ -517,4 +517,9 @@ void ToolChainFactory::setToolchainConstructor
m_toolchainConstructor = toolchainContructor;
}
+void ToolChainFactory::setUserCreatable(bool userCreatable)
+{
+ m_userCreatable = userCreatable;
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index d8ac0458fb..e4eedcd980 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -196,7 +196,7 @@ public:
virtual QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown);
virtual QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language);
- virtual bool canCreate();
+ virtual bool canCreate() const;
virtual ToolChain *create();
virtual ToolChain *restore(const QVariantMap &data);
@@ -207,6 +207,8 @@ public:
QSet<Core::Id> supportedLanguages() const;
+ void setUserCreatable(bool userCreatable);
+
protected:
void setDisplayName(const QString &name) { m_displayName = name; }
void setSupportedToolChainType(const Core::Id &supportedToolChainType);
@@ -232,6 +234,7 @@ private:
Core::Id m_supportedToolChainType;
QSet<Core::Id> m_supportedLanguages;
bool m_supportsAllLanguages = false;
+ bool m_userCreatable = false;
std::function<ToolChain *()> m_toolchainConstructor;
};
diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp
index 0adeec6136..d1880da40f 100644
--- a/src/plugins/qnx/qnxtoolchain.cpp
+++ b/src/plugins/qnx/qnxtoolchain.cpp
@@ -209,6 +209,7 @@ QnxToolChainFactory::QnxToolChainFactory()
setSupportedToolChainType(Constants::QNX_TOOLCHAIN_ID);
setSupportedLanguages({ProjectExplorer::Constants::CXX_LANGUAGE_ID});
setToolchainConstructor([] { return new QnxToolChain; });
+ setUserCreatable(true);
}
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
@@ -222,11 +223,6 @@ QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
return tcs;
}
-bool QnxToolChainFactory::canCreate()
-{
- return true;
-}
-
//---------------------------------------------------------------------------------
// QnxToolChainConfigWidget
//---------------------------------------------------------------------------------
diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h
index b63c883a11..074c1ff6cd 100644
--- a/src/plugins/qnx/qnxtoolchain.h
+++ b/src/plugins/qnx/qnxtoolchain.h
@@ -74,8 +74,6 @@ public:
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
-
- bool canCreate() override;
};
//----------------------------------------------------------------------------