BareMetal: Auto-detect IAR toolchain for Renesas RX architecture

This patch implements auto-detection for the RX toolchain,
provided by IAR Systems:

 * https://www.iar.com/iar-embedded-workbench/#!?architecture=RX

Change-Id: I3f00ca525fef8b0ce989f1e0f97857446d04449c
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Denis Shienkov
2020-04-28 14:55:03 +03:00
parent d5f107bb54
commit e4b889802e
3 changed files with 11 additions and 2 deletions

View File

@@ -70,7 +70,7 @@ static QString cppLanguageOption(const FilePath &compiler)
{
const QString baseName = compiler.toFileInfo().baseName();
if (baseName == "iccarm" || baseName == "iccrl78"
|| baseName == "iccrh850") {
|| baseName == "iccrh850" || baseName == "iccrx") {
return QString("--c++");
}
if (baseName == "icc8051" || baseName == "iccavr"
@@ -204,6 +204,8 @@ static Abi::Architecture guessArchitecture(const Macros &macros)
return Abi::Architecture::V850Architecture;
if (macro.key == "__ICCRH850__")
return Abi::Architecture::Rh850Architecture;
if (macro.key == "__ICCRX__")
return Abi::Architecture::RxArchitecture;
}
return Abi::Architecture::UnknownArchitecture;
}
@@ -223,7 +225,8 @@ static Abi::BinaryFormat guessFormat(Abi::Architecture arch)
if (arch == Abi::Architecture::ArmArchitecture
|| arch == Abi::Architecture::Stm8Architecture
|| arch == Abi::Architecture::Rl78Architecture
|| arch == Abi::Architecture::Rh850Architecture) {
|| arch == Abi::Architecture::Rh850Architecture
|| arch == Abi::Architecture::RxArchitecture) {
return Abi::BinaryFormat::ElfFormat;
}
if (arch == Abi::Architecture::Mcs51Architecture
@@ -457,6 +460,7 @@ QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alr
{{"EWRL78"}, {"\\rl78\\bin\\iccrl78.exe"}},
{{"EWV850"}, {"\\v850\\bin\\iccv850.exe"}},
{{"EWRH850"}, {"\\rh850\\bin\\iccrh850.exe"}},
{{"EWRX"}, {"\\rx\\bin\\iccrx.exe"}},
};
QSettings registry(kRegistryNode, QSettings::NativeFormat);

View File

@@ -729,6 +729,8 @@ QString Abi::toString(const Architecture &a)
return QLatin1String("v850");
case Rh850Architecture:
return QLatin1String("rh850");
case RxArchitecture:
return QLatin1String("rx");
case UnknownArchitecture:
Q_FALLTHROUGH();
default:
@@ -879,6 +881,8 @@ Abi::Architecture Abi::architectureFromString(const QStringRef &a)
return V850Architecture;
if (a == "rh850")
return Rh850Architecture;
if (a == "rx")
return RxArchitecture;
else if (a == "xtensa")
return XtensaArchitecture;
if (a == "asmjs")

View File

@@ -66,6 +66,7 @@ public:
C166Architecture,
V850Architecture,
Rh850Architecture,
RxArchitecture,
UnknownArchitecture
};