This commit adds support for the RISC-V atchitecture:
* https://riscv.org/
using GCC toolchains.
Tested auto-detection on Windows using the GCC v7.7.1 toolchain
provided from the following URL:
* https://gnutoolchains.com/risc-v/
Change-Id: Ice10469ebda8af9cf7bf32299bb38e548b30b315
Reviewed-by: hjk <hjk@qt.io>
This commit adds new ProjectExplorer::Abi::RiscVArchitecture
entry for the RISC-V architecture:
* https://riscv.org/
Change-Id: I0cd73cca22a2852203372efbccc51d74581d8f50
Reviewed-by: hjk <hjk@qt.io>
This commit provides support for the C166 compiler provided by Keil:
* http://www.keil.com/c166/
Now QtC auto-detect installed C166 compiler, its ABI's, headers,
and pre-defined macros. Additionally, we have added the new 'c166'
architecture to the ABI.
Change-Id: I63bd39aff48d19e430b2e58b8b4531c33eaa0e4a
Reviewed-by: hjk <hjk@qt.io>
This patch adds support for the C251 toolchain, provided by KEIL:
* http://www.keil.com/c251/
Now the auto-detected C251 compiler will be displayed with an
appropriate ABI on the "Options->Kits->Compilers" page.
Change-Id: I40cf2b82117420b2eddb09cad902c9f264bac062
Reviewed-by: hjk <hjk@qt.io>
MSVC 2015/17/19 are ABI compatible, but BaseQtVersion::validateKit()
would emit a warning when using e.g. a Qt MSVC 2017 build with an MSVC
2019 toolchain.
Change-Id: I50ba026ae7b55e052b26826076ef962f369a05a1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This architecture provided by Renesas:
* https://en.wikipedia.org/wiki/RL78
... and are used in the bare-metal programming.
Change-Id: Iec56192e756aa475b1cdfce1aa1ff9c24feb00cd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This GCC compiler provides by Texas Instruments
for the MSP430 architecture.
Change-Id: I3ce330d0a14bd338f9350291242dcc434bb0d19e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Also we introduce the new 'msp430' architecture in
ProjectExplorer::Abi.
Change-Id: Ifb857abb29d78396b0d55a4604511951597f4415
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This architecture is useful in programming of a bare-metal
devices, based on 8-bit microcontrollers from STMicroelectronics:
* https://en.wikipedia.org/wiki/STM8
Change-Id: Ie5d28a29aaa36e65a29bb96f988e6ee4327e1e9e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This change adds WebAssembly support in the shape of a plugin.
- Auto-detection of the emsdk toolchain
- Handling of "asmjs-unknown-emscripten" Abi
- Binary detection of WebAssembly libraries
- Auto-creation of a "WebAssembly runtime" device (with icon)
- Runconfiguration that launches the application via the "emrun"
tool which spawns a local web server and runs the application on
the chosen web browser.
Limitations:
- So far only tested on Windows/MinGW and Linux
- Not yet tested with Qt WebAssembly installation form the installer
Only tested with self-built Qt and manually added kit
- The attempt to launch an application via emrun, while a previous
application is still running, will fail. The reason is that the
web servers spawned by emrun listen to the same default port but
serve only the content of one application.
Possible solutions: We could either spawn the different web servers
with different ports, or we could use one single web server instance
which serves the whole default project location (home directory).
Task-number: QTCREATORBUG-21068
Task-number: QTCREATORBUG-22249
Change-Id: I1a16fbe52382d45c37e9bc624a943a6ca475fa09
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Usually, the GCC compilers with a names like "arm-none-eabi-gcc"
are used for a bare-metal devices.
Change-Id: I30acd554b44ae625383ec615454d258361e78074
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.
Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
There is no mips[64] support in Android anymore.
Change-Id: Ia7829e06c8e5658fb6ee9d20ea34d621a9651f37
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The old code was too simplistic: Basically, we just took a random
toolchain, slapped a random Qt onto it and made that the default kit.
Instead, we now go through all toolchains, try to find a matching Qt
version, debugger etc and create a kit for that combination unless there
is a better one.
Fixes: QTCREATORBUG-22138
Change-Id: Ib57ca4453a93ee9253c75398328c3bca33087dc6
Reviewed-by: hjk <hjk@qt.io>
This patch adds support for the toolchains, provided by
KEIL:
* http://www.keil.com/c51/
* http://www2.keil.com/mdk5/
Now QtC's compiler page have additional 'KEIL' selector
which allows to user to choose a desired C/C++ compiler
from set of the KEIL toolchains.
In this case the QtC will tries to detect the compiler ABI,
in which was added the additional OMF binary format type
which is produced by C51 compiler:
* http://www.keil.com/support/docs/93.htm
Currently are supported the following architectures:
* ARM
* 8051 (aka MCS51)
In addition, were added changes to the QBS Project Manager
plugin to make it work with QBS 1.13 (where previously were
added support for KEIL toolchain).
So, now do not need to do an additional 'hacks' into the
'qbs.toolchain' property of QtC KEIL kit.
Following features are not implemented yet:
* Debugger integration.
* Compile output parsers.
* Toolchains auto-detection.
* Support for C251, C166 architectures.
Change-Id: If0cc18d22b7dc0e5ce9096bdb3dc699ee3edde66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This patch adds support for the toolchains, provided by
IAR Embedded Workbench:
* https://www.iar.com/iar-embedded-workbench/
Now QtC's compiler page have additional 'IAREW' selector
which allows to user to choose a desired C/C++ compiler
from set of the IAR EW toolchains.
In this case the QtC will tries to detect the compiler ABI,
in which was added the additional MCS51 architecture (which
includes all family for Intel x8051 MCU's):
* https://en.wikipedia.org/wiki/Intel_MCS-51
Also, now the ABI has an additional proprietary UBROF binary
format type which is produced by some of IAR EW compilers:
* https://netstorage.iar.com/SuppDB/Public/UPDINFO/011281/ew/doc/EW_MigrationFromUBROF.pdf
* https://netstorage.iar.com/SuppDB/Public/UPDINFO/013556/ew/doc/UBROFRecordTags.pdf
Currently are supported the following architectures:
* ARM
* 8051 (aka MCS51)
* AVR
In addition, were added changes to the QBS Project Manager
plugin to make it work with QBS 1.13 (where previously were
added support for IAR toolchain).
So, now do not need to do an additional 'hacks' into the
'qbs.toolchain' property of QtC IAR kit.
Following features are not implemented yet:
* C-SPY debugger integration.
* Compile output parsers.
* Toolchains auto-detection.
Change-Id: I4a7794efe8dc15652f5a7f1f3dd966c367943484
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
It is promised to be compatible with prior versions.
Change-Id: I85e433382a66c82e9880401c3a983fef06c03606
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Currently, the gdb target ABI is determined by running
`gdb -version`, which for recent gdb's does not reproduce
the target ABI string -- yet this string is searched in
the output. This obviously fails, and qtcreator uses a
fallback behavior, that is not suitable when using gdb
for debugging on targets (like avr microcontrollers).
With this change, QtCreator calls `gdb --configuration`
if that is supported by gdb and extracts `<string> from
`--target=<string>` in the output.
For older versions of gdb (which do not support the
`--configuration` flag, but still have the target
information in the output of `--version`, the output of
`--version` is parsed.
If both methods fail, no ABI is set for gdb.
Change-Id: Ib406f6700b63e2cedb46bd4ec8cc0d215677ecdc
Reviewed-by: Michael Kopp <kopp.michael@yahoo.de>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Add file extensions to execatables about to be deployed based on the
OS found in the toolchain's targetAbi instead of using the hostOs().
This should fix deployment from windows to non-windows machines.
Task-number: QTCREATORBUG-21608
Change-Id: I83678bda1d56ff24848b7b498b95081d00b5a5f0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Allow for user-defined OS flavors to be registered by plugins.
Make sure the GenericFlavor and UnknownFlavor are always listed
last to keep the UI happy.
Keep the Abi::OsFlavor enums for compatibility. All of them are
pre-registered in the OSes they were available before.
Task-number: QTCREATORBUG-19899
Change-Id: I9bf6ef8b256cf42abd5fa1fe536cbe5dfadd3dd0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Replace GenericLinuxFlavor, GenericUnixFlavor, GenericDarwinFlavor,
GenericQnxFlavor and GenericBareMetalFlavor with GenericFlavor. They
can all be distinguished from each other by the OS property, so having
separate enum values for all of them is not necessary.
Remove a unit test that made sure that each flavor (with exceptions)
is only listed for one OS, which no longer is the case now.
Change-Id: I88dad5d37eaa4c288568e40b95337a39b78a8352
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Only have one constructor. Get rid of implicit conversion from QString
to Abi -- that seems rather non-obvious. Use Abi::fromString(...) instead.
Change-Id: Ic638d3d4022c465123449089b0679197a5eb445d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Also add an "rtos" OS flavor to baremetal, which is popular with xtensa.
Task-number: QTCREATORBUG-20147
Change-Id: Id4d22ebfc59f123a76dc3de898c7c57bb3be8a38
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Add all static methods to turn the various Abi enums into a string
and back.
Use these methods in the Abi constructor.
Add a unit test that does round-trips between Abi enum, string and back
and fix the code to actually handle this.
Change-Id: Icb56cce07d36152dbee7bbf9dd119a753444ada9
Reviewed-by: hjk <hjk@qt.io>
Some entries were duplicated. Fix fallout in gcc toolchain test
caused by this change.
Change-Id: I63c7a5fdba93e903888b2daa99a87e0a07c28acd
Reviewed-by: hjk <hjk@qt.io>
QTC_CPU was broken in qmake and never worked there. Qbs never implemented
the override properly, so neither did it work there.
Use QSysInfo to retrieve information on CPU that Qt was built for and use
that in the hostAbi.
Change-Id: I298c15b2263c9eaf343a93037229de64e90c36ef
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>