bare-metal: Add support for SDCC toolchain

This patch adds support for the SDCC toolchain:

 * http://sdcc.sourceforge.net/

Now QtC's compiler page have additional 'SDCC' selector which
allows to user to choose a desired compiler. Main point is that
the SDCC supports only the C-language, so the C++ selector is
not available.

When the compiler is added, the QtC will tries to detect the
compiler ABI.

Also it is implemented the compiler auto-detection; each toolchain
is displayed with its detected version.

Currently is supported the following architecture:

 * 8051 (aka MCS51)

In addition, were added changes to the QBS Project Manager
plugin to make it work with QBS .

So, now do not need to do an additional 'hacks' into the
'qbs.toolchain' property of QtC SDCC kit.

Following features are not implemented yet:

* Debugger integration.
* Compile output parsers.
* Support for other architectures (z80, ds390 and etc) .

Change-Id: I92b97a81152d94cabf569e2013fc7260b8d7b953
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Denis Shienkov
2019-03-19 22:45:36 +03:00
parent 31517f00bb
commit 8f8ff686df
7 changed files with 779 additions and 0 deletions

View File

@@ -135,6 +135,8 @@ static QStringList toolchainList(const ProjectExplorer::ToolChain *tc)
list << QLatin1String("iar");
else if (tc->typeId() == BareMetal::Constants::KEIL_TOOLCHAIN_TYPEID)
list << QLatin1String("keil");
else if (tc->typeId() == BareMetal::Constants::SDCC_TOOLCHAIN_TYPEID)
list << QLatin1String("sdcc");
return list;
}