forked from qt-creator/qt-creator
ProjectExplorer: Remove ClangToolChain as class of its own
Change-Id: I92109855503d8696666a17f6e992bd5ca20cbf68 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -47,7 +47,7 @@ static ToolChain *findToolChain(FilePath &compilerPath, Id lang, const QString &
|
||||
}
|
||||
|
||||
AndroidToolChain::AndroidToolChain()
|
||||
: ClangToolChain(Constants::ANDROID_TOOLCHAIN_TYPEID)
|
||||
: GccToolChain(Constants::ANDROID_TOOLCHAIN_TYPEID, Clang)
|
||||
{
|
||||
setTypeDisplayName(Tr::tr("Android Clang"));
|
||||
}
|
||||
@@ -80,7 +80,7 @@ bool AndroidToolChain::isValid() const
|
||||
const bool isChildofSdk = compilerCommand().isChildOf(
|
||||
AndroidConfigurations::currentConfig().sdkLocation());
|
||||
|
||||
return ClangToolChain::isValid() && typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
|
||||
return GccToolChain::isValid() && typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
|
||||
&& targetAbi().isValid() && (isChildofNdk || isChildofSdk)
|
||||
&& !originalTargetTriple().isEmpty();
|
||||
}
|
||||
@@ -103,7 +103,7 @@ void AndroidToolChain::addToEnvironment(Environment &env) const
|
||||
|
||||
void AndroidToolChain::fromMap(const Store &data)
|
||||
{
|
||||
ClangToolChain::fromMap(data);
|
||||
GccToolChain::fromMap(data);
|
||||
if (hasError())
|
||||
return;
|
||||
if (!isValid())
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace Internal {
|
||||
|
||||
using ToolChainList = QList<ProjectExplorer::ToolChain *>;
|
||||
|
||||
class AndroidToolChain : public ProjectExplorer::ClangToolChain
|
||||
class AndroidToolChain : public ProjectExplorer::GccToolChain
|
||||
{
|
||||
public:
|
||||
~AndroidToolChain() override;
|
||||
|
||||
@@ -58,7 +58,7 @@ static Q_LOGGING_CATEGORY(kitSetupLog, "qtc.ios.kitSetup", QtWarningMsg)
|
||||
static Q_LOGGING_CATEGORY(iosCommonLog, "qtc.ios.common", QtWarningMsg)
|
||||
}
|
||||
|
||||
using ToolChainPair = std::pair<ClangToolChain *, ClangToolChain *>;
|
||||
using ToolChainPair = std::pair<GccToolChain *, GccToolChain *>;
|
||||
namespace Ios {
|
||||
namespace Internal {
|
||||
|
||||
@@ -95,19 +95,19 @@ static bool isSimulatorDeviceId(const Id &id)
|
||||
return id == Constants::IOS_SIMULATOR_TYPE;
|
||||
}
|
||||
|
||||
static QList<ClangToolChain *> clangToolChains(const Toolchains &toolChains)
|
||||
static QList<GccToolChain *> clangToolChains(const Toolchains &toolChains)
|
||||
{
|
||||
QList<ClangToolChain *> clangToolChains;
|
||||
QList<GccToolChain *> clangToolChains;
|
||||
for (ToolChain *toolChain : toolChains)
|
||||
if (toolChain->typeId() == ProjectExplorer::Constants::CLANG_TOOLCHAIN_TYPEID)
|
||||
clangToolChains.append(static_cast<ClangToolChain *>(toolChain));
|
||||
clangToolChains.append(static_cast<GccToolChain *>(toolChain));
|
||||
return clangToolChains;
|
||||
}
|
||||
|
||||
static QList<ClangToolChain *> autoDetectedIosToolChains()
|
||||
static QList<GccToolChain *> autoDetectedIosToolChains()
|
||||
{
|
||||
const QList<ClangToolChain *> toolChains = clangToolChains(ToolChainManager::toolchains());
|
||||
return filtered(toolChains, [](ClangToolChain *toolChain) {
|
||||
const QList<GccToolChain *> toolChains = clangToolChains(ToolChainManager::toolchains());
|
||||
return filtered(toolChains, [](GccToolChain *toolChain) {
|
||||
return toolChain->isAutoDetected()
|
||||
&& (toolChain->displayName().startsWith("iphone")
|
||||
|| toolChain->displayName().startsWith("Apple Clang")); // TODO tool chains should be marked directly
|
||||
@@ -116,10 +116,10 @@ static QList<ClangToolChain *> autoDetectedIosToolChains()
|
||||
|
||||
static ToolChainPair findToolChainForPlatform(const XcodePlatform &platform,
|
||||
const XcodePlatform::ToolchainTarget &target,
|
||||
const QList<ClangToolChain *> &toolChains)
|
||||
const QList<GccToolChain *> &toolChains)
|
||||
{
|
||||
ToolChainPair platformToolChains;
|
||||
auto toolchainMatch = [](ClangToolChain *toolChain, const FilePath &compilerPath, const QStringList &flags) {
|
||||
auto toolchainMatch = [](GccToolChain *toolChain, const FilePath &compilerPath, const QStringList &flags) {
|
||||
return compilerPath == toolChain->compilerCommand()
|
||||
&& flags == toolChain->platformCodeGenFlags()
|
||||
&& flags == toolChain->platformLinkerFlags();
|
||||
@@ -136,7 +136,7 @@ static ToolChainPair findToolChainForPlatform(const XcodePlatform &platform,
|
||||
static QHash<XcodePlatform::ToolchainTarget, ToolChainPair> findToolChains(const QList<XcodePlatform> &platforms)
|
||||
{
|
||||
QHash<XcodePlatform::ToolchainTarget, ToolChainPair> platformToolChainHash;
|
||||
const QList<ClangToolChain *> toolChains = autoDetectedIosToolChains();
|
||||
const QList<GccToolChain *> toolChains = autoDetectedIosToolChains();
|
||||
for (const XcodePlatform &platform : platforms) {
|
||||
for (const XcodePlatform::ToolchainTarget &target : platform.targets) {
|
||||
ToolChainPair platformToolchains = findToolChainForPlatform(platform, target,
|
||||
@@ -577,7 +577,7 @@ Toolchains IosToolChainFactory::autoDetect(const ToolchainDetector &detector) co
|
||||
if (detector.device->type() != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)
|
||||
return {};
|
||||
|
||||
QList<ClangToolChain *> existingClangToolChains = clangToolChains(detector.alreadyKnown);
|
||||
QList<GccToolChain *> existingClangToolChains = clangToolChains(detector.alreadyKnown);
|
||||
const QList<XcodePlatform> platforms = XcodeProbe::detectPlatforms().values();
|
||||
Toolchains toolChains;
|
||||
toolChains.reserve(platforms.size());
|
||||
@@ -585,9 +585,10 @@ Toolchains IosToolChainFactory::autoDetect(const ToolchainDetector &detector) co
|
||||
for (const XcodePlatform::ToolchainTarget &target : platform.targets) {
|
||||
ToolChainPair platformToolchains = findToolChainForPlatform(platform, target,
|
||||
existingClangToolChains);
|
||||
auto createOrAdd = [&](ClangToolChain *toolChain, Id l) {
|
||||
auto createOrAdd = [&](GccToolChain *toolChain, Id l) {
|
||||
if (!toolChain) {
|
||||
toolChain = new ClangToolChain;
|
||||
toolChain = new GccToolChain(ProjectExplorer::Constants::CLANG_TOOLCHAIN_TYPEID,
|
||||
GccToolChain::Clang);
|
||||
toolChain->setPriority(ToolChain::PriorityHigh);
|
||||
toolChain->setDetection(ToolChain::AutoDetection);
|
||||
toolChain->setLanguage(l);
|
||||
|
||||
@@ -1656,15 +1656,6 @@ void GccToolChain::syncAutodetectedWithParentToolchains()
|
||||
});
|
||||
}
|
||||
|
||||
ClangToolChain::ClangToolChain() :
|
||||
ClangToolChain(Constants::CLANG_TOOLCHAIN_TYPEID)
|
||||
{}
|
||||
|
||||
ClangToolChain::ClangToolChain(Utils::Id typeId) :
|
||||
GccToolChain(typeId, GccToolChain::Clang)
|
||||
{
|
||||
}
|
||||
|
||||
bool GccToolChain::matchesCompilerCommand(const FilePath &command) const
|
||||
{
|
||||
if (m_subType == Clang) {
|
||||
@@ -1707,7 +1698,9 @@ ClangToolChainFactory::ClangToolChainFactory()
|
||||
setDisplayName(Tr::tr("Clang"));
|
||||
setSupportedToolChainType(Constants::CLANG_TOOLCHAIN_TYPEID);
|
||||
setSupportedLanguages({Constants::CXX_LANGUAGE_ID, Constants::C_LANGUAGE_ID});
|
||||
setToolchainConstructor([] { return new ClangToolChain; });
|
||||
setToolchainConstructor([] {
|
||||
return new GccToolChain(Constants::CLANG_TOOLCHAIN_TYPEID, GccToolChain::Clang);
|
||||
});
|
||||
}
|
||||
|
||||
Toolchains ClangToolChainFactory::autoDetect(const ToolchainDetector &detector) const
|
||||
@@ -1805,7 +1798,7 @@ ClangToolChainConfigWidget::ClangToolChainConfigWidget(GccToolChain *tc) :
|
||||
|
||||
void ClangToolChainConfigWidget::updateParentToolChainComboBox()
|
||||
{
|
||||
auto *tc = static_cast<ClangToolChain *>(toolChain());
|
||||
auto *tc = static_cast<GccToolChain *>(toolChain());
|
||||
QByteArray parentId = m_parentToolchainCombo->currentData().toByteArray();
|
||||
if (tc->isAutoDetected() || m_parentToolchainCombo->count() == 0)
|
||||
parentId = tc->m_parentToolChainId;
|
||||
@@ -1842,7 +1835,7 @@ void ClangToolChainConfigWidget::applyImpl()
|
||||
if (!m_parentToolchainCombo)
|
||||
return;
|
||||
|
||||
auto *tc = static_cast<ClangToolChain *>(toolChain());
|
||||
auto *tc = static_cast<GccToolChain *>(toolChain());
|
||||
tc->m_parentToolChainId.clear();
|
||||
|
||||
const QByteArray parentId = m_parentToolchainCombo->currentData().toByteArray();
|
||||
@@ -1866,7 +1859,7 @@ bool ClangToolChainConfigWidget::isDirtyImpl() const
|
||||
if (!m_parentToolchainCombo)
|
||||
return false;
|
||||
|
||||
auto tc = static_cast<ClangToolChain *>(toolChain());
|
||||
auto tc = static_cast<GccToolChain *>(toolChain());
|
||||
Q_ASSERT(tc);
|
||||
const MingwToolChain *parentTC = mingwToolChainFromId(tc->m_parentToolChainId);
|
||||
const QByteArray parentId = parentTC ? parentTC->id() : QByteArray();
|
||||
|
||||
@@ -199,17 +199,6 @@ private:
|
||||
QMetaObject::Connection m_thisToolchainRemovedConnection;
|
||||
};
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// ClangToolChain
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
class PROJECTEXPLORER_EXPORT ClangToolChain : public GccToolChain
|
||||
{
|
||||
public:
|
||||
ClangToolChain();
|
||||
explicit ClangToolChain(Utils::Id typeId);
|
||||
};
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// MingwToolChain
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user