aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* docker: update focal image to Qt 5.15.2 and Qbs 1.17.1Ivan Komissarov2021-02-161-3/+3
| | | | | | Change-Id: I363d99d15c5fe9cfc1320a579b48710f2a71a40f Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: fix -Wformat warningsIvan Komissarov2021-02-161-2/+2
| | | | | Change-Id: Ia4107e6afdd94df06b4957317881768f4259c9d2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Fix detection for Keil toolchainsDenis Shienkov2021-02-161-82/+28
| | | | | | | | | | | | | | | | | | | Previous implementation does not work if qbs is compiled with 64-bit compiler. The reason is the wrong path in the registry, because it differs for 32/64 bit applications. Besides, the search in the registry was difficult, it was done through the `Uninstall` section, with the parsing of the `tools.ini` file. But we can use an alternative search algorithm using the `HKLM/SOFTWARE` path instead, that simplifies the algorithm. This patch tested with the Qbs compiled with both 32/64 bit compilers. Change-Id: I87e9f62966482ba840b0aa92d4600be29b296384 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Test for array-like objects with instanceof ArrayRichard Weickelt2021-02-1514-17/+17
| | | | | | | | | | Array.isArray() seemed to work for arrays created in scripts as well as for QStringList and QVariantList created in C++ when using QtScript. QJSEngine is more strict (see the comments in QTBUG-45018). One way to work around that problem is to use instanceof Array instead. Change-Id: I0f1c8757a5ab2f82e26eff19a8b5ecf667bb04b1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GitHub actions: Enable dumping cores on MacIvan Komissarov2021-02-151-1/+10
| | | | | Change-Id: Ib83996b69d03d081830d63e25fca819bd4c47c29 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: fix install-qt.sh to support the qt5compat moduleIvan Komissarov2021-02-151-0/+1
| | | | | Change-Id: I2d2ba4ce54b4099b44c2f3124128ec87ac422e93 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix installation directory for the QtCreator componentIvan Komissarov2021-02-151-9/+16
| | | | | | | | | | We have several places (e.g. in docker files) that assume that QtCreator is installed into /opt/Qt/Tools/QtCreator This amends 7f1ee5c871699f89e7fdd741fcd1f0b2167a203b Change-Id: Ifb122c105b95acd18c6e938009fd87529791d16d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Get rid of product.moduleProperty() during project resolvingRichard Weickelt2021-02-141-1/+1
| | | | | | | | | | | Although not documented, it was possible to access module properties via product.moduleProperty("module", "property"). That is still possible in the QJS port of Qbs, but would complicate the implementation of Evaluator unnecessarily. After all it was only needed in a single place. It can still be used in rules. Change-Id: I40f374a57a6fefc85eb45250b472fe732b66f0b7 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Place isNotSystemRunPath in the correct scopeRichard Weickelt2021-02-141-4/+5
| | | | | | | | The function isNotSystemRunPath() was used outside of its definition scope. Although that was valid JavaScript, it was still confusing. Change-Id: I25269ce8356637d00ddc281696ae6828f9345488 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Do not rely on leaked context variablesRichard Weickelt2021-02-132-5/+5
| | | | | | | | | | | The current QtScript implementation seems to leak variables of the prepare script context to invoked JS functions. This will become an error in the JS port. Amends d3fa7fe. Change-Id: I5618efe7e1e8a19656f6a2e6a086267405dd69ec Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Avoid writing to the global objectRichard Weickelt2021-02-132-3/+3
| | | | | | | | Some variables were accidently created in the global object. This will become an error in the QJS port. Change-Id: Ifa4d929bb7a97af3e49de5c3d7d87924f9c3ad81 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Do not rely on leaked context variablesRichard Weickelt2021-02-132-2/+2
| | | | | | | | | The current QtScript implementation seems to leak variables of the prepare script context to invoked JS functions. This will become an error in the JS port. Change-Id: If4b43e6162b4c3ea1f1ec8f118474064dc9586c0 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add missing import statementsRichard Weickelt2021-02-134-1/+5
| | | | | | | | | The current QtScript implementation does not warn about missing import statements in some cases. Imported .js files should never inherit imports. This will become an error in the JS port. Change-Id: I880afabba64c0766063304c723242e242ac89b81 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Allow to overwrite path to Perl in scriptengine.qbsIvan Komissarov2021-02-121-1/+7
| | | | | | | Can be useful if perl is not in PATH e.g. on Windows Change-Id: Id3d245588fea5dd3ca2579f418f2e6fe43151994 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add RISC-V 64-bit architecture for GCC compiler to CIDenis Shienkov2021-02-123-2/+5
| | | | | Change-Id: Iff317ec5e4a06e9fc9ae4e0a20c6e55656af2855 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for RISC-V architecture for GCC toolchainDenis Shienkov2021-02-111-0/+5
| | | | | Change-Id: If2d249031a5fc1f1fdcdb0414d9cf43607505bf4 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* qt6: Do not use QVariant::Type as it was deprecatedIvan Komissarov2021-02-118-40/+40
| | | | | Change-Id: I0dad1ee403176a665e4e9dead2f94dd032e1d75b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: Do not use QVariant::type()Ivan Komissarov2021-02-1114-35/+35
| | | | | | | | | ...and use QVariant::userType() instead since type() method was deprecated (variant.metaType().id() or variant.typeId() or variant.userType() should be user instead). Change-Id: I00b93c5e010a0c7b733b3c6dfeae2d744be32ce1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* buildgraph: fix storing container sizesIvan Komissarov2021-02-103-3/+3
| | | | | | | | The type should match the one used in load() since in qt6 the type is not int anymore Change-Id: I0e7e402dec6f059279de933d5afd0c450cde8ddd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add new 'compiler-defines-by-language' testDenis Shienkov2021-02-106-0/+82
| | | | | | | | | This test is an adaptation of a similar existing test. A main difference it that this test intended only for a `bare-metal` toolchains where there may be no support for a C ++ compiler. Change-Id: I4ea023743a4940c96dd9abc96ffda8cd06385b0b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* qt6: explicitly register Transformer * and JavaScriptCommand * metatypesIvan Komissarov2021-02-101-0/+3
| | | | | | | Otherwise, Qt complains when emitting the signal Change-Id: I1840eff8c041ca21475658cb3113e81298b3a8a6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: fix Qt library version in bundledqt.qbsIvan Komissarov2021-02-101-1/+3
| | | | | | | Qt6 uses "A" version instead of "6" Change-Id: I1e424f0f62659b481545511c9ba5eec3b2f92892 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not assign file tags to files in bundledqt.qbsIvan Komissarov2021-02-101-0/+2
| | | | | | | Otherwise, Qbs tries to moc Qt headers Change-Id: I6d2c340f7e419688f1aed69aaaa7da563cf98f75 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: also install core5compat when using bundled QtIvan Komissarov2021-02-101-0/+5
| | | | | Change-Id: I249daeb8d4f12bf2dfe49ad354c1bef7dfa0cb59 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* doc: Add mention about missing `bare-metal` architecturesDenis Shienkov2021-02-094-3/+13
| | | | | | Change-Id: I68abceabdbc6acf776cc5b5b349ba44d73e4376a Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add '-nostdlib' flag for MSP430 GCC toolchainDenis Shienkov2021-02-091-1/+1
| | | | | | | | | | ... to pass the C++ tests. Because we don't use the linking with the standard libraries in a tests, otherwise linking will fails. Change-Id: Ibde09c384fb70626109b357144a7e27a1a6b6e5b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: do not use QHash in ModuleLoaderResultIvan Komissarov2021-02-084-9/+19
| | | | | | | | Otherwise, Qbs crashes in TestApi::multiplexing when inserting into this hash Change-Id: Idcb136e6f9af1036c7b725e67508b0b677a9cb20 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add XTENSA architecture for GCC compiler to CIDenis Shienkov2021-02-083-2/+6
| | | | | Change-Id: I810f6b6c263a1b5ade0ece35e57f6ad30b2864ed Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* qt6: fix crash in ItemReaderVisitorState::readFileIvan Komissarov2021-02-081-1/+1
| | | | | | | | | In qt6, QHash::operator[] invalidates the reference stored in ProcessingFlagManager. However, std::unordered_map guarantees the stability of references, so use it instead of QHash Change-Id: I771ee0fe8b0581407376f60b03c1624ab9eaa7b9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GiHib actions: increase test timeoutIvan Komissarov2021-02-082-11/+11
| | | | | Change-Id: I5f626276d20c9912bfc30ac7e392335479e057ce Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* protobufcpp: add linkLibraries option to disable modifiying linked libs + ↵Jan Blackquill2021-02-061-4/+15
| | | | | | | | | | include paths This allows one to use Qbs' support for protoc without causing libprotobuf/libgrpc to be linked automatically, which is useful for when you want to build libprotobuf/libgrpc as part of your project. Change-Id: Ia40ebf6d79682b4ed88631f0ea540eeb6aad0bff Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Add HCS08 architecture for SDCC compiler to CIDenis Shienkov2021-02-051-0/+2
| | | | | Change-Id: I04ad353b32f9816f05be24293ba0f64f1aea0e83 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Pass tests for ColdFire architecture for IAR toolchainDenis Shienkov2021-02-053-0/+26
| | | | | | Change-Id: I7ff8886cb14dee195a6d5af9173ca853f8455bed Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Pass tests for RISC-V architecture for IAR toolchainDenis Shienkov2021-02-053-0/+17
| | | | | Change-Id: I9a7a0239370ff3d309dc91868b2058cc6616149c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Derive test application and library from base productDenis Shienkov2021-02-053-228/+131
| | | | | | | | | | It makes sense to store platform-specific flags in one place, for example, in BareMetalProduct. And then to inherit the applications and the libraries from this common product. This solution minimizes the copy/paste errors and make a tests code easier to maintain. Change-Id: Iaf11be9d6f983e8ce542787d42e8b7ef050b1903 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for M32C architecture for IAR toolchainDenis Shienkov2021-02-053-0/+21
| | | | | Change-Id: I2112e6bdca36b07502b571841528bb2734f41da0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for RX architecture for IAR toolchainDenis Shienkov2021-02-052-0/+7
| | | | | Change-Id: Ibe06e30dd3ad88f11b0fab79bb718e7c9b9155b9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for HCS12 architecture for IAR toolchainDenis Shienkov2021-02-052-0/+9
| | | | | Change-Id: I94c678f2ef224abd6b751615f8d3e900deda5be8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for HCS08 architecture for IAR toolchainDenis Shienkov2021-02-043-0/+17
| | | | | Change-Id: I8a43dce0ef2731c4d181fe529f5bd4cf40ea12cf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Pass tests for HCS08 architecture for SDCC toolchainDenis Shienkov2021-02-042-0/+8
| | | | | Change-Id: I0fde96241231e3a4d46c2892daadf4036be173c4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add support for HCS08 architectures to SDCC toolchainDenis Shienkov2021-02-022-14/+23
| | | | | | | | | | This patch adds the HCS08 architectures, provided by Freescale Semiconductor: * https://en.wikipedia.org/wiki/Motorola_S08 Change-Id: I0a08c6433041eb8a00cb3705c5e65857188f4830 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Improve detection of IAR compiler includesDenis Shienkov2021-02-025-27/+71
| | | | | | | | | | | | | | | | | | The IAR compiler has an undocumented command line option `--IDE3`, which allows you to print a list of compiler include paths as: `$$TOOL_BEGIN $$VERSION "3" $$INC_BEGIN $$FILEPATH "<path\\to\\directory>" $$TOOL_END` Besides, the same approach is used in the IAR extension for the VSCode IDE. So we can use this approach to implement it the Qbs module as well. In addition, this commit contains an autotest to check the `cpp.compilerIncludePaths` property. Change-Id: I434dd630913e5afd6cba5b4e31e1021ee0c5fe31 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Return only existing SDCC compiler include pathsDenis Shienkov2021-02-011-1/+2
| | | | | | | | | | | | | | | | | | | For some architectures, the compiler may return nonexistent header paths. For example, for the `stm8` architecture, it returns the path: c:\Program Files (x86)\SDCC\bin\..\include\stm8 which is not present on the file system. This can be confusing intellisense for IDEs, and will also make it harder to write tests for `cpp.compilerIncludePaths` property. So, it makes sense to return only existing paths. Change-Id: Ibe7078485db900eba2e17710e5de0abeda28f645 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Handle cpp.prefixHeaders property in IAR assemblerDenis Shienkov2021-01-291-1/+10
| | | | | | | | | | | We need to pass the `--preinclude` option and to the assembler too in case the `cpp.prefixHeaders` is not empty. One caveat is that this option is not supported on all architectures and we need to handle it properly. Change-Id: I31eda38a8f400a0534a43d141ee64aef405fa683 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Handle cpp.endianness property in IAR assemblerDenis Shienkov2021-01-291-0/+5
| | | | | | | | | The IAR assembler for ARM and RX architectures allows you to specify a target endiannes parameter. So we need to handle this use case as well. Change-Id: Ifa6c237fb2d4fc7de361290edcaa491bb23e3165 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Improve JS code in IAR toolchain moduleDenis Shienkov2021-01-291-171/+265
| | | | | | | | | | | | | | | | | | | This patch is a small refactoring in the cpp module for IAR, containing the following changes: 1. Alphabetical sorting by architectures and compiler names has been performed. 2. Some common logical parts are divided into separate functions. 3. Improved logic for checking compilers for supported options depending on the architecture. Also, the command line options of toolchains have been rechecked for all supported architectures. Change-Id: I5d274240682cb16c073d146ce47541d10783738f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: Conditionnally depends on cpp remove old fixRaphaël Cotty2021-01-291-3/+9
| | | | | | | | | | Cpp module is not required when used in the aggregate in multi-arch mode. Only define "ANDROID_HAS_WSTRING" for Qt < 5.14.0 Change-Id: Ibb0ed6f23352466ec703c96488233eda1940daad Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Add support for HCS12 architectures to GCC toolchainDenis Shienkov2021-01-281-0/+2
| | | | | | | | | | This patch adds the HCS12 architectures, provided by Freescale Semiconductor: * https://en.wikipedia.org/wiki/Motorola_68HC12 Change-Id: If4e671f4d894f9c305b9fda2c4412c19b971ee3d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add support for HCS08 architectures to IAR toolchainDenis Shienkov2021-01-263-7/+26
| | | | | | | | | | This patch adds the HCS08 architectures, provided by Freescale Semiconductor: * https://en.wikipedia.org/wiki/Motorola_S08 Change-Id: Idd668e30bfeb69e588b93b15131e741924b66f40 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Simplify blackbox testRaphaël Cotty2021-01-211-5/+0
| | | | | | | | Remove some of the blackbox tests that were redundant in order to avoid timeout cancellation on github. Change-Id: Icc01cd1509c499877e06ccb62afde1b8837faa7d Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>