summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/android/androidtoolchain.cpp6
-rw-r--r--src/plugins/android/androidtoolchain.h1
-rw-r--r--src/plugins/baremetal/iarewtoolchain.cpp8
-rw-r--r--src/plugins/baremetal/iarewtoolchain.h1
-rw-r--r--src/plugins/baremetal/keiltoolchain.cpp8
-rw-r--r--src/plugins/baremetal/keiltoolchain.h1
-rw-r--r--src/plugins/baremetal/sdcctoolchain.cpp6
-rw-r--r--src/plugins/baremetal/sdcctoolchain.h1
-rw-r--r--src/plugins/ios/iosconfigurations.cpp8
-rw-r--r--src/plugins/ios/iosconfigurations.h3
-rw-r--r--src/plugins/nim/project/nimtoolchainfactory.cpp6
-rw-r--r--src/plugins/nim/project/nimtoolchainfactory.h1
-rw-r--r--src/plugins/projectexplorer/customtoolchain.cpp6
-rw-r--r--src/plugins/projectexplorer/customtoolchain.h1
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp26
-rw-r--r--src/plugins/projectexplorer/gcctoolchainfactories.h4
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp6
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.h1
-rw-r--r--src/plugins/projectexplorer/toolchain.cpp15
-rw-r--r--src/plugins/projectexplorer/toolchain.h6
-rw-r--r--src/plugins/qnx/qnxtoolchain.cpp6
-rw-r--r--src/plugins/qnx/qnxtoolchain.h2
22 files changed, 39 insertions, 84 deletions
diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp
index 4e3cd7b322..015e4c55c6 100644
--- a/src/plugins/android/androidtoolchain.cpp
+++ b/src/plugins/android/androidtoolchain.cpp
@@ -155,11 +155,7 @@ AndroidToolChainFactory::AndroidToolChainFactory()
{
setDisplayName(tr("Android Clang"));
setSupportedToolChainType(Constants::ANDROID_TOOLCHAIN_ID);
-}
-
-QSet<Core::Id> Android::Internal::AndroidToolChainFactory::supportedLanguages() const
-{
- return {ProjectExplorer::Constants::CXX_LANGUAGE_ID};
+ setSupportedLanguages({ProjectExplorer::Constants::CXX_LANGUAGE_ID});
}
ToolChainList AndroidToolChainFactory::autoDetect(CToolChainList &alreadyKnown)
diff --git a/src/plugins/android/androidtoolchain.h b/src/plugins/android/androidtoolchain.h
index 6d69f842c8..5fb2669413 100644
--- a/src/plugins/android/androidtoolchain.h
+++ b/src/plugins/android/androidtoolchain.h
@@ -64,7 +64,6 @@ class AndroidToolChainFactory : public ProjectExplorer::ToolChainFactory
public:
AndroidToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
ToolChainList autoDetect(CToolChainList &alreadyKnown) override;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;
diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp
index 66e915fc9a..f40798cdb9 100644
--- a/src/plugins/baremetal/iarewtoolchain.cpp
+++ b/src/plugins/baremetal/iarewtoolchain.cpp
@@ -400,12 +400,8 @@ IarToolChainFactory::IarToolChainFactory()
{
setDisplayName(tr("IAREW"));
setSupportedToolChainType(Constants::IAREW_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> IarToolChainFactory::supportedLanguages() const
-{
- return {ProjectExplorer::Constants::C_LANGUAGE_ID,
- ProjectExplorer::Constants::CXX_LANGUAGE_ID};
+ setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
+ ProjectExplorer::Constants::CXX_LANGUAGE_ID});
}
QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/baremetal/iarewtoolchain.h b/src/plugins/baremetal/iarewtoolchain.h
index 6c835cc23b..902288e611 100644
--- a/src/plugins/baremetal/iarewtoolchain.h
+++ b/src/plugins/baremetal/iarewtoolchain.h
@@ -107,7 +107,6 @@ class IarToolChainFactory final : public ProjectExplorer::ToolChainFactory
public:
explicit IarToolChainFactory();
- QSet<Core::Id> supportedLanguages() const final;
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp
index 665e0b0f73..c7d639e973 100644
--- a/src/plugins/baremetal/keiltoolchain.cpp
+++ b/src/plugins/baremetal/keiltoolchain.cpp
@@ -410,12 +410,8 @@ KeilToolchainFactory::KeilToolchainFactory()
{
setDisplayName(tr("KEIL"));
setSupportedToolChainType(Constants::KEIL_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> KeilToolchainFactory::supportedLanguages() const
-{
- return {ProjectExplorer::Constants::C_LANGUAGE_ID,
- ProjectExplorer::Constants::CXX_LANGUAGE_ID};
+ setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
+ ProjectExplorer::Constants::CXX_LANGUAGE_ID});
}
QList<ToolChain *> KeilToolchainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/baremetal/keiltoolchain.h b/src/plugins/baremetal/keiltoolchain.h
index ed3f69935b..e2c6d74992 100644
--- a/src/plugins/baremetal/keiltoolchain.h
+++ b/src/plugins/baremetal/keiltoolchain.h
@@ -107,7 +107,6 @@ class KeilToolchainFactory final : public ProjectExplorer::ToolChainFactory
public:
explicit KeilToolchainFactory();
- QSet<Core::Id> supportedLanguages() const final;
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
diff --git a/src/plugins/baremetal/sdcctoolchain.cpp b/src/plugins/baremetal/sdcctoolchain.cpp
index ce0ef2b72a..79f245b586 100644
--- a/src/plugins/baremetal/sdcctoolchain.cpp
+++ b/src/plugins/baremetal/sdcctoolchain.cpp
@@ -395,11 +395,7 @@ SdccToolChainFactory::SdccToolChainFactory()
{
setDisplayName(tr("SDCC"));
setSupportedToolChainType(Constants::SDCC_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> SdccToolChainFactory::supportedLanguages() const
-{
- return {ProjectExplorer::Constants::C_LANGUAGE_ID};
+ setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID});
}
QList<ToolChain *> SdccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/baremetal/sdcctoolchain.h b/src/plugins/baremetal/sdcctoolchain.h
index 65e522a33a..e98675e7e3 100644
--- a/src/plugins/baremetal/sdcctoolchain.h
+++ b/src/plugins/baremetal/sdcctoolchain.h
@@ -107,7 +107,6 @@ class SdccToolChainFactory final : public ProjectExplorer::ToolChainFactory
public:
explicit SdccToolChainFactory();
- QSet<Core::Id> supportedLanguages() const final;
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) final;
diff --git a/src/plugins/ios/iosconfigurations.cpp b/src/plugins/ios/iosconfigurations.cpp
index 3494c0325f..8e3ac414f2 100644
--- a/src/plugins/ios/iosconfigurations.cpp
+++ b/src/plugins/ios/iosconfigurations.cpp
@@ -597,12 +597,10 @@ static ClangToolChain *createToolChain(const XcodePlatform &platform,
return toolChain;
}
-QSet<Core::Id> IosToolChainFactory::supportedLanguages() const
+IosToolChainFactory::IosToolChainFactory()
{
- return {
- ProjectExplorer::Constants::C_LANGUAGE_ID,
- ProjectExplorer::Constants::CXX_LANGUAGE_ID
- };
+ setSupportedLanguages({ProjectExplorer::Constants::C_LANGUAGE_ID,
+ ProjectExplorer::Constants::CXX_LANGUAGE_ID});
}
QList<ToolChain *> IosToolChainFactory::autoDetect(const QList<ToolChain *> &existingToolChains)
diff --git a/src/plugins/ios/iosconfigurations.h b/src/plugins/ios/iosconfigurations.h
index 9b3faa348e..eaafc9eb08 100644
--- a/src/plugins/ios/iosconfigurations.h
+++ b/src/plugins/ios/iosconfigurations.h
@@ -98,7 +98,8 @@ class IosToolChainFactory : public ProjectExplorer::ToolChainFactory
Q_OBJECT
public:
- QSet<Core::Id> supportedLanguages() const override;
+ IosToolChainFactory();
+
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &existingToolChains) override;
};
diff --git a/src/plugins/nim/project/nimtoolchainfactory.cpp b/src/plugins/nim/project/nimtoolchainfactory.cpp
index 30d4e759b5..e38b9db4b2 100644
--- a/src/plugins/nim/project/nimtoolchainfactory.cpp
+++ b/src/plugins/nim/project/nimtoolchainfactory.cpp
@@ -44,6 +44,7 @@ NimToolChainFactory::NimToolChainFactory()
{
setDisplayName(tr("Nim"));
setSupportedToolChainType(Constants::C_NIMTOOLCHAIN_TYPEID);
+ setSupportedLanguages({Constants::C_NIMLANGUAGE_ID});
}
bool NimToolChainFactory::canCreate()
@@ -69,11 +70,6 @@ ToolChain *NimToolChainFactory::restore(const QVariantMap &data)
return nullptr;
}
-QSet<Core::Id> NimToolChainFactory::supportedLanguages() const
-{
- return {Constants::C_NIMLANGUAGE_ID};
-}
-
QList<ToolChain *> NimToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
{
QList<ToolChain *> result;
diff --git a/src/plugins/nim/project/nimtoolchainfactory.h b/src/plugins/nim/project/nimtoolchainfactory.h
index 3730efabf0..e601b71cf6 100644
--- a/src/plugins/nim/project/nimtoolchainfactory.h
+++ b/src/plugins/nim/project/nimtoolchainfactory.h
@@ -44,7 +44,6 @@ public:
bool canCreate() final;
ProjectExplorer::ToolChain *create(Core::Id l) final;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) final;
- QSet<Core::Id> supportedLanguages() const 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 b484f11d72..566ce93c51 100644
--- a/src/plugins/projectexplorer/customtoolchain.cpp
+++ b/src/plugins/projectexplorer/customtoolchain.cpp
@@ -426,11 +426,7 @@ CustomToolChainFactory::CustomToolChainFactory()
{
setDisplayName(tr("Custom"));
setSupportedToolChainType(Constants::CUSTOM_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> CustomToolChainFactory::supportedLanguages() const
-{
- return ToolChainManager::allLanguages();
+ setSupportsAllLanguages(true);
}
bool CustomToolChainFactory::canCreate()
diff --git a/src/plugins/projectexplorer/customtoolchain.h b/src/plugins/projectexplorer/customtoolchain.h
index 713aeb5cbc..97ba205e47 100644
--- a/src/plugins/projectexplorer/customtoolchain.h
+++ b/src/plugins/projectexplorer/customtoolchain.h
@@ -144,7 +144,6 @@ class CustomToolChainFactory : public ToolChainFactory
public:
CustomToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
bool canCreate() override;
ToolChain *create(Core::Id language) override;
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 68ada22134..7390da453b 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -876,11 +876,7 @@ GccToolChainFactory::GccToolChainFactory()
{
setDisplayName(tr("GCC"));
setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> GccToolChainFactory::supportedLanguages() const
-{
- return {Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID};
+ setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID});
}
bool GccToolChainFactory::canCreate()
@@ -1495,12 +1491,7 @@ ClangToolChainFactory::ClangToolChainFactory()
{
setDisplayName(tr("Clang"));
setSupportedToolChainType(Constants::CLANG_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> ClangToolChainFactory::supportedLanguages() const
-{
- return {Constants::CXX_LANGUAGE_ID,
- Constants::C_LANGUAGE_ID};
+ setSupportedLanguages({Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID});
}
QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
@@ -1709,12 +1700,7 @@ MingwToolChainFactory::MingwToolChainFactory()
{
setDisplayName(tr("MinGW"));
setSupportedToolChainType(Constants::MINGW_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> MingwToolChainFactory::supportedLanguages() const
-{
- return {Constants::CXX_LANGUAGE_ID,
- Constants::C_LANGUAGE_ID};
+ setSupportedLanguages({Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID});
}
QList<ToolChain *> MingwToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
@@ -1809,11 +1795,7 @@ LinuxIccToolChainFactory::LinuxIccToolChainFactory()
{
setDisplayName(tr("Linux ICC"));
setSupportedToolChainType(Constants::LINUXICC_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> LinuxIccToolChainFactory::supportedLanguages() const
-{
- return {Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID};
+ setSupportedLanguages({Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID});
}
QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h
index 12409ecb94..4db9131f76 100644
--- a/src/plugins/projectexplorer/gcctoolchainfactories.h
+++ b/src/plugins/projectexplorer/gcctoolchainfactories.h
@@ -53,7 +53,6 @@ class GccToolChainFactory : public ToolChainFactory
public:
GccToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) override;
@@ -146,7 +145,6 @@ class ClangToolChainFactory : public GccToolChainFactory
public:
ClangToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
@@ -165,7 +163,6 @@ class MingwToolChainFactory : public GccToolChainFactory
public:
MingwToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
@@ -184,7 +181,6 @@ class LinuxIccToolChainFactory : public GccToolChainFactory
public:
LinuxIccToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
QList<ToolChain *> autoDetect(const Utils::FileName &compilerPath, const Core::Id &language) final;
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 1fec74e7d2..24857e18ae 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -1641,11 +1641,7 @@ MsvcToolChainFactory::MsvcToolChainFactory()
{
setDisplayName(tr("MSVC"));
setSupportedToolChainType(Constants::MSVC_TOOLCHAIN_TYPEID);
-}
-
-QSet<Core::Id> MsvcToolChainFactory::supportedLanguages() const
-{
- return {Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID};
+ setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID});
}
QString MsvcToolChainFactory::vcVarsBatFor(const QString &basePath,
diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h
index 7bf89794ca..cdfcb76197 100644
--- a/src/plugins/projectexplorer/msvctoolchain.h
+++ b/src/plugins/projectexplorer/msvctoolchain.h
@@ -224,7 +224,6 @@ class MsvcToolChainFactory : public ToolChainFactory
public:
MsvcToolChainFactory();
- QSet<Core::Id> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index 142d123985..56796b1d5b 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -477,6 +477,11 @@ void ToolChainFactory::autoDetectionToMap(QVariantMap &data, bool detected)
data.insert(QLatin1String(AUTODETECT_KEY), detected);
}
+QSet<Core::Id> ToolChainFactory::supportedLanguages() const
+{
+ return m_supportsAllLanguages ? ToolChainManager::allLanguages() : m_supportedLanguages;
+}
+
Core::Id ToolChainFactory::supportedToolChainType() const
{
return m_supportedToolChainType;
@@ -487,4 +492,14 @@ void ToolChainFactory::setSupportedToolChainType(const Core::Id &supportedToolCh
m_supportedToolChainType = supportedToolChain;
}
+void ToolChainFactory::setSupportedLanguages(const QSet<Core::Id> &supportedLanguages)
+{
+ m_supportedLanguages = supportedLanguages;
+}
+
+void ToolChainFactory::setSupportsAllLanguages(bool supportsAllLanguages)
+{
+ m_supportsAllLanguages = supportsAllLanguages;
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index a035905155..c54c539c7c 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -206,11 +206,13 @@ public:
static Core::Id typeIdFromMap(const QVariantMap &data);
static void autoDetectionToMap(QVariantMap &data, bool detected);
- virtual QSet<Core::Id> supportedLanguages() const = 0;
+ QSet<Core::Id> supportedLanguages() const;
protected:
void setDisplayName(const QString &name) { m_displayName = name; }
void setSupportedToolChainType(const Core::Id &supportedToolChainType);
+ void setSupportedLanguages(const QSet<Core::Id> &supportedLanguages);
+ void setSupportsAllLanguages(bool supportsAllLanguages);
class Candidate {
public:
@@ -228,6 +230,8 @@ protected:
private:
QString m_displayName;
Core::Id m_supportedToolChainType;
+ QSet<Core::Id> m_supportedLanguages;
+ bool m_supportsAllLanguages = false;
};
} // namespace ProjectExplorer
diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp
index 7c5425c63f..d2dc1f50c4 100644
--- a/src/plugins/qnx/qnxtoolchain.cpp
+++ b/src/plugins/qnx/qnxtoolchain.cpp
@@ -214,6 +214,7 @@ QnxToolChainFactory::QnxToolChainFactory()
{
setDisplayName(tr("QCC"));
setSupportedToolChainType(Constants::QNX_TOOLCHAIN_ID);
+ setSupportedLanguages({ProjectExplorer::Constants::CXX_LANGUAGE_ID});
}
QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
@@ -227,11 +228,6 @@ QList<ProjectExplorer::ToolChain *> QnxToolChainFactory::autoDetect(
return tcs;
}
-QSet<Core::Id> QnxToolChainFactory::supportedLanguages() const
-{
- return {ProjectExplorer::Constants::CXX_LANGUAGE_ID};
-}
-
ToolChain *QnxToolChainFactory::restore(const QVariantMap &data)
{
auto tc = new QnxToolChain(ToolChain::ManualDetection);
diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h
index 77e583912c..a700f20b17 100644
--- a/src/plugins/qnx/qnxtoolchain.h
+++ b/src/plugins/qnx/qnxtoolchain.h
@@ -76,8 +76,6 @@ public:
QList<ProjectExplorer::ToolChain *> autoDetect(
const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
- QSet<Core::Id> supportedLanguages() const override;
-
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;
bool canCreate() override;