aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/abi.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Even more Qt6 portinghjk2020-06-231-3/+2
| | | | | | Task-number: QTCREATORBUG-24098 Change-Id: Ib6ef0e521483153c9716c9a1870072e836d6b026 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Add support for new M32R architectureDenis Shienkov2020-06-111-0/+10
| | | | | | | | | | | | | | This commit adds new ProjectExplorer::Abi::M32RArchitecture entry for the Renesas M32R architecture: * https://www.renesas.com/us/en/products/microcontrollers- microprocessors/m32r.html Also now the ABI of GCC compiler for this architecture is recognized correctly. Change-Id: Ic6a328e06c2824489c1f18895260355c449e7da8 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Recognize GCC ABI for Compact Risc architectureDenis Shienkov2020-06-111-0/+7
| | | | | | | | Now the ABI of GCC compiler for the Compact Risc (aka CR16) architecture is deteted correctly. Change-Id: Ifbe12a26036707da4a9df361d67b6033b29c0748 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Recognize GCC ABI for Renesas SuperH architectureDenis Shienkov2020-06-081-0/+6
| | | | | | | | Now the ABI of GCC compiler for the Renesas SuperH architecture is deteted correctly. Change-Id: I788bc848fed4741b3bbc193e843b753884c7e209 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Recognize GCC ABI for Renesas RX architectureDenis Shienkov2020-06-081-0/+6
| | | | | | | | Now the ABI of GCC compiler for the Renesas RX architecture is deteted correctly. Change-Id: I5d0b810a5d5fe7339e0d0f507f696f98c16be30d Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Add support for new CR16 architectureDenis Shienkov2020-05-271-0/+4
| | | | | | | | | | This commit adds new ProjectExplorer::Abi::CR16Architecture entry for the National Semiconductor CR16 architecture: * https://en.wikipedia.org/wiki/CompactRISC Change-Id: I886422e3745cbaec177236c3a2bd90950633a925 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Add support for new R32C architectureDenis Shienkov2020-05-271-0/+4
| | | | | | | | | | This commit adds new ProjectExplorer::Abi::R32CArchitecture entry for the Renesas R32C architecture: * https://www.renesas.com/us/en/products/microcontrollers-microprocessors/m16c.html Change-Id: I869dd07783355b01522ca9eb87b73a8e55bf3746 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Add support for new M16C architectureDenis Shienkov2020-05-271-0/+4
| | | | | | | | | | This commit adds new ProjectExplorer::Abi::M16CArchitecture entry for the Renesas M16C architecture: * https://www.renesas.com/us/en/products/microcontrollers-microprocessors/m16c.html Change-Id: Id476cfefbfd971b31cb307d51b6980a29684191d Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Add support for Renesas M32C architecture in GCC toolchainDenis Shienkov2020-05-191-0/+6
| | | | | | | | | | | | | | | | This commit adds support for the M32C atchitecture: * https://www.renesas.com/us/en/products/microcontrollers-microprocessors/m16c.html using GCC toolchains. Tested auto-detection on Windows using the GCC v4.7.3 toolchain provided from the following URL: * https://gnutoolchains.com/m32c-elf/ Change-Id: Iaddd69e3109a4bd81d094dcb4edab29c8b398f01 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Add support for new M32C architectureDenis Shienkov2020-05-191-0/+4
| | | | | | | | | | This commit adds new ProjectExplorer::Abi::M32CArchitecture entry for the Renesas M32C architecture: * https://www.renesas.com/us/en/products/microcontrollers-microprocessors/m16c.html Change-Id: Ic6ab278e5da6992824a1427ac86a470768fcdb1f Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Parse RISC-V GCC compiler name to detect it word widthDenis Shienkov2020-05-181-1/+1
| | | | | Change-Id: I291fc1ef01091391a094e7031b813f5a4afb2f2d Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Add support for M68K architecture in GCC toolchainDenis Shienkov2020-05-181-0/+6
| | | | | | | | | | | | | | | | This commit adds support for the M68K atchitecture: * https://en.wikipedia.org/wiki/Motorola_68000_series using GCC toolchains. Tested auto-detection on Windows using the GCC v4.8.0 toolchain provided from the following URL: * https://gnutoolchains.com/m68k-elf/ Change-Id: I5f1e36de240f3f53b54e0e6a8edb318746d345e7 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Add support for new M68K architectureDenis Shienkov2020-05-181-0/+4
| | | | | | | | | | | This commit adds new ProjectExplorer::Abi::M68KArchitecture entry for the M68K (aka new NXP ColdFire) architecture: * https://wiki.osdev.org/M68k_Overview * https://www.nxp.com/products/product-information/ip-block-licensing/coldfire-32-bit-processors:COLDFIRE-32-BIT-PROCESSORS Change-Id: I84a70b2d127f207bdff5cd085890def1fe28b17d Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Add support for RISC-V architecture in GCC toolchainDenis Shienkov2020-05-151-0/+6
| | | | | | | | | | | | | | | | 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>
* ProjectExplorer: Add support for new RISC-V architectureDenis Shienkov2020-05-151-0/+4
| | | | | | | | | | 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>
* BareMetal: Add support for V850 architecture in GCC toolchainDenis Shienkov2020-05-151-0/+6
| | | | | | | | | | | This commit adds support for the Renesas V850 atchitecture: * https://www.renesas.com/us/en/products/microcontrollers-microprocessors/v850.html using GCC toolchains. Change-Id: I2224b3241040c02196b39ff013659d2b8c692208 Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Add AVR32 architecture to the ProjectExplorer::AbiDenis Shienkov2020-05-141-0/+16
| | | | | Change-Id: I2d70dda8d91bccc34b6e1c16c70bc5b3e0ca1b1f Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Auto-detect IAR toolchain for Renesas 78K architectureDenis Shienkov2020-04-291-0/+4
| | | | | | | | | | This patch implements auto-detection for the 78K toolchain, provided by IAR Systems: * https://www.iar.com/iar-embedded-workbench/#!?architecture=78K Change-Id: Idef5e8982984c0cf24c120d31af0f6cee210694b Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Auto-detect IAR toolchain for Renesas RX architectureDenis Shienkov2020-04-291-0/+4
| | | | | | | | | | 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>
* BareMetal: Auto-detect IAR toolchain for Renesas RH850 architectureDenis Shienkov2020-04-291-0/+4
| | | | | | | | | | This patch implements auto-detection for the RH850 toolchain, provided by IAR Systems: * https://www.iar.com/iar-embedded-workbench/#!?architecture=RH850 Change-Id: I15f54026b052be7b84a96f9c43a32b83ea499f38 Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Auto-detect IAR toolchain for Renesas V850 architectureDenis Shienkov2020-04-281-0/+4
| | | | | | | | | | This patch implements auto-detection for the V850 toolchain, provided by IAR Systems: * https://www.iar.com/iar-embedded-workbench/#!?architecture=V850 Change-Id: I89c2b2ab87f0b32af4e25e77b8a3b6381481c4cc Reviewed-by: hjk <hjk@qt.io>
* BareMetal: Add support for Keil C166 toolchain on WindowsDenis Shienkov2020-04-141-0/+4
| | | | | | | | | | | | | 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>
* BareMetal: Add support for Keil C251 toolchainDenis Shienkov2020-03-201-0/+4
| | | | | | | | | | | | 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>
* ProjectExplorer: Fix MSVC compatibility checkChristian Kandeler2020-03-161-2/+4
| | | | | | | | Amends bd03041428. Fixes: QTCREATORBUG-23706 Change-Id: I2ebf4c350cd0ff6b95535f614eec2379a704a0d4 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QtSupport: Prevent misleading message about ABI mismatchChristian Kandeler2020-02-271-0/+6
| | | | | | | | | 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>
* Use isEmpty() instead of count() or size()Alessandro Portale2020-01-201-1/+1
| | | | | Change-Id: I0a89d2808c6d041da0dc41ea5aea58e6e8759bb4 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* ProjectExplorer: Add new RL78 architectureDenis Shienkov2019-11-051-0/+10
| | | | | | | | | | | 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>
* ProjectExplorer: SimplifyNikolai Kosjar2019-11-011-4/+1
| | | | | | | | bugprone-branch-clone readability-simplify-boolean-expr Change-Id: Iaaac21e96a3e9db6b9819d77fdae623ede373e59 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android multi arch supportBogDan Vatra2019-09-161-2/+9
| | | | | | | [ChangeLog][Android] Android multi arch support for qmake Change-Id: Ib8b1874604a3392130c96fbc00b26713b3d788ae Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Detect ABI for GCC MSP430 compilerDenis Shienkov2019-08-161-0/+6
| | | | | | | | This GCC compiler provides by Texas Instruments for the MSP430 architecture. Change-Id: I3ce330d0a14bd338f9350291242dcc434bb0d19e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* BareMetal: Auto-detect IAR EW toolchain for MSP430 architectureDenis Shienkov2019-08-161-0/+4
| | | | | | | | Also we introduce the new 'msp430' architecture in ProjectExplorer::Abi. Change-Id: Ifb857abb29d78396b0d55a4604511951597f4415 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Remove stray semicolonshjk2019-08-051-3/+3
| | | | | Change-Id: I2fc02ee07daa28609f39e4e78f3860bb768ea6e9 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Introduce new STM8 architectureDenis Shienkov2019-07-261-0/+4
| | | | | | | | | | 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>
* WebAssembly: Initial commitAlessandro Portale2019-07-251-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ProjectExplorer: Interpret 'none' compiler part as BareMetalOSDenis Shienkov2019-07-111-1/+5
| | | | | | | | 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>
* Utils: Rename FileName to FilePathhjk2019-05-281-2/+2
| | | | | | | | 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>
* ProjectExplorer: Use an alias for QList<Abi>hjk2019-05-271-9/+9
| | | | | Change-Id: I69231c5974620ae30296bfc4e0ab41c900d95a3c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Nuke mips[64] supportBogDan Vatra2019-05-071-16/+0
| | | | | | | | 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>
* Improve kit auto-detectionChristian Kandeler2019-03-191-1/+3
| | | | | | | | | | | | 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>
* bare-metal: Add support for KEIL toolchainDenis Shienkov2019-03-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ProjectExplorer: Add missing fromString() functionsChristian Kandeler2019-03-111-0/+4
| | | | | | | | ... for newly added architectures and binary formats. Amends 1caff90686. Change-Id: I35607d7bf97270db9689a8c0f4ec2c756fdabcdf Reviewed-by: hjk <hjk@qt.io>
* bare-metal: adjust conversion from BinaryFormat to QString in AbiPrzemyslaw Gorszkowski2019-03-101-1/+1
| | | | | Change-Id: Id5a1c1d8c7f1048539550939f39a25efe13e2246 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* bare-metal: Add support for IAR EW toolchainDenis Shienkov2019-03-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ProjectExplorer: Add MSVC2019 flavor supportIvan Donchevskii2019-02-081-9/+19
| | | | | | | | | 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>
* determine gdb target ABI by parsing 'gdb --configuration'Michael Kopp2018-12-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Qmake: Use target-specific extension for deploymentTobias Hunger2018-12-021-0/+21
| | | | | | | | | | | | | 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>
* ProjectExplorer: ModernizeAlessandro Portale2018-07-161-4/+4
| | | | | | | | | | | | | | modernize-use-auto modernize-use-nullptr modernize-use-override modernize-use-using modernize-use-default-member-init modernize-use-equals-default modernize-use-transparent-functors Change-Id: Iebed22caa2e733d292f334e956e3d16b844e14e3 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* ProjectExplorer: Fix compile for gcc4.9Christian Stenger2018-06-211-1/+1
| | | | | Change-Id: I60a85f39183cd7855d8aa2093e67dbbe8478a70f Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Abi: Allow for user-defined OS flavorsTobias Hunger2018-06-211-144/+204
| | | | | | | | | | | | | | 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>
* Abi: Only have one "generic" flavorTobias Hunger2018-06-181-87/+42
| | | | | | | | | | | | | 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>