aboutsummaryrefslogtreecommitdiffstats
path: root/share
Commit message (Collapse)AuthorAgeFilesLines
* baremetal: Introduce new cpp::generate{Assembler|Compiler}ListingFilesDenis Shienkov2019-10-177-39/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge 1.14 into masterChristian Kandeler2019-10-161-2/+2
|\ | | | | | | Change-Id: I7ee0af7942b15e889bd9dec35adbf43f9f17c839
| * Qt support: Do not put all the QML plugin list content on one lineChristian Kandeler2019-10-141-1/+1
| | | | | | | | | | | | | | | | | | Add a newline after each PRL file entry. Otherwise, a line can get longer than 16K characters, which breaks the MSVC linker. Fixes: QBS-1465 Change-Id: Idb1e39aee8c3ae3ad6ea844723253e7d228bd7de Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Qt support: Fix reading plugin prl filesChristian Kandeler2019-10-141-1/+1
| | | | | | | | | | | | | | Amends 8c290c624d. Change-Id: I9b08b921a46ac56239dd7934f8c3aa9addf70d52 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | baremetal: Show full details of KEIL A51 errorsDenis Shienkov2019-10-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A problem is that a first lines of the following errors: 0000 24 ljmp usb_stub_isr ; (00) Setup data available. *** ________________________________________^ *** ERROR #A45 IN 24 (autovec_keil.a51, LINE 24): UNDEFINED SYMBOL 002C 46 ljmp usb_stub_isr ; (2C) EP1 out. *** _____________________________________^ *** ERROR #A45 IN 46 (autovec_keil.a51, LINE 46): UNDEFINED SYMBOL are ignored, becaue it does not match with the expected token. It does not expect that a line starts with a four hexadecimal letters. We can fix it using the regexp, like "^([0-9A-F]{4})" which is covered this use-case. Fixes: QBS-1503 Change-Id: I19c535ac1aa12bd3e8ffa33ad6c2abfa42d66dff Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Enable errors printing for KEIL A51 assemblerDenis Shienkov2019-10-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | An errors printing for A51 assembler are disabled by default: http://www.keil.com/support/man/docs/a51/a51_errorprint.htm so, we need to enable it explicitly. Change-Id: I22cb268aa7c884daf58b86424ddfbce81dbbe97b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve artifact creation code for IAR EW moduleDenis Shienkov2019-10-112-50/+45
| | | | | | | | | | | | | | ... to move this code to a separate helper functions. Change-Id: I56678be39df931105b04bec1340aa7ba09e523d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Use 'sdar' utility to create the library on SDCCDenis Shienkov2019-10-111-2/+2
| | | | | | | | | | | | | | | | | | The 'sdcclib' utility is deprecated since SDCC v2.9.0 (which was released in 2010 year). So, we need to use the 'sdar' utility instead. Change-Id: I6a9f7f4d4d93ad3a2f63b75827fce84a011945d2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Don't interpret BL51 linker warnings as errorsDenis Shienkov2019-10-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BL51 linker (from Keil product for 8051 architecture) ends with the exit code '1' in case any linking warning occurred. It is not an error, because at errors the linker ends with the exit code '2'. So, we need just to increase the value of the linking command 'maxExitCode' property from 0 to 1, similar to the compiler command handling. Change-Id: I4917d08ca3407c8046879780e4c8696fdef7736a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Fix merging issues from 1.14 to masterDenis Shienkov2019-10-104-46/+9
| | | | | | | | | | Change-Id: Id859d95ddfb776ec534ba0e46d989bb2ba30770a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.14 into masterChristian Kandeler2019-10-086-125/+190
|\| | | | | | | Change-Id: Ief78bb9d82344e31135faca42a422c23951e87ec
| * Darwin: Adapt to Xcode 11Christian Kandeler2019-10-042-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - xcspec files can now refer to variables in variable names, as in the following line: CONTENTS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH_SHALLOW_BUNDLE_$ (SHALLOW_BUNDLE)) - Some new environment variables have been introduced and need to be set when running our probes; e.g. "SWIFT_PLATFORM_TARGET_PREFIX". - The symbolLinkMode autotest made an invalid assumption about order of output. Change-Id: Ic845c2c4a8eafb4ece0f0bb04e6e492681a02979 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * baremetal: Add missed output artifacts for SDCC compilerDenis Shienkov2019-10-012-61/+92
| | | | | | | | | | | | | | | | | | | | Compiler produces a lot of additional ".adb", ".lst", ".asm", ".sym", ".rst", ".lk", ".mem" files. This files should be also processed in SDCC module (e.g. it allows to remove this files by 'clean' command). Change-Id: Ib07dbe63ab27e263d67025ce5cd40a967910d354 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * baremetal: Fix missed linker artifact for C51 compilerDenis Shienkov2019-09-302-55/+50
| | | | | | | | | | | | | | | | | | | | | | 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>
| * baremetal: Handle missed 'driverLinkerFlags' property for SDCCDenis Shienkov2019-09-301-1/+3
| | | | | | | | | | Change-Id: Ibd58a4bdf6c05af79c0d847ccaacaec5381b35d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * baremetal: Fix assembler command for SDCC compilerv1.14.0Denis Shienkov2019-09-271-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to use the assembler command in the followiong format: Usage: [-Options] outfile file1 [file2 file3 ...] Besides, we have added an additional assembler option '-l' to explicitly generate of a listing file; without of this option the linking fails. Change-Id: I0240b354f44edac94e3e4305fe6b1a4c34ca4bf9 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Refactor the map file generation propertyDenis Shienkov2019-10-017-29/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge 1.14 into masterChristian Kandeler2019-09-262-1/+4
|\| | | | | | | Change-Id: Ie432987ee2d3ccaa6e881b1b01f142185eddabd8
| * Darwin: More filtering in SDK directoryChristian Kandeler2019-09-261-0/+3
| | | | | | | | | | | | | | | | Do not try to detect an SDK from a driver kit directory. Fixes: QBS-1495 Change-Id: I05ef565d599e83dcc02d0d18e656fabfd0aad943 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Fix Qt module-provider for Qt5.13.1 and beyondRichard Weickelt2019-09-081-1/+1
| | | | | | | | | | | | Change-Id: I6eef8b28a741c417dc54a33577a2ad4b43def767 Fixes: QBS-1492 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Clean up version treatment in cpp moduleRichard Weickelt2019-08-232-21/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The handling of version numbers in the cpp module was overly complicated and too restrictive. Version numbers that are valid according to SemVer (for instance 1.2.3-beta+47) were not accepted although being valid. This patch allows the usage of any version number as long as it starts with x[.y[.z]]. It also simplifies version number handling in the cpp module. Task-number: QBS-1486 Change-Id: I2790f8a80bd78bf549f5d46c0748f88c788addec Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Add new MSP430 architecture to GCC toolchainDenis Shienkov2019-08-221-0/+2
| | | | | | | | | | | | Change-Id: I4747e3e99015fef93cc2c072a49c787d8c42811f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve JS code in SDCC module a bitDenis Shienkov2019-08-193-72/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | * Move an architecture-specific code to a functions in the sdcc.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 cLanguageVersion property. Change-Id: Id787b4455847ac5dde4a926d850e7c076edc34d2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve JS code in KEIL module a bitDenis Shienkov2019-08-193-176/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | baremetal: Fix IAR assembler file tagsDenis Shienkov2019-08-191-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The IAR EW IDE provides the following file patterns [*.s*, *.msa, *.asm] for the assembler files. So, we will use same patterns too. But, instead of '*.s*' pattern we will use a set of the following patterns: '*.s' - for ARM and/or STM8 architectures. '*.s43' - for MSP430 architecture. '*.s51' - for 8051 architecture. '*.s90' - for AVR architecture. Change-Id: I5aad9ee7a81325e65be18d0ae0e0c1c9a9f6cf27 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Improve JS code in IAR module a bitDenis Shienkov2019-08-193-291/+324
| | | | | | | | | | | | | | | | | | | | | | | | * Move an architecture-specific code to a functions in the iar.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> Change-Id: Ibfdc536f78d1145f6e1190da33f67b0fb7063f05 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* | baremetal: Add IAR MSP430 toolchain supportDenis Shienkov2019-08-153-5/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the MSP430 processors family. To use it with Qt Creator, it is enough to add there a desired Kit with a custom IAR C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: iar Tested with EW for MSP430 v7.12.4 on Windows using the simple projects samples which come with the default IAR installer. Change-Id: I6a31da1823fd08ba7bf41a315ac20e98f5ba77f6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | C++: Add support for clang on WindowsChristian Kandeler2019-08-148-142/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | This is about clang in "mingw mode", not clang-cl. When targeting Windows, clang is a lot like mingw, so factor out the common parts into a new base module. Testing uncovered a number of invalid assumptions in our autotests, which are also fixed in this patch. In addition, minor adjustments had to be made to the Qt.core module and to the qbscore lib. Change-Id: I73085dc62a65e2a9d0397cf234c8641989246f22 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | baremetal: Fix detection of C++ language option for IAREW STM8Denis Shienkov2019-08-141-1/+1
| | | | | | | | | | | | Change-Id: I340c66090f0934eb2bc6dccdd0c2dbe1b1e1db2f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Define jobPool for AutotestRunnerJochen Ulrich2019-08-111-0/+2
| | | | | | | | | | Change-Id: Ia90ea48e414fe9c4041f4bfc6961638b8a49fec4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add command and AutotestRunner timeoutJochen Ulrich2019-08-012-0/+7
| | | | | | | | | | | | | | Task-number: QBS-1454 Change-Id: I6e2514d10cca0cba0a14456ecd2abfb495539ee4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | bare-metal: Fix SDCC toolchain moduleDenis Shienkov2019-07-292-24/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | * SDCC support only the '.lib' library suffix. * SDCC support only the '.rel' object suffix. * SDCC produce the 'ihx' default image format. Besides, SDCC expect same target flag for both compiler and linker. We automatically take this flag from the cpp.architecture property. Change-Id: If7eac1d5ddc0c571d3c6a870f46f78d61d699f12 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 1.14 into masterChristian Kandeler2019-07-265-9/+23
|\| | | | | | | Change-Id: Ic632b377bf10e2b320956011e9a7d4eea99f560b
| * baremetal: Fix detection of C++ language option for IARDenis Shienkov2019-07-241-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... which is used at dumping of predefined macros and a header paths. Reason is that for the different architectures the IAR use different C++ language options: * for ARM: --c++ * for AVR or 8051: --ec++ Change-Id: Ic2b4d50e9e2a978a5cbc69ed5353d5953e83c85d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Android: Fix binutils pathChristian Kandeler2019-07-161-1/+1
| | | | | | | | | | | | | | | | Amends 65cb0d3e2d. Fixes: QBS-1459 Change-Id: I771cc179bcc996559d76c85d785780a1b044812b Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| * Set minimumTvosVersion to "6.0" by defaultIvan Komissarov2019-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes (at least) two compile errors: - clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later) - ld: library not found for -ldylib1.o The dylib1 is only present on macOS and not present in recent tvOS/iOS SDKs, clang tries to link to it if deployment target is less or equal to "5.0". Change-Id: Ie77a514bb2661312823df054f0dfca07d69e3059 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * ios: Move cpp.entryPoint from Qt.Core to Qt.guiIvan Komissarov2019-07-102-4/+6
| | | | | | | | | | | | | | | | | | It seems, that console ios apps should not try to do a _qt_main_wrapper trick since there's no platform plugin linked to the app and linker fails to find wrapper. Change-Id: I607db658d5e25d6029626b4a7efb46b2e228ab52 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Add hasLibrary property to Qt.coreRichard Weickelt2019-07-091-0/+1
| | | | | | | | | | | | | | | | This allows us to treat Qt.core similar to other Qt modules based upon QtModule.qbs when bundling Qt libraries together with an application. Change-Id: I9ae54ec40c3fb7506181afbd437f4e2f03b02e41 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Set cpp.minimumIosVersion to "6.0" by defaultIvan Komissarov2019-07-051-1/+1
| | | | | | | | | | | | | | | | | | This is required because earlier iOS versions are broken in recent XCode installations (at least, for XCode >= 7.0.0) Change-Id: Ib55e2eafcf26357695ab057da8109921518b7fea Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add IAR STM8 toolchain supportDenis Shienkov2019-07-263-6/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a basic support of the IAR Embedded Workbench toolchain for the STM8 processors family. To use it with Qt Creator, it is enough to add there a desired Kit with a custom IAR C/C++ compiler, and then set the following in the Kit's Qbs profile settings: * Key: qbs.toolchainType * Value: iar Tested with EW for STM8 v3.11.1 on Windows using the simple projects samples which come with the default IAR installer. Change-Id: Ibc116ceb33b7df49c3241d26fa97136255ba06dd Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | bare-metal: Add STM8 architecture for SDCC toolchainDenis Shienkov2019-07-262-3/+32
|/ | | | | | | | | | | | | | | | Previous implementation of SDCC toolchain based on an assumption, that the default target architecture always is MCS51. But, the SDCC compiler support multiple architectures: * http://sdcc.sourceforge.net/ So, it is makes sense to add support and for STM8 architecture to the SDCC toolchain. Change-Id: Ibbd32764fe2fac3e45fda93ac3d903c3619efb18 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Fix typo in option to enable C++ language for IARDenis Shienkov2019-07-031-2/+2
| | | | | | | | | We need to use the '--c++' option instead of '--ec++' to dump the macroses and headers for the C++ language. Change-Id: I545e661babc1ffa84ef189d28b2dd59be3cef29e Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add support for gRPC to the protobuf.cpp moduleIvan Komissarov2019-06-272-9/+100
| | | | | | | | This implements support for the gRPC framework: https://www.grpc.io Change-Id: Ia85461b9618e73827114c137fce8615e5a8139e3 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Assume that libc++ is present on iOS if cpp.minimumIosVersion is not setIvan Komissarov2019-06-261-2/+2
| | | | | | | | Otherwise, tests fail to locate old c++ library on recent Macs. Change-Id: I6ff5ceb0753dea73a5da1c70cfeb97b848cb7948 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add PathProbe::candidateFilter propertyIvan Komissarov2019-06-265-13/+15
| | | | | | | | | | | | | | | This property can be used to check if candidate conforms with some conditions. For example, an architecture of a shared library candidate should match the current qbs.architecture. Also, this will allow to implement support for the "text based stub libraries" (yaml files that point to a real library in a system) on macOS - instead of checking real file architecture, it should be read from .tbd file Change-Id: Ie84a3e70d883dec949440358e2f08213a8501982 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Allow PathProbe to search multiple filesIvan Komissarov2019-06-255-54/+119
| | | | | | Change-Id: I6ae2dd130cbafb03e51bc6e8e8a3e262d6d45fc6 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Fix build with NDKr20BogDan Vatra2019-06-171-1/+1
| | | | | | | | In NDK r20 clang adds -lc++ library automatically which leads to link fails. Change-Id: Ifa5ae1f4be7d8a93146ef08a5dc312596dd19147 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge "Merge 1.13 into master"The Qt Project2019-06-171-1/+1
|\
| * Merge 1.13 into masterChristian Kandeler2019-06-141-1/+1
| |\ | | | | | | | | | Change-Id: Idab53d6bd9b6f2841e30d4a31f53ac53a05c2f09