aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/cpp/keil.qbs
Commit message (Collapse)AuthorAgeFilesLines
* baremetal: Introduce new cpp::generate{Assembler|Compiler}ListingFilesDenis Shienkov2019-10-171-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This properties enables or disables generation of a compiler or assembler listing files. Reason why we need in this property is in that some compilers (e.g. KEIL C51) generates a listing files by default, that spams a project sources directory. So, we need to have a possibility e.g. to disable it or to generate to an output directory. This patch implements this feature for KEIL, IAR, SDCC compilers with the following restrictions: * IAR (8051, AVR, STM8, MSP430, ARM) - full support. * KEIL (8051) - full support. * KEIL (ARM) - has only one restriction in that a compiler does not support specifying of an output listing file name. It is possible to specify only an output listing directory. So, a listing file names will be a bit different than for other compilers (e.g. if a source file name is 'foo.c', then the listing file name will be 'foo.lst', instead of 'foo.c.lst'). * SDCC (8051, STM8) - seems, has not possibility to disable an auto-generated listing files. But it generates an output listing files to a right output directory with the object files. Besides, a listing files has a correct names (e.g. for the 'foo.c' file, the listing file will be 'foo.c.lst'). Change-Id: Ic3516101e69eed156cf71606a7144efc72d40204 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Fix merging issues from 1.14 to masterDenis Shienkov2019-10-101-14/+2
| | | | | Change-Id: Id859d95ddfb776ec534ba0e46d989bb2ba30770a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge 1.14 into masterChristian Kandeler2019-10-081-46/+16
|\ | | | | | | Change-Id: Ief78bb9d82344e31135faca42a422c23951e87ec
| * baremetal: Fix missed linker artifact for C51 compilerDenis Shienkov2019-09-301-54/+12
| | | | | | | | | | | | | | | | | | | | | | We need to add a file with extension '.m51' which is a map file, generated by BL51 linker for 8051 architecture. Also the artifacts creation code is refactored and improved a bit. Change-Id: I49b487acf87263dde818696d5a3478333839c30b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Refactor the map file generation propertyDenis Shienkov2019-10-011-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. It is makes sense to define this property once inside of CppModule, instead of duplicate it in each other module. 2. A new property name 'generateLinkerMapFile' will be better than a previous, so, we can rename this property. 3. The map file generation is not necessary to be always enabled, so, we can disable this property by default. Change-Id: I0439e8b3e0273593c8456d32b1c099ff09498fad Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve JS code in KEIL module a bitDenis Shienkov2019-08-191-71/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Move an architecture-specific code to a functions in the keil.js file. * Remove the redundant copy-paste code. * Align order for assembler, compiler, linker and archiver flags to the unified form, like: <inputs> <outputs> <defines> <includes> <flags> * Add some comments. * Fix handling of c{xx}LanguageVersion property. * Fix JS warnings about the variables re-definition. Change-Id: I708a446292e6f5c6bfb56ef3fa92815123808ccf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Fix KEIL assembler file tagsDenis Shienkov2019-08-191-8/+1
|/ | | | | | | | | | | | | The KEIL IDE examples contains the following patterns [*.s, *.a51, *.asm] for the assembler files. So, we will use same patterns too, which are intended: '*.s' - for ARM architecture. '*.a51' - for 8051 architecture. Change-Id: I8268d309bb6e9237a0f64d3280163afa997bfb81 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerIncludePaths for KEIL toolchainDenis Shienkov2019-05-161-0/+1
| | | | | Change-Id: I3a70a4a1045444bf053ebf5ac7f32dbe72c827a5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Implement cpp.compilerDefinesByLanguage for KEIL toolchainDenis Shienkov2019-05-151-1/+2
| | | | | Change-Id: Id689c4e0290ba83e8755b6787601338a01af07c9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add KEIL ARM toolchain support for WindowsDenis Shienkov2019-02-151-0/+22
| | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the KEIL toolchain for the ARM processors family. The KEIL toolchain support only the Windows environment: * http://www.keil.com/support/docs/1456.htm To use it with Qt Creator, it is enough to add there a desired Kit with a custom KEIL C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: keil Tested with the KEIL uVision v5.23 on Windows using the STM32 NUCLEO-F767ZI development board. Change-Id: I93a30f38f9b0e31bf4d1e379a3bdc785e8474ecb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* bare-metal: Add KEIL 8051 toolchain support for WindowsDenis Shienkov2019-02-131-0/+227
This commit adds a basic support of the KEIL toolchain for the 8051 processors family. The KEIL toolchain support only the Windows environment: * http://www.keil.com/support/docs/1456.htm To use it with Qt Creator, it is enough to add there a desired Kit with a custom KEIL C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: keil Tested with the KEIL uVision v5.23 on Windows using the Cypress FX2 development kit examples. Change-Id: I2cf59b307762ab95c69bc22eb8989af9b68cd555 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>