ToolChainFactory: Add support for different languages

* Add a pure virtual method to get supportedLanguges with

Change-Id: Ida4445ca045c90fb9f7656a661af83e5b6801b30
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2016-07-12 11:33:17 +02:00
parent 1304b250eb
commit ca04c4c264
15 changed files with 62 additions and 0 deletions

View File

@@ -263,6 +263,11 @@ AndroidToolChainFactory::AndroidToolChainFactory()
setDisplayName(tr("Android GCC")); setDisplayName(tr("Android GCC"));
} }
QSet<ToolChain::Language> Android::Internal::AndroidToolChainFactory::supportedLanguages() const
{
return { ToolChain::Language::Cxx };
}
QList<ToolChain *> AndroidToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown) QList<ToolChain *> AndroidToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
{ {
return autodetectToolChainsForNdk(AndroidConfigurations::currentConfig().ndkLocation(), alreadyKnown); return autodetectToolChainsForNdk(AndroidConfigurations::currentConfig().ndkLocation(), alreadyKnown);

View File

@@ -95,6 +95,7 @@ class AndroidToolChainFactory : public ProjectExplorer::ToolChainFactory
public: public:
AndroidToolChainFactory(); AndroidToolChainFactory();
QSet<ProjectExplorer::ToolChain::Language> supportedLanguages() const override;
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override; QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &alreadyKnown) override;
bool canRestore(const QVariantMap &data) override; bool canRestore(const QVariantMap &data) override;

View File

@@ -363,6 +363,11 @@ static ClangToolChain *createToolChain(const Platform &platform)
return toolChain; return toolChain;
} }
QSet<ToolChain::Language> IosToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
QList<ToolChain *> IosToolChainFactory::autoDetect(const QList<ToolChain *> &existingToolChains) QList<ToolChain *> IosToolChainFactory::autoDetect(const QList<ToolChain *> &existingToolChains)
{ {
QList<ClangToolChain *> existingClangToolChains = clangToolChains(existingToolChains); QList<ClangToolChain *> existingClangToolChains = clangToolChains(existingToolChains);

View File

@@ -45,6 +45,7 @@ class IosToolChainFactory : public ProjectExplorer::ToolChainFactory
Q_OBJECT Q_OBJECT
public: public:
QSet<ProjectExplorer::ToolChain::Language> supportedLanguages() const override;
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &existingToolChains) override; QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &existingToolChains) override;
}; };

View File

@@ -432,6 +432,11 @@ CustomToolChainFactory::CustomToolChainFactory()
setDisplayName(tr("Custom")); setDisplayName(tr("Custom"));
} }
QSet<ToolChain::Language> CustomToolChainFactory::supportedLanguages() const
{
return { ToolChain::Language::Cxx };
}
bool CustomToolChainFactory::canCreate() bool CustomToolChainFactory::canCreate()
{ {
return true; return true;

View File

@@ -147,6 +147,7 @@ class CustomToolChainFactory : public ToolChainFactory
public: public:
CustomToolChainFactory(); CustomToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
bool canCreate() override; bool canCreate() override;
ToolChain *create() override; ToolChain *create() override;

View File

@@ -769,6 +769,11 @@ GccToolChainFactory::GccToolChainFactory()
setDisplayName(tr("GCC")); setDisplayName(tr("GCC"));
} }
QSet<ToolChain::Language> GccToolChainFactory::supportedLanguages() const
{
return { ToolChain::Language::Cxx };
}
bool GccToolChainFactory::canCreate() bool GccToolChainFactory::canCreate()
{ {
return true; return true;
@@ -1134,6 +1139,11 @@ ClangToolChainFactory::ClangToolChainFactory()
setDisplayName(tr("Clang")); setDisplayName(tr("Clang"));
} }
QSet<ToolChain::Language> ClangToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown) QList<ToolChain *> ClangToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
{ {
return autoDetectToolchains(QLatin1String("clang++"), Abi::hostAbi(), return autoDetectToolchains(QLatin1String("clang++"), Abi::hostAbi(),
@@ -1213,6 +1223,11 @@ MingwToolChainFactory::MingwToolChainFactory()
setDisplayName(tr("MinGW")); setDisplayName(tr("MinGW"));
} }
QSet<ToolChain::Language> MingwToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
QList<ToolChain *> MingwToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown) QList<ToolChain *> MingwToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
{ {
Abi ha = Abi::hostAbi(); Abi ha = Abi::hostAbi();
@@ -1291,6 +1306,11 @@ LinuxIccToolChainFactory::LinuxIccToolChainFactory()
setDisplayName(tr("Linux ICC")); setDisplayName(tr("Linux ICC"));
} }
QSet<ToolChain::Language> LinuxIccToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown) QList<ToolChain *> LinuxIccToolChainFactory::autoDetect(const QList<ToolChain *> &alreadyKnown)
{ {
return autoDetectToolchains(QLatin1String("icpc"), Abi::hostAbi(), return autoDetectToolchains(QLatin1String("icpc"), Abi::hostAbi(),

View File

@@ -49,6 +49,7 @@ class GccToolChainFactory : public ToolChainFactory
public: public:
GccToolChainFactory(); GccToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
@@ -108,6 +109,7 @@ class ClangToolChainFactory : public GccToolChainFactory
public: public:
ClangToolChainFactory(); ClangToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
@@ -127,6 +129,7 @@ class MingwToolChainFactory : public GccToolChainFactory
public: public:
MingwToolChainFactory(); MingwToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;
@@ -146,6 +149,7 @@ class LinuxIccToolChainFactory : public GccToolChainFactory
public: public:
LinuxIccToolChainFactory(); LinuxIccToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;

View File

@@ -572,6 +572,11 @@ MsvcToolChainFactory::MsvcToolChainFactory()
setDisplayName(tr("MSVC")); setDisplayName(tr("MSVC"));
} }
QSet<ToolChain::Language> MsvcToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsName) bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsName)
{ {
const QSettings vsRegistry( const QSettings vsRegistry(

View File

@@ -125,6 +125,7 @@ class MsvcToolChainFactory : public ToolChainFactory
public: public:
MsvcToolChainFactory(); MsvcToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;

View File

@@ -175,6 +175,8 @@ public:
static Core::Id typeIdFromMap(const QVariantMap &data); static Core::Id typeIdFromMap(const QVariantMap &data);
static void autoDetectionToMap(QVariantMap &data, bool detected); static void autoDetectionToMap(QVariantMap &data, bool detected);
virtual QSet<ToolChain::Language> supportedLanguages() const = 0;
protected: protected:
void setDisplayName(const QString &name) { m_displayName = name; } void setDisplayName(const QString &name) { m_displayName = name; }

View File

@@ -348,6 +348,11 @@ WinCEToolChainFactory::WinCEToolChainFactory()
setDisplayName(tr("WinCE")); setDisplayName(tr("WinCE"));
} }
QSet<ToolChain::Language> WinCEToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
static ToolChain *findOrCreateToolChain(const QList<ToolChain *> &alreadyKnown, static ToolChain *findOrCreateToolChain(const QList<ToolChain *> &alreadyKnown,
const QString &name, const Abi &abi, const QString &name, const Abi &abi,
const QString &vcvarsBat, const QString &msvcVer, const QString &vcvarsBat, const QString &msvcVer,

View File

@@ -106,6 +106,7 @@ class WinCEToolChainFactory : public ToolChainFactory
public: public:
WinCEToolChainFactory(); WinCEToolChainFactory();
QSet<ToolChain::Language> supportedLanguages() const override;
QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override; QList<ToolChain *> autoDetect(const QList<ToolChain *> &alreadyKnown) override;

View File

@@ -160,6 +160,11 @@ QnxToolChainFactory::QnxToolChainFactory()
setDisplayName(tr("QCC")); setDisplayName(tr("QCC"));
} }
QSet<ToolChain::Language> QnxToolChainFactory::supportedLanguages() const
{
return { ProjectExplorer::ToolChain::Language::Cxx };
}
bool QnxToolChainFactory::canRestore(const QVariantMap &data) bool QnxToolChainFactory::canRestore(const QVariantMap &data)
{ {
return typeIdFromMap(data) == Constants::QNX_TOOLCHAIN_ID; return typeIdFromMap(data) == Constants::QNX_TOOLCHAIN_ID;

View File

@@ -69,6 +69,7 @@ class QnxToolChainFactory : public ProjectExplorer::ToolChainFactory
public: public:
QnxToolChainFactory(); QnxToolChainFactory();
QSet<ProjectExplorer::ToolChain::Language> supportedLanguages() const override;
bool canRestore(const QVariantMap &data) override; bool canRestore(const QVariantMap &data) override;
ProjectExplorer::ToolChain *restore(const QVariantMap &data) override; ProjectExplorer::ToolChain *restore(const QVariantMap &data) override;