forked from qt-creator/qt-creator
McuSupport: Rename remaining ToolChain things to Toolchain
Change-Id: Icd90402501b3ca2197e124731e26d2f9b0704e0a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -28,7 +28,7 @@ public:
|
||||
const McuPackagePtr &qtForMCUsPackage)
|
||||
= 0;
|
||||
using AdditionalPackages
|
||||
= QPair<QHash<QString, McuToolChainPackagePtr>, QHash<QString, McuPackagePtr>>;
|
||||
= QPair<QHash<QString, McuToolchainPackagePtr>, QHash<QString, McuPackagePtr>>;
|
||||
virtual AdditionalPackages getAdditionalPackages() const { return {}; }
|
||||
}; // struct McuAbstractTargetFactory
|
||||
} // namespace McuSupport::Internal
|
||||
|
@@ -75,22 +75,22 @@ static const int KIT_VERSION = 9; // Bumps up whenever details in Kit creation c
|
||||
class McuKitFactory
|
||||
{
|
||||
public:
|
||||
static void setKitToolchains(Kit *k, const McuToolChainPackagePtr &tcPackage)
|
||||
static void setKitToolchains(Kit *k, const McuToolchainPackagePtr &tcPackage)
|
||||
{
|
||||
switch (tcPackage->toolchainType()) {
|
||||
case McuToolChainPackage::ToolChainType::Unsupported:
|
||||
case McuToolchainPackage::ToolchainType::Unsupported:
|
||||
return;
|
||||
|
||||
case McuToolChainPackage::ToolChainType::GHS:
|
||||
case McuToolChainPackage::ToolChainType::GHSArm:
|
||||
case McuToolchainPackage::ToolchainType::GHS:
|
||||
case McuToolchainPackage::ToolchainType::GHSArm:
|
||||
return; // No Green Hills toolchain, because support for it is missing.
|
||||
|
||||
case McuToolChainPackage::ToolChainType::IAR:
|
||||
case McuToolChainPackage::ToolChainType::KEIL:
|
||||
case McuToolChainPackage::ToolChainType::MSVC:
|
||||
case McuToolChainPackage::ToolChainType::GCC:
|
||||
case McuToolChainPackage::ToolChainType::MinGW:
|
||||
case McuToolChainPackage::ToolChainType::ArmGcc:
|
||||
case McuToolchainPackage::ToolchainType::IAR:
|
||||
case McuToolchainPackage::ToolchainType::KEIL:
|
||||
case McuToolchainPackage::ToolchainType::MSVC:
|
||||
case McuToolchainPackage::ToolchainType::GCC:
|
||||
case McuToolchainPackage::ToolchainType::MinGW:
|
||||
case McuToolchainPackage::ToolchainType::ArmGcc:
|
||||
ToolchainKitAspect::setToolchain(k,
|
||||
tcPackage->toolChain(
|
||||
ProjectExplorer::Constants::C_LANGUAGE_ID));
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
k->setValue(KIT_MCUTARGET_SDKVERSION_KEY, mcuTarget->qulVersion().toString());
|
||||
k->setValue(KIT_MCUTARGET_KITVERSION_KEY, KIT_VERSION);
|
||||
k->setValue(KIT_MCUTARGET_OS_KEY, static_cast<int>(mcuTarget->os()));
|
||||
k->setValue(KIT_MCUTARGET_TOOLCHAIN_KEY, mcuTarget->toolChainPackage()->toolChainName());
|
||||
k->setValue(KIT_MCUTARGET_TOOLCHAIN_KEY, mcuTarget->toolChainPackage()->toolchainName());
|
||||
k->setAutoDetected(false);
|
||||
k->makeSticky();
|
||||
if (mcuTarget->toolChainPackage()->isDesktopToolchain())
|
||||
@@ -136,25 +136,25 @@ public:
|
||||
k->setIrrelevantAspects(irrelevant);
|
||||
}
|
||||
|
||||
static void setKitDebugger(Kit *k, const McuToolChainPackagePtr &tcPackage)
|
||||
static void setKitDebugger(Kit *k, const McuToolchainPackagePtr &tcPackage)
|
||||
{
|
||||
if (tcPackage->isDesktopToolchain()) {
|
||||
// Qt Creator seems to be smart enough to deduce the right Kit debugger from the ToolChain
|
||||
// Qt Creator seems to be smart enough to deduce the right Kit debugger from the Toolchain
|
||||
return;
|
||||
}
|
||||
|
||||
switch (tcPackage->toolchainType()) {
|
||||
case McuToolChainPackage::ToolChainType::Unsupported:
|
||||
case McuToolChainPackage::ToolChainType::GHS:
|
||||
case McuToolChainPackage::ToolChainType::GHSArm:
|
||||
case McuToolChainPackage::ToolChainType::IAR:
|
||||
case McuToolchainPackage::ToolchainType::Unsupported:
|
||||
case McuToolchainPackage::ToolchainType::GHS:
|
||||
case McuToolchainPackage::ToolchainType::GHSArm:
|
||||
case McuToolchainPackage::ToolchainType::IAR:
|
||||
return; // No Green Hills and IAR debugger, because support for it is missing.
|
||||
|
||||
case McuToolChainPackage::ToolChainType::KEIL:
|
||||
case McuToolChainPackage::ToolChainType::MSVC:
|
||||
case McuToolChainPackage::ToolChainType::GCC:
|
||||
case McuToolChainPackage::ToolChainType::MinGW:
|
||||
case McuToolChainPackage::ToolChainType::ArmGcc: {
|
||||
case McuToolchainPackage::ToolchainType::KEIL:
|
||||
case McuToolchainPackage::ToolchainType::MSVC:
|
||||
case McuToolchainPackage::ToolchainType::GCC:
|
||||
case McuToolchainPackage::ToolchainType::MinGW:
|
||||
case McuToolchainPackage::ToolchainType::ArmGcc: {
|
||||
const QVariant debuggerId = tcPackage->debuggerId();
|
||||
if (debuggerId.isValid()) {
|
||||
Debugger::DebuggerKitAspect::setDebugger(k, debuggerId);
|
||||
@@ -252,10 +252,10 @@ public:
|
||||
using namespace CMakeProjectManager;
|
||||
auto configMap = cMakeConfigToMap(CMakeConfigurationKitAspect::configuration(k));
|
||||
|
||||
// CMake ToolChain file for ghs handles CMAKE_*_COMPILER autonomously
|
||||
// CMake Toolchain file for ghs handles CMAKE_*_COMPILER autonomously
|
||||
const QList autonomousCompilerDetectionToolchains{
|
||||
McuToolChainPackage::ToolChainType::GHS,
|
||||
McuToolChainPackage::ToolChainType::GHSArm,
|
||||
McuToolchainPackage::ToolchainType::GHS,
|
||||
McuToolchainPackage::ToolchainType::GHSArm,
|
||||
};
|
||||
if (!autonomousCompilerDetectionToolchains.contains(
|
||||
mcuTarget->toolChainPackage()->toolchainType())) {
|
||||
@@ -324,8 +324,8 @@ public:
|
||||
|
||||
if (HostOsInfo::isWindowsHost()) {
|
||||
auto type = mcuTarget->toolChainPackage()->toolchainType();
|
||||
if (type == McuToolChainPackage::ToolChainType::GHS
|
||||
|| type == McuToolChainPackage::ToolChainType::GHSArm) {
|
||||
if (type == McuToolchainPackage::ToolchainType::GHS
|
||||
|| type == McuToolchainPackage::ToolchainType::GHSArm) {
|
||||
// See https://bugreports.qt.io/browse/UL-4247?focusedCommentId=565802&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-565802
|
||||
// and https://bugreports.qt.io/browse/UL-4247?focusedCommentId=565803&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-565803
|
||||
CMakeGeneratorKitAspect::setGenerator(k, "NMake Makefiles JOM");
|
||||
@@ -387,9 +387,9 @@ Kit *newKit(const McuTarget *mcuTarget, const McuPackagePtr &qtForMCUsSdk)
|
||||
// Kit Information
|
||||
QString generateKitNameFromTarget(const McuTarget *mcuTarget)
|
||||
{
|
||||
McuToolChainPackagePtr tcPkg = mcuTarget->toolChainPackage();
|
||||
McuToolchainPackagePtr tcPkg = mcuTarget->toolChainPackage();
|
||||
const QString compilerName = tcPkg ? QString::fromLatin1(" (%1)").arg(
|
||||
tcPkg->toolChainName().toUpper())
|
||||
tcPkg->toolchainName().toUpper())
|
||||
: "";
|
||||
const QString colorDepth = mcuTarget->colorDepth() != McuTarget::UnspecifiedColorDepth
|
||||
? QString::fromLatin1(" %1bpp").arg(mcuTarget->colorDepth())
|
||||
@@ -453,7 +453,7 @@ QList<Kit *> existingKits(const McuTarget *mcuTarget)
|
||||
&& kit->value(KIT_MCUTARGET_OS_KEY).toInt()
|
||||
== static_cast<int>(mcuTarget->os())
|
||||
&& kit->value(KIT_MCUTARGET_TOOLCHAIN_KEY)
|
||||
== mcuTarget->toolChainPackage()->toolChainName()));
|
||||
== mcuTarget->toolChainPackage()->toolchainName()));
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -352,12 +352,12 @@ const QMap<QString, QString> McuPackage::packageLabelTranslations {
|
||||
{"Path to project for Renesas e2 Studio", Tr::tr("Path to project for Renesas e2 Studio")}
|
||||
};
|
||||
|
||||
McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackage::McuToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QString &label,
|
||||
const FilePath &defaultPath,
|
||||
const QList<FilePath> &detectionPaths,
|
||||
const Key &settingsKey,
|
||||
McuToolChainPackage::ToolChainType type,
|
||||
McuToolchainPackage::ToolchainType type,
|
||||
const QStringList &versions,
|
||||
const QString &cmakeVarName,
|
||||
const QString &envVarName,
|
||||
@@ -375,18 +375,18 @@ McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHan
|
||||
, m_type(type)
|
||||
{}
|
||||
|
||||
McuToolChainPackage::ToolChainType McuToolChainPackage::toolchainType() const
|
||||
McuToolchainPackage::ToolchainType McuToolchainPackage::toolchainType() const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
bool McuToolChainPackage::isDesktopToolchain() const
|
||||
bool McuToolchainPackage::isDesktopToolchain() const
|
||||
{
|
||||
return m_type == ToolChainType::MSVC || m_type == ToolChainType::GCC
|
||||
|| m_type == ToolChainType::MinGW;
|
||||
return m_type == ToolchainType::MSVC || m_type == ToolchainType::GCC
|
||||
|| m_type == ToolchainType::MinGW;
|
||||
}
|
||||
|
||||
Toolchain *McuToolChainPackage::msvcToolChain(Id language)
|
||||
Toolchain *McuToolchainPackage::msvcToolchain(Id language)
|
||||
{
|
||||
Toolchain *toolChain = ToolchainManager::toolchain([language](const Toolchain *t) {
|
||||
const Abi abi = t->targetAbi();
|
||||
@@ -398,7 +398,7 @@ Toolchain *McuToolChainPackage::msvcToolChain(Id language)
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
Toolchain *McuToolChainPackage::gccToolChain(Id language)
|
||||
Toolchain *McuToolchainPackage::gccToolchain(Id language)
|
||||
{
|
||||
Toolchain *toolChain = ToolchainManager::toolchain([language](const Toolchain *t) {
|
||||
const Abi abi = t->targetAbi();
|
||||
@@ -408,7 +408,7 @@ Toolchain *McuToolChainPackage::gccToolChain(Id language)
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
static Toolchain *mingwToolChain(const FilePath &path, Id language)
|
||||
static Toolchain *mingwToolchain(const FilePath &path, Id language)
|
||||
{
|
||||
Toolchain *toolChain = ToolchainManager::toolchain([&path, language](const Toolchain *t) {
|
||||
// find a MinGW toolchain having the same path from registered toolchains
|
||||
@@ -430,7 +430,7 @@ static Toolchain *mingwToolChain(const FilePath &path, Id language)
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
static Toolchain *armGccToolChain(const FilePath &path, Id language)
|
||||
static Toolchain *armGccToolchain(const FilePath &path, Id language)
|
||||
{
|
||||
Toolchain *toolChain = ToolchainManager::toolchain([&path, language](const Toolchain *t) {
|
||||
return t->compilerCommand() == path && t->language() == language;
|
||||
@@ -456,7 +456,7 @@ static Toolchain *armGccToolChain(const FilePath &path, Id language)
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
static Toolchain *iarToolChain(const FilePath &path, Id language)
|
||||
static Toolchain *iarToolchain(const FilePath &path, Id language)
|
||||
{
|
||||
Toolchain *toolChain = ToolchainManager::toolchain([language](const Toolchain *t) {
|
||||
return t->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID
|
||||
@@ -488,67 +488,67 @@ static Toolchain *iarToolChain(const FilePath &path, Id language)
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
Toolchain *McuToolChainPackage::toolChain(Id language) const
|
||||
Toolchain *McuToolchainPackage::toolChain(Id language) const
|
||||
{
|
||||
switch (m_type) {
|
||||
case ToolChainType::MSVC:
|
||||
return msvcToolChain(language);
|
||||
case ToolChainType::GCC:
|
||||
return gccToolChain(language);
|
||||
case ToolChainType::MinGW: {
|
||||
case ToolchainType::MSVC:
|
||||
return msvcToolchain(language);
|
||||
case ToolchainType::GCC:
|
||||
return gccToolchain(language);
|
||||
case ToolchainType::MinGW: {
|
||||
const QLatin1String compilerName(
|
||||
language == ProjectExplorer::Constants::C_LANGUAGE_ID ? "gcc" : "g++");
|
||||
const FilePath compilerPath = (path() / "bin" / compilerName).withExecutableSuffix();
|
||||
return mingwToolChain(compilerPath, language);
|
||||
return mingwToolchain(compilerPath, language);
|
||||
}
|
||||
case ToolChainType::IAR: {
|
||||
case ToolchainType::IAR: {
|
||||
const FilePath compiler = (path() / "/bin/iccarm").withExecutableSuffix();
|
||||
return iarToolChain(compiler, language);
|
||||
return iarToolchain(compiler, language);
|
||||
}
|
||||
case ToolChainType::ArmGcc:
|
||||
case ToolChainType::KEIL:
|
||||
case ToolChainType::GHS:
|
||||
case ToolChainType::GHSArm:
|
||||
case ToolChainType::Unsupported: {
|
||||
case ToolchainType::ArmGcc:
|
||||
case ToolchainType::KEIL:
|
||||
case ToolchainType::GHS:
|
||||
case ToolchainType::GHSArm:
|
||||
case ToolchainType::Unsupported: {
|
||||
const QLatin1String compilerName(
|
||||
language == ProjectExplorer::Constants::C_LANGUAGE_ID ? "gcc" : "g++");
|
||||
const QString comp = QLatin1String(m_type == ToolChainType::ArmGcc ? "/bin/arm-none-eabi-%1"
|
||||
const QString comp = QLatin1String(m_type == ToolchainType::ArmGcc ? "/bin/arm-none-eabi-%1"
|
||||
: "/bar/foo-keil-%1")
|
||||
.arg(compilerName);
|
||||
const FilePath compiler = (path() / comp).withExecutableSuffix();
|
||||
|
||||
return armGccToolChain(compiler, language);
|
||||
return armGccToolchain(compiler, language);
|
||||
}
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
QString McuToolChainPackage::toolChainName() const
|
||||
QString McuToolchainPackage::toolchainName() const
|
||||
{
|
||||
switch (m_type) {
|
||||
case ToolChainType::MSVC:
|
||||
case ToolchainType::MSVC:
|
||||
return QLatin1String("msvc");
|
||||
case ToolChainType::GCC:
|
||||
case ToolchainType::GCC:
|
||||
return QLatin1String("gcc");
|
||||
case ToolChainType::MinGW:
|
||||
case ToolchainType::MinGW:
|
||||
return QLatin1String("mingw");
|
||||
case ToolChainType::ArmGcc:
|
||||
case ToolchainType::ArmGcc:
|
||||
return QLatin1String("armgcc");
|
||||
case ToolChainType::IAR:
|
||||
case ToolchainType::IAR:
|
||||
return QLatin1String("iar");
|
||||
case ToolChainType::KEIL:
|
||||
case ToolchainType::KEIL:
|
||||
return QLatin1String("keil");
|
||||
case ToolChainType::GHS:
|
||||
case ToolchainType::GHS:
|
||||
return QLatin1String("ghs");
|
||||
case ToolChainType::GHSArm:
|
||||
case ToolchainType::GHSArm:
|
||||
return QLatin1String("ghs-arm");
|
||||
default:
|
||||
return QLatin1String("unsupported");
|
||||
}
|
||||
}
|
||||
|
||||
QVariant McuToolChainPackage::debuggerId() const
|
||||
QVariant McuToolchainPackage::debuggerId() const
|
||||
{
|
||||
using namespace Debugger;
|
||||
|
||||
@@ -556,19 +556,19 @@ QVariant McuToolChainPackage::debuggerId() const
|
||||
DebuggerEngineType engineType;
|
||||
|
||||
switch (m_type) {
|
||||
case ToolChainType::ArmGcc: {
|
||||
case ToolchainType::ArmGcc: {
|
||||
sub = QString::fromLatin1("bin/arm-none-eabi-gdb-py");
|
||||
displayName = Tr::tr("Arm GDB at %1");
|
||||
engineType = Debugger::GdbEngineType;
|
||||
break;
|
||||
}
|
||||
case ToolChainType::IAR: {
|
||||
case ToolchainType::IAR: {
|
||||
sub = QString::fromLatin1("../common/bin/CSpyBat");
|
||||
displayName = QLatin1String("CSpy");
|
||||
engineType = Debugger::NoEngineType; // support for IAR missing
|
||||
break;
|
||||
}
|
||||
case ToolChainType::KEIL: {
|
||||
case ToolchainType::KEIL: {
|
||||
sub = QString::fromLatin1("UV4/UV4");
|
||||
displayName = QLatin1String("KEIL uVision Debugger");
|
||||
engineType = Debugger::UvscEngineType;
|
||||
|
@@ -100,36 +100,36 @@ private:
|
||||
Status m_status = Status::InvalidPath;
|
||||
}; // class McuPackage
|
||||
|
||||
class McuToolChainPackage final : public McuPackage
|
||||
class McuToolchainPackage final : public McuPackage
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum class ToolChainType { IAR, KEIL, MSVC, GCC, ArmGcc, GHS, GHSArm, MinGW, Unsupported };
|
||||
enum class ToolchainType { IAR, KEIL, MSVC, GCC, ArmGcc, GHS, GHSArm, MinGW, Unsupported };
|
||||
|
||||
McuToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QString &label,
|
||||
const Utils::FilePath &defaultPath,
|
||||
const Utils::FilePaths &detectionPaths,
|
||||
const Utils::Key &settingsKey,
|
||||
ToolChainType toolchainType,
|
||||
ToolchainType toolchainType,
|
||||
const QStringList &versions,
|
||||
const QString &cmakeVarName,
|
||||
const QString &envVarName,
|
||||
const McuPackageVersionDetector *versionDetector);
|
||||
|
||||
ToolChainType toolchainType() const;
|
||||
ToolchainType toolchainType() const;
|
||||
bool isDesktopToolchain() const;
|
||||
ProjectExplorer::Toolchain *toolChain(Utils::Id language) const;
|
||||
QString toolChainName() const;
|
||||
QString toolchainName() const;
|
||||
QVariant debuggerId() const;
|
||||
|
||||
static ProjectExplorer::Toolchain *msvcToolChain(Utils::Id language);
|
||||
static ProjectExplorer::Toolchain *gccToolChain(Utils::Id language);
|
||||
static ProjectExplorer::Toolchain *msvcToolchain(Utils::Id language);
|
||||
static ProjectExplorer::Toolchain *gccToolchain(Utils::Id language);
|
||||
|
||||
private:
|
||||
const ToolChainType m_type;
|
||||
const ToolchainType m_type;
|
||||
};
|
||||
|
||||
} // namespace McuSupport::Internal
|
||||
|
||||
Q_DECLARE_METATYPE(McuSupport::Internal::McuToolChainPackage::ToolChainType)
|
||||
Q_DECLARE_METATYPE(McuSupport::Internal::McuToolchainPackage::ToolchainType)
|
||||
|
@@ -19,10 +19,10 @@ namespace McuSupport::Internal {
|
||||
|
||||
class McuTarget;
|
||||
class McuAbstractPackage;
|
||||
class McuToolChainPackage;
|
||||
class McuToolchainPackage;
|
||||
|
||||
using McuPackagePtr = QSharedPointer<McuAbstractPackage>;
|
||||
using McuToolChainPackagePtr = QSharedPointer<McuToolChainPackage>;
|
||||
using McuToolchainPackagePtr = QSharedPointer<McuToolchainPackage>;
|
||||
using McuTargetPtr = QSharedPointer<McuTarget>;
|
||||
|
||||
static const QVersionNumber minimalVersion{2, 0, 0};
|
||||
|
@@ -152,7 +152,7 @@ McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsH
|
||||
"https://freertos.org")}; // download url
|
||||
}
|
||||
|
||||
McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuPackagePtr createUnsupportedToolchainFilePackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const FilePath &qtForMCUSdkPath)
|
||||
{
|
||||
const FilePath toolchainFilePath = qtForMCUSdkPath / Constants::QUL_TOOLCHAIN_CMAKE_DIR
|
||||
@@ -166,25 +166,25 @@ McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &
|
||||
{})};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &settingsHandler)
|
||||
McuToolchainPackagePtr createUnsupportedToolchainPackage(const SettingsHandler::Ptr &settingsHandler)
|
||||
{
|
||||
return McuToolChainPackagePtr{
|
||||
new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{
|
||||
new McuToolchainPackage(settingsHandler,
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
McuToolChainPackage::ToolChainType::Unsupported,
|
||||
McuToolchainPackage::ToolchainType::Unsupported,
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
nullptr)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createMsvcToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
Toolchain *toolChain = McuToolChainPackage::msvcToolChain(
|
||||
Toolchain *toolChain = McuToolchainPackage::msvcToolchain(
|
||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
||||
|
||||
const FilePath detectionPath = FilePath("cl").withExecutableSuffix();
|
||||
@@ -194,22 +194,22 @@ McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &se
|
||||
{"/?"},
|
||||
R"(\b(\d+\.\d+)\.\d+\b)");
|
||||
|
||||
return McuToolChainPackagePtr{new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{new McuToolchainPackage(settingsHandler,
|
||||
Tr::tr("MSVC Binary directory"),
|
||||
defaultPath,
|
||||
{detectionPath},
|
||||
"MsvcToolchain",
|
||||
McuToolChainPackage::ToolChainType::MSVC,
|
||||
McuToolchainPackage::ToolchainType::MSVC,
|
||||
versions,
|
||||
{},
|
||||
{},
|
||||
versionDetector)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createGccToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
Toolchain *toolChain = McuToolChainPackage::gccToolChain(
|
||||
Toolchain *toolChain = McuToolchainPackage::gccToolchain(
|
||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
||||
|
||||
const FilePath detectionPath = FilePath("bin/g++*").withExecutableSuffix();
|
||||
@@ -220,19 +220,19 @@ McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &set
|
||||
{"--version"},
|
||||
R"(\b(\d+\.\d+\.\d+)\b)");
|
||||
|
||||
return McuToolChainPackagePtr{new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{new McuToolchainPackage(settingsHandler,
|
||||
Tr::tr("GCC Toolchain"),
|
||||
defaultPath,
|
||||
{detectionPath},
|
||||
"GnuToolchain",
|
||||
McuToolChainPackage::ToolChainType::GCC,
|
||||
McuToolchainPackage::ToolchainType::GCC,
|
||||
versions,
|
||||
{},
|
||||
{},
|
||||
versionDetector)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
const char envVar[] = "ARMGCC_DIR";
|
||||
@@ -256,20 +256,20 @@ McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &
|
||||
{"--version"},
|
||||
R"(\b(\d+\.\d+\.\d+)\b)");
|
||||
|
||||
return McuToolChainPackagePtr{
|
||||
new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{
|
||||
new McuToolchainPackage(settingsHandler,
|
||||
Tr::tr("GNU Arm Embedded Toolchain"),
|
||||
defaultPath,
|
||||
{detectionPath},
|
||||
"GNUArmEmbeddedToolchain", // settingsKey
|
||||
McuToolChainPackage::ToolChainType::ArmGcc, // toolchainType
|
||||
McuToolchainPackage::ToolchainType::ArmGcc, // toolchainType
|
||||
versions,
|
||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||
envVar, // env var
|
||||
versionDetector)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
const char envVar[] = "GHS_COMPILER_DIR";
|
||||
@@ -281,20 +281,20 @@ McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &set
|
||||
{"-help"},
|
||||
R"(\bv(\d+\.\d+\.\d+)\b)");
|
||||
|
||||
return McuToolChainPackagePtr{
|
||||
new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{
|
||||
new McuToolchainPackage(settingsHandler,
|
||||
"Green Hills Compiler",
|
||||
defaultPath,
|
||||
{FilePath("ccv850").withExecutableSuffix()}, // detectionPath
|
||||
"GHSToolchain", // settingsKey
|
||||
McuToolChainPackage::ToolChainType::GHS, // toolchainType
|
||||
McuToolchainPackage::ToolchainType::GHS, // toolchainType
|
||||
versions,
|
||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||
envVar, // env var
|
||||
versionDetector)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
const char envVar[] = "GHS_ARM_COMPILER_DIR";
|
||||
@@ -306,20 +306,20 @@ McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &
|
||||
{"-help"},
|
||||
R"(\bv(\d+\.\d+\.\d+)\b)");
|
||||
|
||||
return McuToolChainPackagePtr{
|
||||
new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{
|
||||
new McuToolchainPackage(settingsHandler,
|
||||
"Green Hills Compiler for ARM",
|
||||
defaultPath,
|
||||
{FilePath("cxarm").withExecutableSuffix()}, // detectionPath
|
||||
"GHSArmToolchain", // settingsKey
|
||||
McuToolChainPackage::ToolChainType::GHSArm, // toolchainType
|
||||
McuToolchainPackage::ToolchainType::GHSArm, // toolchainType
|
||||
versions,
|
||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||
envVar, // env var
|
||||
versionDetector)};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
McuToolchainPackagePtr createIarToolchainPackage(const SettingsHandler::Ptr &settingsHandler,
|
||||
const QStringList &versions)
|
||||
{
|
||||
const char envVar[] = "IAR_ARM_COMPILER_DIR";
|
||||
@@ -344,13 +344,13 @@ McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &set
|
||||
{"--version"},
|
||||
R"(\bV(\d+\.\d+\.\d+)\.\d+\b)");
|
||||
|
||||
return McuToolChainPackagePtr{
|
||||
new McuToolChainPackage(settingsHandler,
|
||||
return McuToolchainPackagePtr{
|
||||
new McuToolchainPackage(settingsHandler,
|
||||
"IAR ARM Compiler",
|
||||
defaultPath,
|
||||
{detectionPath},
|
||||
"IARToolchain", // settings key
|
||||
McuToolChainPackage::ToolChainType::IAR, // toolchainType
|
||||
McuToolchainPackage::ToolchainType::IAR, // toolchainType
|
||||
versions,
|
||||
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, // cmake var
|
||||
envVar, // env var
|
||||
@@ -494,13 +494,13 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
|
||||
return Legacy::createGhsToolchainPackage(settingsHandler, versions);
|
||||
}},
|
||||
{{"iar"}, {[settingsHandler](const QStringList &versions) {
|
||||
return Legacy::createIarToolChainPackage(settingsHandler, versions);
|
||||
return Legacy::createIarToolchainPackage(settingsHandler, versions);
|
||||
}}},
|
||||
{{"msvc"}, {[settingsHandler](const QStringList &versions) {
|
||||
return Legacy::createMsvcToolChainPackage(settingsHandler, versions);
|
||||
return Legacy::createMsvcToolchainPackage(settingsHandler, versions);
|
||||
}}},
|
||||
{{"gcc"}, {[settingsHandler](const QStringList &versions) {
|
||||
return Legacy::createGccToolChainPackage(settingsHandler, versions);
|
||||
return Legacy::createGccToolchainPackage(settingsHandler, versions);
|
||||
}}},
|
||||
{{"arm-greenhills"}, {[settingsHandler](const QStringList &versions) {
|
||||
return Legacy::createGhsArmToolchainPackage(settingsHandler, versions);
|
||||
@@ -585,7 +585,7 @@ McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &desc
|
||||
|
||||
if (isLegacy) {
|
||||
auto [toolchainPkgs, vendorPkgs]{targetFactory->getAdditionalPackages()};
|
||||
for (McuToolChainPackagePtr &package : toolchainPkgs) {
|
||||
for (McuToolchainPackagePtr &package : toolchainPkgs) {
|
||||
mcuPackages.insert(package);
|
||||
}
|
||||
for (McuPackagePtr &package : vendorPkgs) {
|
||||
|
@@ -15,7 +15,7 @@ class McuAbstractPackage;
|
||||
class McuPackage;
|
||||
class McuSdkRepository;
|
||||
class McuTarget;
|
||||
class McuToolChainPackage;
|
||||
class McuToolchainPackage;
|
||||
struct McuTargetDescription;
|
||||
|
||||
McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &);
|
||||
@@ -35,16 +35,16 @@ Utils::FilePath kitsPath(const Utils::FilePath &dir);
|
||||
|
||||
namespace Legacy {
|
||||
|
||||
McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &,
|
||||
McuPackagePtr createUnsupportedToolchainFilePackage(const SettingsHandler::Ptr &,
|
||||
const Utils::FilePath &qtMcuSdkPath);
|
||||
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &);
|
||||
McuToolChainPackagePtr createIarToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolChainPackagePtr createGccToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolChainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &,
|
||||
McuToolchainPackagePtr createUnsupportedToolchainPackage(const SettingsHandler::Ptr &);
|
||||
McuToolchainPackagePtr createIarToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolchainPackagePtr createGccToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolchainPackagePtr createArmGccToolchainPackage(const SettingsHandler::Ptr &,
|
||||
const QStringList &);
|
||||
McuToolChainPackagePtr createMsvcToolChainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolChainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolChainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &,
|
||||
McuToolchainPackagePtr createMsvcToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolchainPackagePtr createGhsToolchainPackage(const SettingsHandler::Ptr &, const QStringList &);
|
||||
McuToolchainPackagePtr createGhsArmToolchainPackage(const SettingsHandler::Ptr &,
|
||||
const QStringList &);
|
||||
|
||||
McuPackagePtr createBoardSdkPackage(const SettingsHandler::Ptr &, const McuTargetDescription &);
|
||||
|
@@ -19,7 +19,7 @@ McuTarget::McuTarget(const QVersionNumber &qulVersion,
|
||||
const Platform &platform,
|
||||
OS os,
|
||||
const Packages &packages,
|
||||
const McuToolChainPackagePtr &toolChainPackage,
|
||||
const McuToolchainPackagePtr &toolChainPackage,
|
||||
const McuPackagePtr &toolChainFilePackage,
|
||||
int colorDepth)
|
||||
: m_qulVersion(qulVersion)
|
||||
@@ -36,7 +36,7 @@ Packages McuTarget::packages() const
|
||||
return m_packages;
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr McuTarget::toolChainPackage() const
|
||||
McuToolchainPackagePtr McuTarget::toolChainPackage() const
|
||||
{
|
||||
return m_toolChainPackage;
|
||||
}
|
||||
@@ -72,10 +72,10 @@ QString McuTarget::desktopCompilerId() const
|
||||
// for MSVC and MinGW.
|
||||
if (m_toolChainPackage) {
|
||||
switch (m_toolChainPackage->toolchainType()) {
|
||||
case McuToolChainPackage::ToolChainType::MSVC:
|
||||
case McuToolchainPackage::ToolchainType::MSVC:
|
||||
return QLatin1String("msvc");
|
||||
case McuToolChainPackage::ToolChainType::GCC:
|
||||
case McuToolChainPackage::ToolChainType::MinGW:
|
||||
case McuToolchainPackage::ToolchainType::GCC:
|
||||
case McuToolchainPackage::ToolchainType::MinGW:
|
||||
return QLatin1String("gnu");
|
||||
default:
|
||||
return QLatin1String("unsupported");
|
||||
|
@@ -19,7 +19,7 @@ class InfoLabel;
|
||||
|
||||
namespace McuSupport::Internal {
|
||||
|
||||
class McuToolChainPackage;
|
||||
class McuToolchainPackage;
|
||||
|
||||
class McuTarget : public QObject
|
||||
{
|
||||
@@ -41,13 +41,13 @@ public:
|
||||
const Platform &platform,
|
||||
OS os,
|
||||
const Packages &packages,
|
||||
const McuToolChainPackagePtr &toolChainPackage,
|
||||
const McuToolchainPackagePtr &toolChainPackage,
|
||||
const McuPackagePtr &toolChainFilePackage,
|
||||
int colorDepth = UnspecifiedColorDepth);
|
||||
|
||||
QVersionNumber qulVersion() const;
|
||||
Packages packages() const;
|
||||
McuToolChainPackagePtr toolChainPackage() const;
|
||||
McuToolchainPackagePtr toolChainPackage() const;
|
||||
McuPackagePtr toolChainFilePackage() const;
|
||||
Platform platform() const;
|
||||
OS os() const;
|
||||
@@ -67,7 +67,7 @@ private:
|
||||
const Platform m_platform;
|
||||
const OS m_os;
|
||||
const Packages m_packages;
|
||||
McuToolChainPackagePtr m_toolChainPackage;
|
||||
McuToolchainPackagePtr m_toolChainPackage;
|
||||
McuPackagePtr m_toolChainFilePackage;
|
||||
const int m_colorDepth;
|
||||
}; // class McuTarget
|
||||
|
@@ -18,11 +18,11 @@
|
||||
|
||||
namespace McuSupport::Internal {
|
||||
|
||||
bool isDesktopToolchain(McuToolChainPackage::ToolChainType type)
|
||||
bool isDesktopToolchain(McuToolchainPackage::ToolchainType type)
|
||||
{
|
||||
return type == McuToolChainPackage::ToolChainType::MSVC
|
||||
|| type == McuToolChainPackage::ToolChainType::GCC
|
||||
|| type == McuToolChainPackage::ToolChainType::MinGW;
|
||||
return type == McuToolchainPackage::ToolchainType::MSVC
|
||||
|| type == McuToolchainPackage::ToolchainType::GCC
|
||||
|| type == McuToolchainPackage::ToolchainType::MinGW;
|
||||
}
|
||||
|
||||
McuPackageVersionDetector *createVersionDetection(const VersionDetection &versionDetection)
|
||||
@@ -82,7 +82,7 @@ QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescript
|
||||
if (!toolchain || !toolchainFile)
|
||||
continue;
|
||||
Packages targetPackages = createPackages(desc);
|
||||
McuToolChainPackagePtr toolchainPtr{toolchain};
|
||||
McuToolchainPackagePtr toolchainPtr{toolchain};
|
||||
targetPackages.insert({toolchainPtr});
|
||||
targetPackages.insert({qtForMCUsPackage});
|
||||
targetPackages.unite({toolchainFile});
|
||||
@@ -141,29 +141,29 @@ McuPackagePtr McuTargetFactory::createPackage(const PackageDescription &pkgDesc)
|
||||
pkgDesc.type}};
|
||||
}
|
||||
|
||||
McuToolChainPackage *McuTargetFactory::createToolchain(
|
||||
McuToolchainPackage *McuTargetFactory::createToolchain(
|
||||
const McuTargetDescription::Toolchain &toolchain,
|
||||
const Utils::FilePath &sourceFile
|
||||
)
|
||||
{
|
||||
const static QMap<QString, McuToolChainPackage::ToolChainType> toolchainTypeMapping{
|
||||
{"iar", McuToolChainPackage::ToolChainType::IAR},
|
||||
{"keil", McuToolChainPackage::ToolChainType::KEIL},
|
||||
{"msvc", McuToolChainPackage::ToolChainType::MSVC},
|
||||
{"gcc", McuToolChainPackage::ToolChainType::GCC},
|
||||
{"mingw", McuToolChainPackage::ToolChainType::MinGW},
|
||||
{"armgcc", McuToolChainPackage::ToolChainType::ArmGcc},
|
||||
{"greenhills", McuToolChainPackage::ToolChainType::GHS},
|
||||
{"arm-greenhills", McuToolChainPackage::ToolChainType::GHSArm},
|
||||
const static QMap<QString, McuToolchainPackage::ToolchainType> toolchainTypeMapping{
|
||||
{"iar", McuToolchainPackage::ToolchainType::IAR},
|
||||
{"keil", McuToolchainPackage::ToolchainType::KEIL},
|
||||
{"msvc", McuToolchainPackage::ToolchainType::MSVC},
|
||||
{"gcc", McuToolchainPackage::ToolchainType::GCC},
|
||||
{"mingw", McuToolchainPackage::ToolchainType::MinGW},
|
||||
{"armgcc", McuToolchainPackage::ToolchainType::ArmGcc},
|
||||
{"greenhills", McuToolchainPackage::ToolchainType::GHS},
|
||||
{"arm-greenhills", McuToolchainPackage::ToolchainType::GHSArm},
|
||||
};
|
||||
|
||||
const PackageDescription compilerDescription{toolchain.compiler};
|
||||
|
||||
McuToolChainPackage::ToolChainType toolchainType
|
||||
= toolchainTypeMapping.value(toolchain.id, McuToolChainPackage::ToolChainType::Unsupported);
|
||||
McuToolchainPackage::ToolchainType toolchainType
|
||||
= toolchainTypeMapping.value(toolchain.id, McuToolchainPackage::ToolchainType::Unsupported);
|
||||
|
||||
if (isDesktopToolchain(toolchainType)) {
|
||||
return new McuToolChainPackage{settingsHandler,
|
||||
return new McuToolchainPackage{settingsHandler,
|
||||
compilerDescription.label,
|
||||
compilerDescription.defaultPath,
|
||||
compilerDescription.detectionPaths,
|
||||
@@ -189,7 +189,7 @@ McuToolChainPackage *McuTargetFactory::createToolchain(
|
||||
}
|
||||
|
||||
if (!errorMessage.isEmpty()) {
|
||||
toolchainType = McuToolChainPackage::ToolChainType::Unsupported;
|
||||
toolchainType = McuToolchainPackage::ToolchainType::Unsupported;
|
||||
|
||||
if (toolchain.id.isEmpty()) {
|
||||
printMessage(Tr::tr("Toolchain is invalid because %2 in file \"%3\".")
|
||||
@@ -203,7 +203,7 @@ McuToolChainPackage *McuTargetFactory::createToolchain(
|
||||
|
||||
}
|
||||
|
||||
return new McuToolChainPackage{settingsHandler,
|
||||
return new McuToolchainPackage{settingsHandler,
|
||||
compilerDescription.label,
|
||||
compilerDescription.defaultPath,
|
||||
compilerDescription.detectionPaths,
|
||||
|
@@ -20,7 +20,7 @@ public:
|
||||
QPair<Targets, Packages> createTargets(const McuTargetDescription &,
|
||||
const McuPackagePtr &qtForMCUsPackage) override;
|
||||
Packages createPackages(const McuTargetDescription &);
|
||||
McuToolChainPackage *createToolchain(const McuTargetDescription::Toolchain &, const Utils::FilePath &sourceFile = Utils::FilePath());
|
||||
McuToolchainPackage *createToolchain(const McuTargetDescription::Toolchain &, const Utils::FilePath &sourceFile = Utils::FilePath());
|
||||
McuPackagePtr createPackage(const PackageDescription &);
|
||||
|
||||
private:
|
||||
|
@@ -31,14 +31,14 @@ QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescript
|
||||
QHash<QString, McuPackagePtr> freeRTOSPkgs;
|
||||
Targets mcuTargets;
|
||||
Packages packages;
|
||||
McuToolChainPackagePtr toolchainPackage = getToolchainCompiler(desc.toolchain);
|
||||
McuToolchainPackagePtr toolchainPackage = getToolchainCompiler(desc.toolchain);
|
||||
McuPackagePtr toolchainFilePackage = getToolchainFile(qtForMcuPath, desc.toolchain.id);
|
||||
for (int colorDepth : desc.platform.colorDepths) {
|
||||
Packages required3rdPartyPkgs;
|
||||
// Desktop toolchains don't need any additional settings
|
||||
if (toolchainPackage
|
||||
&& toolchainPackage->toolchainType()
|
||||
!= McuToolChainPackage::ToolChainType::Unsupported) {
|
||||
!= McuToolchainPackage::ToolchainType::Unsupported) {
|
||||
required3rdPartyPkgs.insert(toolchainPackage);
|
||||
}
|
||||
|
||||
@@ -90,13 +90,13 @@ McuAbstractTargetFactory::AdditionalPackages McuTargetFactory::getAdditionalPack
|
||||
return {{}, vendorPkgs};
|
||||
}
|
||||
|
||||
McuToolChainPackagePtr McuTargetFactory::getToolchainCompiler(
|
||||
McuToolchainPackagePtr McuTargetFactory::getToolchainCompiler(
|
||||
const McuTargetDescription::Toolchain &desc) const
|
||||
{
|
||||
auto compilerCreator = toolchainCreators.value(desc.id, [this](const QStringList & /*versions*/) {
|
||||
return McuToolChainPackagePtr{Legacy::createUnsupportedToolChainPackage(settingsHandler)};
|
||||
return McuToolchainPackagePtr{Legacy::createUnsupportedToolchainPackage(settingsHandler)};
|
||||
});
|
||||
McuToolChainPackagePtr toolchainPackage = compilerCreator(desc.versions);
|
||||
McuToolchainPackagePtr toolchainPackage = compilerCreator(desc.versions);
|
||||
return toolchainPackage;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ McuPackagePtr McuTargetFactory::getToolchainFile(const Utils::FilePath &qtForMCU
|
||||
return toolchainFile;
|
||||
} else {
|
||||
return McuPackagePtr{
|
||||
Legacy::createUnsupportedToolChainFilePackage(settingsHandler, qtForMCUSdkPath)};
|
||||
Legacy::createUnsupportedToolchainFilePackage(settingsHandler, qtForMCUSdkPath)};
|
||||
}
|
||||
}
|
||||
} // namespace McuSupport::Internal::Legacy
|
||||
|
@@ -17,7 +17,7 @@ class McuPackage;
|
||||
|
||||
namespace Legacy {
|
||||
|
||||
using ToolchainCompilerCreator = std::function<McuToolChainPackagePtr(const QStringList &version)>;
|
||||
using ToolchainCompilerCreator = std::function<McuToolchainPackagePtr(const QStringList &version)>;
|
||||
|
||||
class McuTargetFactory : public McuAbstractTargetFactory
|
||||
{
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
const McuPackagePtr &qtForMCUsPackage) override;
|
||||
AdditionalPackages getAdditionalPackages() const override;
|
||||
|
||||
McuToolChainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const;
|
||||
McuToolchainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const;
|
||||
McuPackagePtr getToolchainFile(const Utils::FilePath &qtForMCUSdkPath,
|
||||
const QString &toolchainName) const;
|
||||
|
||||
|
@@ -210,7 +210,7 @@ auto expandTargetsAndPackages = [](Targets &targets, Packages &packages) {
|
||||
McuSdkRepository{targets, packages}.expandVariablesAndWildcards();
|
||||
};
|
||||
|
||||
void verifyIarToolchain(const McuToolChainPackagePtr &iarToolchainPackage)
|
||||
void verifyIarToolchain(const McuToolchainPackagePtr &iarToolchainPackage)
|
||||
{
|
||||
ProjectExplorer::ToolchainFactory toolchainFactory;
|
||||
Id iarId{BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID};
|
||||
@@ -222,8 +222,8 @@ void verifyIarToolchain(const McuToolChainPackagePtr &iarToolchainPackage)
|
||||
QCOMPARE(iarToolchainPackage->cmakeVariableName(), TOOLCHAIN_DIR_CMAKE_VARIABLE);
|
||||
QCOMPARE(iarToolchainPackage->environmentVariableName(), iarEnvVar);
|
||||
QCOMPARE(iarToolchainPackage->isDesktopToolchain(), false);
|
||||
QCOMPARE(iarToolchainPackage->toolChainName(), iar);
|
||||
QCOMPARE(iarToolchainPackage->toolchainType(), McuToolChainPackage::ToolChainType::IAR);
|
||||
QCOMPARE(iarToolchainPackage->toolchainName(), iar);
|
||||
QCOMPARE(iarToolchainPackage->toolchainType(), McuToolchainPackage::ToolchainType::IAR);
|
||||
QCOMPARE(iarToolchainPackage->label(), iarLabel);
|
||||
|
||||
iarToolchain = iarToolchainPackage->toolChain(cxxLanguageId);
|
||||
@@ -232,7 +232,7 @@ void verifyIarToolchain(const McuToolChainPackagePtr &iarToolchainPackage)
|
||||
QCOMPARE(iarToolchain->detection(), Toolchain::UninitializedDetection);
|
||||
}
|
||||
|
||||
void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage, const QStringList &versions)
|
||||
void verifyArmGccToolchain(const McuToolchainPackagePtr &armGccPackage, const QStringList &versions)
|
||||
{
|
||||
//Fake register and fake detect compiler.
|
||||
ProjectExplorer::ToolchainFactory toolchainFactory;
|
||||
@@ -246,46 +246,46 @@ void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage, const QS
|
||||
QCOMPARE(armGccPackage->cmakeVariableName(), TOOLCHAIN_DIR_CMAKE_VARIABLE);
|
||||
QCOMPARE(armGccPackage->environmentVariableName(), armGccEnvVar);
|
||||
QCOMPARE(armGccPackage->isDesktopToolchain(), false);
|
||||
QCOMPARE(armGccPackage->toolChainName(), armGcc);
|
||||
QCOMPARE(armGccPackage->toolchainType(), McuToolChainPackage::ToolChainType::ArmGcc);
|
||||
QCOMPARE(armGccPackage->toolchainName(), armGcc);
|
||||
QCOMPARE(armGccPackage->toolchainType(), McuToolchainPackage::ToolchainType::ArmGcc);
|
||||
QCOMPARE(armGccPackage->settingsKey(), armGccDirectorySetting);
|
||||
QCOMPARE(armGccPackage->versions(), versions);
|
||||
|
||||
// FIXME(piotr.mucko): Re-enable when toolchains retrieval from McuToolChainPackage is unified for arm and iar.
|
||||
// FIXME(piotr.mucko): Re-enable when toolchains retrieval from McuToolchainPackage is unified for arm and iar.
|
||||
// armToolchain = armGccPackage->toolChain(cxxLanguageId);
|
||||
// QVERIFY(armToolchain != nullptr);
|
||||
}
|
||||
|
||||
void verifyGccToolchain(const McuToolChainPackagePtr &gccPackage, const QStringList &versions)
|
||||
void verifyGccToolchain(const McuToolchainPackagePtr &gccPackage, const QStringList &versions)
|
||||
{
|
||||
QVERIFY(gccPackage != nullptr);
|
||||
QCOMPARE(gccPackage->cmakeVariableName(), "");
|
||||
QCOMPARE(gccPackage->environmentVariableName(), "");
|
||||
QCOMPARE(gccPackage->isDesktopToolchain(), true);
|
||||
QCOMPARE(gccPackage->toolChainName(), "gcc");
|
||||
QCOMPARE(gccPackage->toolchainType(), McuToolChainPackage::ToolChainType::GCC);
|
||||
QCOMPARE(gccPackage->toolchainName(), "gcc");
|
||||
QCOMPARE(gccPackage->toolchainType(), McuToolchainPackage::ToolchainType::GCC);
|
||||
QVERIFY(allOf(versions, [&](const QString &v) { return gccPackage->versions().contains(v); }));
|
||||
}
|
||||
|
||||
void verifyMsvcToolchain(const McuToolChainPackagePtr &msvcPackage, const QStringList &versions)
|
||||
void verifyMsvcToolchain(const McuToolchainPackagePtr &msvcPackage, const QStringList &versions)
|
||||
{
|
||||
QVERIFY(msvcPackage != nullptr);
|
||||
QCOMPARE(msvcPackage->cmakeVariableName(), "");
|
||||
QCOMPARE(msvcPackage->environmentVariableName(), "");
|
||||
QCOMPARE(msvcPackage->toolchainType(), McuToolChainPackage::ToolChainType::MSVC);
|
||||
QCOMPARE(msvcPackage->toolchainType(), McuToolchainPackage::ToolchainType::MSVC);
|
||||
QCOMPARE(msvcPackage->isDesktopToolchain(), true);
|
||||
QCOMPARE(msvcPackage->toolChainName(), "msvc");
|
||||
QCOMPARE(msvcPackage->toolchainName(), "msvc");
|
||||
QVERIFY(allOf(versions, [&](const QString &v) { return msvcPackage->versions().contains(v); }));
|
||||
}
|
||||
|
||||
void verifyMingwToolchain(const McuToolChainPackagePtr &mingwPackage, const QStringList &versions)
|
||||
void verifyMingwToolchain(const McuToolchainPackagePtr &mingwPackage, const QStringList &versions)
|
||||
{
|
||||
QVERIFY(mingwPackage != nullptr);
|
||||
QCOMPARE(mingwPackage->cmakeVariableName(), "");
|
||||
QCOMPARE(mingwPackage->environmentVariableName(), "");
|
||||
QCOMPARE(mingwPackage->toolchainType(), McuToolChainPackage::ToolChainType::MinGW);
|
||||
QCOMPARE(mingwPackage->toolchainType(), McuToolchainPackage::ToolchainType::MinGW);
|
||||
QCOMPARE(mingwPackage->isDesktopToolchain(), true);
|
||||
QCOMPARE(mingwPackage->toolChainName(), "mingw");
|
||||
QCOMPARE(mingwPackage->toolchainName(), "mingw");
|
||||
QVERIFY(allOf(versions, [&](const QString &v) { return mingwPackage->versions().contains(v); }));
|
||||
}
|
||||
|
||||
@@ -404,34 +404,34 @@ McuSupportTest::McuSupportTest()
|
||||
PackageDescription{},
|
||||
McuTargetDescription::FreeRTOS{},
|
||||
}
|
||||
, toolchainPackagePtr{new McuToolChainPackage{
|
||||
, toolchainPackagePtr{new McuToolchainPackage{
|
||||
settingsMockPtr,
|
||||
{}, // label
|
||||
{}, // defaultPath
|
||||
{}, // detectionPath
|
||||
{}, // settingsKey
|
||||
McuToolChainPackage::ToolChainType::Unsupported, // toolchain type
|
||||
McuToolchainPackage::ToolchainType::Unsupported, // toolchain type
|
||||
{}, // versions
|
||||
{}, // cmake var name
|
||||
{}, // env var name
|
||||
nullptr // version detector
|
||||
}}
|
||||
, armGccToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr,
|
||||
, armGccToolchainPackagePtr{new McuToolchainPackage{settingsMockPtr,
|
||||
armGccLabel,
|
||||
armGccDir,
|
||||
{}, // validation path
|
||||
armGccDirectorySetting,
|
||||
McuToolChainPackage::ToolChainType::ArmGcc,
|
||||
McuToolchainPackage::ToolchainType::ArmGcc,
|
||||
{armGccVersion},
|
||||
TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
||||
armGccEnvVar,
|
||||
nullptr}}
|
||||
, iarToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr,
|
||||
, iarToolchainPackagePtr{new McuToolchainPackage{settingsMockPtr,
|
||||
iarLabel,
|
||||
iarDir,
|
||||
{}, // validation path
|
||||
iarSetting,
|
||||
McuToolChainPackage::ToolChainType::IAR,
|
||||
McuToolchainPackage::ToolchainType::IAR,
|
||||
{armGccVersion},
|
||||
TOOLCHAIN_DIR_CMAKE_VARIABLE,
|
||||
iarEnvVar,
|
||||
@@ -580,7 +580,7 @@ void McuSupportTest::test_parseToolchainFromJSON()
|
||||
|
||||
void McuSupportTest::test_legacy_createIarToolchain()
|
||||
{
|
||||
McuToolChainPackagePtr iarToolchainPackage = Legacy::createIarToolChainPackage(settingsMockPtr,
|
||||
McuToolchainPackagePtr iarToolchainPackage = Legacy::createIarToolchainPackage(settingsMockPtr,
|
||||
iarVersions);
|
||||
verifyIarToolchain(iarToolchainPackage);
|
||||
}
|
||||
@@ -589,13 +589,13 @@ void McuSupportTest::test_createIarToolchain()
|
||||
{
|
||||
const auto description = parseDescriptionJson(iar_stm32f469i_discovery_baremetal_json);
|
||||
|
||||
McuToolChainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
verifyIarToolchain(iarToolchainPackage);
|
||||
}
|
||||
|
||||
void McuSupportTest::test_legacy_createDesktopGccToolchain()
|
||||
{
|
||||
McuToolChainPackagePtr gccPackage = Legacy::createGccToolChainPackage(settingsMockPtr,
|
||||
McuToolchainPackagePtr gccPackage = Legacy::createGccToolchainPackage(settingsMockPtr,
|
||||
{armGccVersion});
|
||||
verifyGccToolchain(gccPackage, {armGccVersion});
|
||||
}
|
||||
@@ -603,13 +603,13 @@ void McuSupportTest::test_legacy_createDesktopGccToolchain()
|
||||
void McuSupportTest::test_createDesktopGccToolchain()
|
||||
{
|
||||
const auto description = parseDescriptionJson(gcc_desktop_json);
|
||||
McuToolChainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
verifyGccToolchain(gccPackage, {});
|
||||
}
|
||||
|
||||
void McuSupportTest::test_legacy_createDesktopMsvcToolchain()
|
||||
{
|
||||
McuToolChainPackagePtr msvcPackage = Legacy::createMsvcToolChainPackage(settingsMockPtr,
|
||||
McuToolchainPackagePtr msvcPackage = Legacy::createMsvcToolchainPackage(settingsMockPtr,
|
||||
{msvcVersion});
|
||||
verifyMsvcToolchain(msvcPackage, {msvcVersion});
|
||||
}
|
||||
@@ -617,14 +617,14 @@ void McuSupportTest::test_legacy_createDesktopMsvcToolchain()
|
||||
void McuSupportTest::test_createDesktopMsvcToolchain()
|
||||
{
|
||||
const auto description = parseDescriptionJson(msvc_desktop_json);
|
||||
McuToolChainPackagePtr msvcPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr msvcPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
verifyMsvcToolchain(msvcPackage, {});
|
||||
}
|
||||
|
||||
void McuSupportTest::test_createDesktopMingwToolchain()
|
||||
{
|
||||
const auto description = parseDescriptionJson(mingw_desktop_json);
|
||||
McuToolChainPackagePtr mingwPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr mingwPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
verifyMingwToolchain(mingwPackage, {"11.2.0"});
|
||||
}
|
||||
|
||||
@@ -635,7 +635,7 @@ void McuSupportTest::test_verifyManuallyCreatedArmGccToolchain()
|
||||
|
||||
void McuSupportTest::test_legacy_createArmGccToolchain()
|
||||
{
|
||||
McuToolChainPackagePtr armGccPackage = Legacy::createArmGccToolchainPackage(settingsMockPtr,
|
||||
McuToolchainPackagePtr armGccPackage = Legacy::createArmGccToolchainPackage(settingsMockPtr,
|
||||
{armGccVersion});
|
||||
verifyArmGccToolchain(armGccPackage, {armGccVersion});
|
||||
}
|
||||
@@ -656,31 +656,31 @@ void McuSupportTest::test_createArmGccToolchain()
|
||||
QFETCH(QString, json);
|
||||
|
||||
const auto description = parseDescriptionJson(json.toLocal8Bit());
|
||||
McuToolChainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)};
|
||||
verifyArmGccToolchain(armGccPackage, description.toolchain.versions);
|
||||
}
|
||||
|
||||
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data()
|
||||
{
|
||||
QTest::addColumn<McuTargetDescription>("description");
|
||||
QTest::addColumn<McuToolChainPackage::ToolChainType>("toolchainType");
|
||||
QTest::addColumn<McuToolchainPackage::ToolchainType>("toolchainType");
|
||||
|
||||
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
|
||||
<< parseDescriptionJson(armgcc_stm32h750b_discovery_baremetal_json)
|
||||
<< McuToolChainPackage::ToolChainType::ArmGcc;
|
||||
<< McuToolchainPackage::ToolchainType::ArmGcc;
|
||||
QTest::newRow("iar_mimxrt1064_evk_freertos_json")
|
||||
<< parseDescriptionJson(iar_mimxrt1064_evk_freertos_json)
|
||||
<< McuToolChainPackage::ToolChainType::IAR;
|
||||
<< McuToolchainPackage::ToolchainType::IAR;
|
||||
QTest::newRow("iar_stm32f469i") << parseDescriptionJson(iar_stm32f469i_discovery_baremetal_json)
|
||||
<< McuToolChainPackage::ToolChainType::IAR;
|
||||
<< McuToolchainPackage::ToolchainType::IAR;
|
||||
}
|
||||
|
||||
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType()
|
||||
{
|
||||
QFETCH(McuTargetDescription, description);
|
||||
QFETCH(McuToolChainPackage::ToolChainType, toolchainType);
|
||||
QFETCH(McuToolchainPackage::ToolchainType, toolchainType);
|
||||
|
||||
const McuToolChainPackage *toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
const McuToolchainPackage *toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
|
||||
QVERIFY(toolchain != nullptr);
|
||||
QCOMPARE(toolchain->toolchainType(), toolchainType);
|
||||
@@ -857,7 +857,7 @@ void McuSupportTest::test_useFallbackPathForToolchainWhenPathFromSettingsIsNotAv
|
||||
.Times(2)
|
||||
.WillRepeatedly(Return(FilePath{fallbackDir}));
|
||||
|
||||
McuToolChainPackage *toolchain = targetFactory.createToolchain(toolchainDescription);
|
||||
McuToolchainPackage *toolchain = targetFactory.createToolchain(toolchainDescription);
|
||||
|
||||
QCOMPARE(toolchain->path().toString(), fallbackDir);
|
||||
}
|
||||
@@ -882,7 +882,7 @@ void McuSupportTest::test_usePathFromSettingsForToolchainPath()
|
||||
.WillOnce(Return(FilePath{empty})) // system scope settings
|
||||
.WillOnce(Return(FilePath{armGccDir})); // user scope settings
|
||||
|
||||
McuToolChainPackage *toolchain = targetFactory.createToolchain(toolchainDescription);
|
||||
McuToolchainPackage *toolchain = targetFactory.createToolchain(toolchainDescription);
|
||||
QCOMPARE(toolchain->path().toString(), armGccDir);
|
||||
}
|
||||
|
||||
@@ -1312,7 +1312,7 @@ void McuSupportTest::test_passExecutableVersionDetectorToToolchainPackage()
|
||||
QCOMPARE(description.toolchain.compiler.versionDetection.executableArgs, versionDetectionArgs);
|
||||
QCOMPARE(description.toolchain.compiler.versionDetection.regex, versionRegex);
|
||||
|
||||
McuToolChainPackagePtr toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
|
||||
const auto *versionDetector{toolchain->getVersionDetector()};
|
||||
QVERIFY(versionDetector != nullptr);
|
||||
@@ -1333,7 +1333,7 @@ void McuSupportTest::test_legacy_passExecutableVersionDetectorToToolchainPackage
|
||||
QFETCH(QString, versionRegex);
|
||||
|
||||
const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
|
||||
McuToolChainPackagePtr toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
McuToolchainPackagePtr toolchain{targetFactory.createToolchain(description.toolchain)};
|
||||
|
||||
const auto *versionDetector{toolchain->getVersionDetector()};
|
||||
QVERIFY(versionDetector != nullptr);
|
||||
|
@@ -124,9 +124,9 @@ private:
|
||||
PackageDescription compilerDescription;
|
||||
PackageDescription toochainFileDescription;
|
||||
McuTargetDescription targetDescription;
|
||||
McuToolChainPackagePtr toolchainPackagePtr;
|
||||
McuToolChainPackagePtr armGccToolchainPackagePtr;
|
||||
McuToolChainPackagePtr iarToolchainPackagePtr;
|
||||
McuToolchainPackagePtr toolchainPackagePtr;
|
||||
McuToolchainPackagePtr armGccToolchainPackagePtr;
|
||||
McuToolchainPackagePtr iarToolchainPackagePtr;
|
||||
PackageMock *armGccToolchainFilePackage{new PackageMock};
|
||||
McuPackagePtr armGccToolchainFilePackagePtr{armGccToolchainFilePackage};
|
||||
McuTarget::Platform platform;
|
||||
|
Reference in New Issue
Block a user