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>
Adapt a couple mips64-related tests at the same time.
Change-Id: I9313419cfe561c7e949f343d2008f7b370ad2b39
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This patch adds the missing include statements for QRegExp.
Change-Id: Ibb03b929940adb84ae190b5090cb6b88653cc14c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Limits conflicts with Linux tool chains and debuggers.
Change-Id: Ie6408aecbc2828e8be53c46cf579441ccaba19bb
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
The binaries have a minor linker version >= 10.
Amends change 0a9414d467.
Task-number: QTBUG-57086
Change-Id: Ib9493bc3f87e6100377632b85991ce94f3025f28
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Extend ABI by flavor and add look-up.
As with each major update, rewrite the the MSVC toolchain
autodetection.
Previously, the detection looped over the entries in "VC" registry
section and checked in the "VS" section whether a valid installation
belonged to the entry. MSVC2017 no longer has an entry in the "VC"
section.
Introduce a struct describing the installation including version
number and rewrite the loop to run over the "VS" section and retrieve
the VC path from the "VC" section only for versions <= 14.0.
Also, the various .bat files for the target architecture are
now in a single folder instead of spread around various bin/XXX
subfolders. Introduce an array of structs for the platform that
has the prefix and .bat name and uses the prefix only for
versions <= 14.0.
Task-number: QTBUG-57086
Change-Id: I947edd885c0a379f196440041c07d60cd4244d9c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>