aboutsummaryrefslogtreecommitdiffstats
path: root/share
Commit message (Collapse)AuthorAgeFilesLines
* Qt support: Understand QT_INSTALL_PREFIX in prl filesChristian Kandeler2021-08-161-0/+1
| | | | | | | | This variable appears to be used these days (observed e.g. in Qt 6.2 for iOS). Change-Id: I5ec17a0b80e59d9a27a15722ea01c24d6d569207 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* MSVC: Understand "c++20" as language versionChristian Kandeler2021-08-061-1/+1
| | | | | | | | Otherwise, this value will not result in the /std:c++latest flag. Task-number: QBS-1656 Change-Id: I26c077e8200c2a3aff865327cb6c0569f7fdbaab Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Remove `import qbs` from all project filesDenis Shienkov2021-08-0420-21/+0
| | | | | | | | | | | | | | ... because we don't need in this inclusion at all. But for some cases it is impossible to remove that inclusions (and even to move on next lines) because then the some tests are failed by unknown reason. For those tests were added the following comments on the inclusion lines: `// FIXME: Don't remove this import because then the test fails!` Change-Id: I9153fd0e38b94af08168e499ee46a23889ee4d73 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* msvc: fix passing /Zc:__cplusplus flagIvan Komissarov2021-08-033-0/+19
| | | | | | | | | It is mandatory to pass /Zc:__cplusplus when building with Qt 6.2 and MSVC. Fixes: QBS-1655 Change-Id: I27d928a568d0ac2075ce3f77f4142e20342be358 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix typo in MSVC toolchain when handling cpp.linkerWrapper propertyDenis Shienkov2021-07-311-2/+2
| | | | | | Fixes: QBS-1653 Change-Id: Ide8e3b75b86ef5bf2018d1cf962e7429796e59e4 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: fix link with static stlRaphael Cotty2021-07-301-0/+1
| | | | | | | | | | Commit e7f204c4b82475f39c3f5a3870a7393857b1a29a removed assignation of staticLibraries with staticStlFilePath which made impossible to link with static stl. Fixes: QBS-1654 Change-Id: I83a176918d423a371741a97b4c48c0f6eda03138 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Merge branch '1.19' into 1.20Ivan Komissarov2021-07-273-17/+35
|\ | | | | | | Change-Id: I2c7c200d4b0057bf7115306d000c13e60d2e8bd2
| * baremetal: Revert usage of toWindowsSeparators() for KEIL C51/251/166v1.19.2Denis Shienkov2021-06-281-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | Previous commit 9e5ef99 introduces regression where the non Windows path separators does not work in some cases, that lead to the compilation errors (although CI tests are succeed). This strange behavior seems related to the old engine of these toolchains. Thus, we need to use the Windows path separators again, besides everywhere in the KEIL documentation are used only the Windows separators. Change-Id: I2aa0f28651b914414bcd6b67bf451b0af1b73c18 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * codesign: Add additional signing flags at end of commandDenis Shienkov2021-06-161-4/+7
| | | | | | | | | | Change-Id: I4133d6716ee6f226cdd56637f86c2b1f3e1cda65 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * codesign: Add new codesign.timestampAlgorithm propertyDenis Shienkov2021-06-162-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | We need this property on Windows when we use the codesign.signingTimestamp property. This property should be set with the "sha256" value in case when the app is to be distributed over the App Store; otherwise the the codesign.signingTimestamp property is quite useless. Fixes: QBS-1651 Change-Id: Iacc5f80b8acf81ea1a34f55416e6966c41b0e727 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
| * codesign: Fix checking if product is a frameworkIvan Komissarov2021-06-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | It is not correct to check for the frameworkVersion to determine if product is a Framework - e.g. Xcode always sets this variable. Instead, product.type or product.bundle.packageType should be checked instead. This fixes the problem when codesign incorrectly determines bundle as a framework if product.version is set. Fixes: QBS-1649 Change-Id: I067e852df82a43897000d45e27908dd5e22eac70 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Long live Digital Mars toolchainDenis Shienkov2021-07-275-20/+814
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds an experimental support for the Digital Mars C/C++ compiler for Windows: * https://www.digitalmars.com/ This compiler is only distributed for Windows host platform, but allows to create the binaries for Win32, Win16, DOS32 and DOS targets. This patch implements only the Win32 targets and has the following limitations: * Support for precompiled headers is not implemented yet (but which is supported by the compiler). * There is no support for the CI autotests due to the fact that the compiler has the following restrictions: - it needs a separate masm386 assembler. - it needs a special format of DLL library sources (required the DLL main function). - it needs the `kernel32.lib` to be always explicitly linked. - and, maybe other unexpected stuff. The following features are currently supported: * Compiling a source files in the C or the C++ mode. * Compiling the source resource (RC) files. * Creation of an applications (both console and GUI). * Creation of an dynamic (DLL) libraries with its import files. * Creation of a static libraries. Task-number: QBS-1598 Change-Id: I5a6ac05a7e7513a1c6d2403db037c309b0f12b90 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Separate Cpp.{assembler|compiler}Output{Tags|Artifacts}Denis Shienkov2021-06-295-17/+35
| | | | | | | | | | | | | | | | | | We need to separate the functionality of these functions, since their content will differ in the future (for example, the 'intermediate_obj' tag will be added for the compiler). Change-Id: Ife65aed95966b92a3646d73512a0a0add4cd1aac Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Fix usage of Cpp.collectMiscAssemblerArguments() functionDenis Shienkov2021-06-296-21/+7
| | | | | | | | | | | | | | | | * We need to pass the 'asm' tag for this function. * We need to use this function also in MSVC toolchain. Change-Id: I3dfc7b79ec17b855da76dab35428d875c39548a1 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Account for more QML-related binaries being in libexecMitch Curtis2021-06-284-4/+10
| | | | | | | | | | | | | | | | This amends b69b569ff43299dec625d573b08fec642039afea. Task-number: QBS-1636 Change-Id: I9d113d735ad0f9d4e517a675d9af9d3f0a25b802 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Make property cpp.compilerExtension as sharedDenis Shienkov2021-06-146-9/+1
| | | | | | | | | | | | | | | | It makes sense to share the cpp.compilerExtension property, because this property is used in almost all CPP modules. Change-Id: I0bf44a83c722772b93d7f2febbef7b4e38d11103 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | baremetal: Introduce new toolchainDetails propertyDenis Shienkov2021-06-139-431/+242
| | | | | | | | | | | | | | .. to reduce the number of if/else conditions and to simplify the code. Change-Id: Id4e6574b719986d3fc7f8b27106a60b00cbd67ea Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | 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>