aboutsummaryrefslogtreecommitdiffstats
path: root/share
Commit message (Collapse)AuthorAgeFilesLines
* baremetal: Implement validate script in CPP toolchain modulesDenis Shienkov2021-06-0710-79/+33
| | | | | | | | It makes sense to check the architecture inside of the 'validate' script in the module; and then we can throw an error only once. Change-Id: I17821404ad854e38bafc70f1ca6904c33c48147f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* baremetal: Add missing inputsFromDependencies for COSMIC compilerDenis Shienkov2021-06-041-0/+2
| | | | | Change-Id: I13053090dbd6eb5242d32e1dabd8799f25d8f133 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Avoid copy&pasting code in gcc.js/darwin.jsIvan Komissarov2021-06-032-56/+61
| | | | | | | | Copy&paste leaded to 2 bugs in separating debug info, thus it makes sense to avoid code duplication. Change-Id: I031b9b7da937d35014f2c1c0a804ca13111dad12 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '1.19' into masterIvan Komissarov2021-06-025-8/+15
|\ | | | | | | Change-Id: If67803997308ac02ce75daa2f22f12e3426079c8
| * msvc: fix system include support with MSVC >= 19.29.30037Ivan Komissarov2021-06-011-0/+4
| | | | | | | | | | | | | | | | Otherwise, compiler fails with "ERROR: cl : Command line warning D9007 : '/external:I' requires '/external:W'; option ignored" Change-Id: I45b01175e5d868370368d31dafa19d0d455f267c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * darwin: do not strip debug symbols when dsyms are built-inIvan Komissarov2021-05-312-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not need to strip debugging symbols (strip -S) when compiling with 'cpp.separateDebugInformation: false' on Darwin platforms. At least, gcc does not do that when building non-aggregated products, it only strips symbols when separate debug info is enabled. Also, stip symbols from all primary outputs (aka build variants), not only from the first one (which happens to be "release". This seems to be correct since we separate debug info from all build variants Fixes: QBS-1647 Change-Id: I7a0c0883c6b7f74fa4a2c7d4b7bdadc9ee23923a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Use qbs.hostOS instead of qbs.targetOS in qml.jsIvan Komissarov2021-05-312-3/+3
| | | | | | | | | | | | | | | | | | | | | | ... to check for the dreaded Windows limit for maximum command line length. Amends bf0a3750e0845eeba3814a4f16c20d112181e280. Task-number: QBS-1633 Change-Id: I3735d4f327d440a261666f5722a5715b9a31b320 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | baremetal: Use isMcs{51|251}Architecture() functions moreDenis Shienkov2021-06-011-9/+9
| | | | | | | | | | Change-Id: Ife56097ac36a406549e480537161d71a825d87ea Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Long live COSMIC toolchain for COLDFIRE architectureDenis Shienkov2021-05-311-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Also the COSMIC toolchain has been added to the Github CI. Fixes: QBS-1648 Change-Id: I39dfeef1c5696e69bed8969890cf4f8fdb3c2741 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Long live COSMIC toolchain for HCS12 architectureDenis Shienkov2021-05-301-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Also the COSMIC toolchain has been added to the Github CI. Fixes: QBS-1640 Change-Id: I7ab0c8099437fce962632ff87177e37fd04f82d2 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Long live COSMIC toolchain for HCS08 architectureDenis Shienkov2021-05-291-6/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Also the COSMIC toolchain has been added to the Github CI. Fixes: QBS-1641 Change-Id: I755fcd3b2a89d0d40fda8b7f9da3d72ee1918df5 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Long live COSMIC toolchain for STM8 architectureDenis Shienkov2021-05-281-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Also the COSMIC toolchain has been added to the Github CI. Fixes: QBS-1639 Change-Id: Iffba0bc550c5d168fb453c7a325b2c9be06d4195 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Long live COSMIC toolchain for STM32 ARM architectureDenis Shienkov2021-05-283-0/+708
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Cosmic Software compiler for the bare metal platforms: * https://www.cosmicsoftware.com/download.php Note that this compiler only works on Windows host platforms. Right now this patch implements support for ARM architecture for STM32 microcontrollers. But in the future it is simple to extend it and for other architectures (e.g. for STM8, HC08 and so on). Also the COSMIC toolchain has been added to the Github CI. Change-Id: Iabdfd61cc427155117730db46e067004ceb07102 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Android: Add option to use dex compiler d8 instead of dxRaphael Cotty2021-05-263-7/+66
| | | | | | | | | | | | | | | | d8 dex compiler was introduced in Build Tools 28.0.2 to replace dx. It is the default compiler used by gradle since version 4.4 Change-Id: I603c61f6f1a151f3c5be78385bf9648929e7d81b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Use separate functions for repetitive actionsDenis Shienkov2021-05-2512-452/+431
| | | | | | | | | | | | | | | | | | It makes sense to minimize the copy-paste errors by moving the repetitive code into the separate functions to the cpp.js file. This will simplify the code and improve the maintenance. Change-Id: Id5a2914ff28619553b855cc6f09810ad370c408c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Android: Remove Ministro supportRaphael Cotty2021-05-241-34/+27
| | | | | | | | | | | | | | Latest Qt with Ministro is 5.7. So let's remove it form Qbs. Change-Id: Iee03c06c4c2e5c806dc99025a5bf2c200894ec60 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Move cpp-specific JS functions to cpp.js fileDenis Shienkov2021-05-199-174/+178
| | | | | | | | | | | | | | | | | | Previous commit 79b9b02 added these functions to the ModUtils module, but seems a best place for these functions is cpp.js file. Change-Id: Id89b88e1865d003c1c7811220ed01f6d6becfba3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Share generation of generic lists of tags and artifactsDenis Shienkov2021-05-147-395/+179
| | | | | | | | | | | | | | | | | | | | | | It makes sense to put in separate functions the repeating code for generating a list of tags and artifacts for compilation and linking. The generic code has been moved into the ModUtils module, which simplifies maintenance and minimizes copy-paste errors. Change-Id: I28b8e5467cf6a6764cbe7b1b7b68797b1d6ec1f4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Replace "product" variable by "exportingProduct" in Export itemsRaphael Cotty2021-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | "product" variable in an Export item will point to the "importingProduct" in 1.21. This patch prepares the change by replacing "product" by "importingProduct" when necessary. Task-number: QBS-1576 Change-Id: I215d46484754e76771039a750dc4beb33d8a0c9c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix conditionally generation for some artifacts and tagsDenis Shienkov2021-05-068-83/+157
| | | | | | | | | | | | | | | | | | | | | | | | We need to generate a list of file tags and artifacts taking into account the dependent properties from the product. For example, we should only build tags for generating linker files if the generateLinkerMapFile property has been set. Change-Id: I286c566ffe119eebf24b60113dda65403f7af3dd Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge branch '1.19' into masterIvan Komissarov2021-05-054-32/+74
|\| | | | | | | Change-Id: Id2691bd6a49ca6c2886cf5f460351e3d1daad9e6
| * Fix reading Xcode 12.5 specsv1.19.0Ivan Komissarov2021-05-033-31/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Xcode 12.5, common specs for darwin platforms were moved to "Darwin Package/Product Types.xcspec" in the different folder. However, the old configs are still present, so we need to merge info from both variants. Also, allow to use undefined variables in .xcspec files - since 12.5, this is a valid use-case. Also, implement the "default=" variable formatter used as a fallback when variable is not set. Fixes: QBS-1644 Change-Id: I9a55c5d511cbb01f30219478ee9f3b85763a08d5 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * codesign: do not use signtool for mingw toolchainIvan Komissarov2021-04-261-1/+3
| | | | | | | | | | Change-Id: Ic6d3df6210c1af174e6caa8ba46e365e42f79273 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Qt Support: Consider "external" modulesChristian Kandeler2021-05-031-7/+16
| | | | | | | | | | | | | | | | | | ... in the module provider. The mkspecs/modules directory can contain third-party modules, e.g. from KDE. Change-Id: I5c0bc789d748299c3542c8f9814bdb1035d43e68 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Pull in the Xcode build specs from Xcode 12.4Ivan Komissarov2021-05-032-1002/+1286
| | | | | | | | | | | | | | Current version is quite old, from Xcode 9.2 Change-Id: I1b8adffec71648a871b1eb03aabe1c580bbdb828 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge branch '1.19' into masterIvan Komissarov2021-04-2422-114/+575
|\| | | | | | | Change-Id: Ic6087168a1d93c2a2b46de825f5c3b9655634e8e
| * codesign: Long live `signtool` signing on WindowsDenis Shienkov2021-04-236-7/+245
| | | | | | | | | | | | Change-Id: I320cd1a1f3d8a1eed11d1c70007214f19a109b6e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * Android: Compensate Qt issue in network dependencies for 5.15.0 < Qt < 5.15.3Raphael Cotty2021-04-201-3/+77
| | | | | | | | | | | | | | | | | | Because of QTBUG-87288 the Qt5Network_ARCH-android-dependencies.xml is not properly generated. The bug is only corrected in Qt 5.13. This patch automatically updates the android manifest for version prior to 5.15.3. Change-Id: I0e7ea7f316f8af2d6c7b05340d9db3a72ba0110c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * Allow to specify windowsSdkVersionIvan Komissarov2021-04-195-4/+22
| | | | | | | | | | | | | | | | | | Previously, it was not possible to use older windows SDK version. Fix that by introducing the new property that is passed to vcvarsall.bat Task-number: QBS-1498 Change-Id: Ic526eabb8ff82ddd85c93e90fd20421595a121f4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Fix setting PATH on Windows when invoking QbsIvan Komissarov2021-04-161-3/+2
| | | | | | | | | | | | | | | | | | The original approach did not work when using NMake or MinGW Makefiles (but worked with Ninja) Change-Id: I1bfdb213b3007b100bb4cdcdbe4deb3935b6e266 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Qt support: Fix possible command line length issue with qmlimportscannerChristian Kandeler2021-04-122-5/+22
| | | | | | | | | | | | | | | | | | | | When there's a lot of QML files, we can hit the dreaded Windows limit for maximum command line length. Detect this condition and call the tool repeatedly if necessary. Fixes: QBS-1633 Change-Id: I20d123d6184eab08c5fa280a7c4811a753275f1f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * baremetal: Fix generation of compiler listing filesDenis Shienkov2021-04-121-17/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... with custom extension for SDCC compiler. The SDCC compiler always generates the listing files in the format of 'module.c.lst', and there is no way to disable a generation, or to specify a different name for the listing file. In addition, we cannot change or delete the generated listing file until the linking is complete (this is such a feature of the SDCC compiler). So, to turn off the listing file generation, or to specify a custom listing file extension, we need to do the following extra steps: 1. If the custom cpp.compilerListingSuffix property is set, then we need to make a copy of the generated listing file after the compilation completes. And then to delete the all listing files with the '*.lst' extension after the linking completes. 2. If the cpp.generateCompilerListingFiles property is disabled, then we need to remove the all generated listing files with the '*.lst' extension after the linking completes. Change-Id: Ia235f7e2ebf88695e4648fb894624c7420968079 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * baremetal: Fix generation compiler listing using ARMCC compilerDenis Shienkov2021-04-081-15/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ARMCC compiler has no options for specifying the name of the output listing file; it only has an options for specifying an output directory. In addition, the generated listing files are in truncated format, e.g. instead of the 'module.{c|cpp}.lst' file will be generated the 'module.lst' file. This behavior complicates the writing of unit tests, and also complicates the implementation if the user wants to change the cpp.compilerListingSuffix property. A workaround is to post-process the compiler listing files after they are generated. In this case, we only need to rename the generated compiler listing file to the desired one. Change-Id: I89c81896711b90b146a94c35d2ec75e296824752 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * baremetal: Move post linker commands to separate functions for SDCCDenis Shienkov2021-04-081-53/+72
| | | | | | | | | | | | | | | | | | It makes sense to move an additional post-build linker commands (that delete or change the linker map files, delete the listing files) into separate functions. Change-Id: I636347a9417f76f3f3dcfa000518437721357431 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Android: Fix aapt compiling command on WindowsMax Bespalov2021-04-071-1/+2
| | | | | | | | | | | | | | | | | | | | When building appt2 package on windows aapt expects to see paths with windows separators. If path isn't converted you get "bad resource path" error. https://android.googlesource.com/platform/frameworks/base/+/9ba47d8/tools/aapt2/compile/Compile.cpp#59 Change-Id: Iabacb020920310533b034138e47d1839b845573a Reviewed-by: Raphaël Cotty <raphael.cotty@gmail.com> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * Avoid using unicode characters in apple.qbsIvan Komissarov2021-04-061-7/+7
| | | | | | | | | | | | | | | | Some editors struggle with them Change-Id: I61672b6ca83facd7a2b2bf2fa763245aee94bce5 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| * Share cpp::{assembler|compiler}ListingSuffix propertiesDenis Shienkov2021-04-068-22/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes sense to add the cpp.assemblerListingSuffix and the cpp.compilerListingSuffix properties to the base CppModule due the following reasons: 1. It is possible that the user wants to change the extension for the generated listing files, which makes working with Qbs more flexible. 2. It will be easier to write an autotests that check the generation of the listing files for a bare metal platforms, where listing files can have various extensions such as ".lst", ".ls", and so forth. Change-Id: I9989288bff0659dd3e8b7a443d0354bb78475270 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * baremetal: Improve linkerMapFile() testDenis Shienkov2021-04-051-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now we can use the cpp.linkerMapSuffix property to find out the currently used linker map suffix. Also we can set a custom cpp.linkerMapSuffix value to make sure that this applies to the module. In addition, the generation of a custom linker map file for SDCC toolchain has been fixed. Change-Id: I8798cd6bea0ab6b5ea9728400827b8c98b11ba7b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| * baremetal: Pass externalStaticLibraries() test for KEIL C51/C251/C166Denis Shienkov2021-04-051-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | Toolchains C51, C251, C166 do not support configuring library search paths to link. They support linking with libraries specified with full absolute paths to them. To work around this we supplement the absolute library paths using the cpp.libraryPaths property, if the library is specified without an absolute or relative path. Change-Id: Ic11fd8b87356b3a07ba5fd5c9763c8df39d0d4ac Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Android: Correct qt6 testRaphael Cotty2021-04-061-2/+4
| | | | | | | | | | Change-Id: I1f05ae51f30f0158cb3dec6ce189d96f52987c7a Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Android: Change default Android Asset Packaging Tool from aapt to aapt2Raphael Cotty2021-04-061-1/+1
|/ | | | | | | | | | aapt2 was introduced in Build Tools since 26.0.2 and replaced aapt in gradle since version 3.0.0. Since Android.sdk now requires Build Tool version 24.0.3 it is possible to default to aapt2. Change-Id: Ia6ec88267ca58413592d6eadde73422311f34d74 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Share cpp::linkerMapSuffix propertyDenis Shienkov2021-04-017-9/+9
| | | | | | | | | | | | | | | | It makes sense to add the cpp.linkerMapSuffix property to the base CppModule due the following reasons: 1. It is possible that the user wants to change the extension for the generated map files, which makes working with Qbs more flexible. 2. It will be easier to write an autotests that check the generation of the map files for a bare metal platforms, where object files can have various extensions such as ".map", ".m51", ".m66", and so forth. Change-Id: I1e5e3b39bf84fddfe8c06f2db9d3936c6a3ff027 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Code signing moduleRaphaël Cotty2021-04-014-103/+210
| | | | | | | | | | | | | | Android.sdk was already signing the apk package but it was using hardcoded debug key and could only be used to run the application locally. The signing part of the android apk/aab package generation is now in the new codesign module. By default the same debug key is used. But it is now also possible to configure a different key. Task-number: QBS-899 Change-Id: I49c54a4d55578c48363805e927392b3a468805f0 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Add support for ndk 22.1.7171670Raphael Cotty2021-03-312-41/+35
| | | | | | | | | | | | Android ndk 19 introduced a new layout for the platforms and sysroot directory. They are merged into the toolchain directory. Android ndk 22 removed the deprecated platforms and sysroot. Since the minimum required version of Android.ndk is 19 this patch switches Qbs to the new layout. Fixes: QBS-1637 Change-Id: Ie69d305ba77ac1689205e2fb2fd3414a3bada2bd Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Fix installing artifacts when multiplexingIvan Komissarov2021-03-313-5/+10
| | | | | Change-Id: Ice07b4b6cc918bd27e13b66c3c892a9be482a482 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Don't use Windows separators for KEIL toolchainsDenis Shienkov2021-03-311-32/+16
| | | | | | | | | We don't need to use the Windows path separators for the C51, C251 and C166 toolchains. These delimiters only complicate the code maintenance. Change-Id: Id87fd11259a1a1456a28e755eefa7e014b7f34d6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Fix accessing binaries from libexecIvan Komissarov2021-03-306-7/+33
| | | | | | | | | Starting from Qt 6.1, some binaries were moved to libexec/ directory from bin/ (e.g. moc, rcc, uic). Fixes: QBS-1636 Change-Id: Iaa329773a3ffcea5f09c0663dd4159d839980525 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* codesign: do not sign intermediate products when multiplexingIvan Komissarov2021-03-303-4/+17
| | | | | | | We should only sign the resulting binary during the lipo step. Change-Id: If4d508bcdf347bf2fc68d345ed8d5913a7457f8d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge "Merge branch '1.18' into master"The Qt Project2021-03-302-26/+40
|\
| * Merge branch '1.18' into masterIvan Komissarov2021-03-182-26/+40
| |\ | | | | | | | | | Change-Id: If4dfeed28c475b8d0db13b5a39a0d6752b2a5052