BareMetal: Hide SdccToolChain definitions

Not needed publicly.

Change-Id: Iee1243c48d0b3308316bb6e7b4f4a34b0551f4ed
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-07-20 16:16:34 +02:00
parent e3dd3521d4
commit 2b9882f563
2 changed files with 55 additions and 73 deletions

View File

@@ -10,6 +10,7 @@
#include <projectexplorer/abiwidget.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectmacro.h>
#include <projectexplorer/toolchainconfigwidget.h>
#include <projectexplorer/toolchainmanager.h>
#include <utils/algorithm.h>
@@ -168,29 +169,73 @@ static Abi guessAbi(const Macros &macros)
guessFormat(arch), guessWordWidth(macros)};
}
static QString buildDisplayName(Abi::Architecture arch, Utils::Id language,
const QString &version)
static QString buildDisplayName(Abi::Architecture arch, Id language, const QString &version)
{
const QString archName = Abi::toString(arch);
const QString langName = ToolChainManager::displayNameOfLanguageId(language);
return Tr::tr("SDCC %1 (%2, %3)").arg(version, langName, archName);
}
static Utils::FilePath compilerPathFromEnvironment(const QString &compilerName)
static FilePath compilerPathFromEnvironment(const QString &compilerName)
{
const Environment systemEnvironment = Environment::systemEnvironment();
return systemEnvironment.searchInPath(compilerName);
}
// SdccToolChainConfigWidget
class SdccToolChain;
class SdccToolChainConfigWidget final : public ToolChainConfigWidget
{
public:
explicit SdccToolChainConfigWidget(SdccToolChain *tc);
private:
void applyImpl() final;
void discardImpl() final { setFromToolchain(); }
bool isDirtyImpl() const final;
void makeReadOnlyImpl() final;
void setFromToolchain();
void handleCompilerCommandChange();
PathChooser *m_compilerCommand = nullptr;
AbiWidget *m_abiWidget = nullptr;
Macros m_macros;
};
// SdccToolChain
SdccToolChain::SdccToolChain() :
ToolChain(Constants::SDCC_TOOLCHAIN_TYPEID)
class SdccToolChain final : public ToolChain
{
setTypeDisplayName(Tr::tr("SDCC"));
setTargetAbiKey("TargetAbi");
setCompilerCommandKey("CompilerPath");
}
public:
SdccToolChain() : ToolChain(Constants::SDCC_TOOLCHAIN_TYPEID)
{
setTypeDisplayName(Tr::tr("SDCC"));
setTargetAbiKey("TargetAbi");
setCompilerCommandKey("CompilerPath");
}
MacroInspectionRunner createMacroInspectionRunner() const final;
LanguageExtensions languageExtensions(const QStringList &cxxflags) const final;
WarningFlags warningFlags(const QStringList &cxxflags) const final;
BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner(const Environment &) const final;
void addToEnvironment(Environment &env) const final;
QList<OutputLineParser *> createOutputParsers() const final;
std::unique_ptr<ToolChainConfigWidget> createConfigurationWidget() final;
bool operator==(const ToolChain &other) const final;
FilePath makeCommand(const Environment &env) const final;
private:
friend class SdccToolChainFactory;
friend class SdccToolChainConfigWidget;
};
ToolChain::MacroInspectionRunner SdccToolChain::createMacroInspectionRunner() const
{
@@ -215,7 +260,7 @@ ToolChain::MacroInspectionRunner SdccToolChain::createMacroInspectionRunner() co
};
}
Utils::LanguageExtensions SdccToolChain::languageExtensions(const QStringList &) const
LanguageExtensions SdccToolChain::languageExtensions(const QStringList &) const
{
return LanguageExtension::None;
}

View File

@@ -3,52 +3,10 @@
#pragma once
#include <projectexplorer/abi.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/toolchainconfigwidget.h>
QT_BEGIN_NAMESPACE
class QPlainTextEdit;
class QPushButton;
class QTextEdit;
QT_END_NAMESPACE
namespace Utils { class PathChooser; }
namespace ProjectExplorer { class AbiWidget; }
namespace BareMetal::Internal {
// SdccToolChain
class SdccToolChain final : public ProjectExplorer::ToolChain
{
public:
MacroInspectionRunner createMacroInspectionRunner() const final;
Utils::LanguageExtensions languageExtensions(const QStringList &cxxflags) const final;
Utils::WarningFlags warningFlags(const QStringList &cxxflags) const final;
BuiltInHeaderPathsRunner createBuiltInHeaderPathsRunner(
const Utils::Environment &) const final;
void addToEnvironment(Utils::Environment &env) const final;
QList<Utils::OutputLineParser *> createOutputParsers() const final;
std::unique_ptr<ProjectExplorer::ToolChainConfigWidget> createConfigurationWidget() final;
bool operator ==(const ToolChain &other) const final;
Utils::FilePath makeCommand(const Utils::Environment &env) const final;
private:
SdccToolChain();
friend class SdccToolChainFactory;
friend class SdccToolChainConfigWidget;
};
// SdccToolChainFactory
class SdccToolChainFactory final : public ProjectExplorer::ToolChainFactory
{
public:
@@ -64,25 +22,4 @@ private:
const Candidate &candidate, Utils::Id language) const;
};
// SdccToolChainConfigWidget
class SdccToolChainConfigWidget final : public ProjectExplorer::ToolChainConfigWidget
{
public:
explicit SdccToolChainConfigWidget(SdccToolChain *tc);
private:
void applyImpl() final;
void discardImpl() final { setFromToolchain(); }
bool isDirtyImpl() const final;
void makeReadOnlyImpl() final;
void setFromToolchain();
void handleCompilerCommandChange();
Utils::PathChooser *m_compilerCommand = nullptr;
ProjectExplorer::AbiWidget *m_abiWidget = nullptr;
ProjectExplorer::Macros m_macros;
};
} // BareMetal::Internal