aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Do not try to generate FwdHeaders when not using bundled Qt.ScriptIvan Komissarov2021-04-121-0/+7
| | | | | | | | | Apparently, if the submodule is not present, the Rule is not invoked at all, but it fails on Windows when submodule is there but Perl is not found in PATH Change-Id: I3edb4d3679f4528f05996c630c55c052c8202369 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-122-19/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... 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-083-23/+43
| | | | | | | | | | | | | | | | | | | | | 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>
* baremetal: Improve 'compiler-listing' testDenis Shienkov2021-04-077-38/+26
| | | | | | | | | | | We do not need multiple test data instances (*.qbs) for each property, because we can pass the required properties from the C++ code directly. Also now we can know about the compiler listing file suffix directly, through the cpp.compilerListingSuffix property. Change-Id: I644277458e3ae460cbfb6bba4a24583d9e6ba3e1 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* 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-069-22/+56
| | | | | | | | | | | | | | | | 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-053-32/+49
| | | | | | | | | | | | | | | 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-052-23/+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>
* Share cpp::linkerMapSuffix propertyDenis Shienkov2021-04-018-9/+17
| | | | | | | | | | | | | | | | 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-019-118/+370
| | | | | | | | | | | | | | 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>
* baremetal: Improve 'linker-map' testDenis Shienkov2021-04-015-26/+11
| | | | | | | | We don't need in multiple test data instances (*.qbs) for each property, because we can pass the required properties from the C++ code directly. Change-Id: I3bc05db5f6c0d2533f9799cbadb830c0c687e1e5 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* 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-307-10/+46
| | | | | | | 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
| | * protobuf: fix setting includePath in nanopb.qbsIvan Komissarov2021-03-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This amends 0d42ca4d0f8b0866b51ac9587f68a6550ca6d3fe. Change-Id: I3650056431c51ae8d67575e217bfaebcf49b4f08 Reviewed-by: Kai Dohmen <psykai1993@googlemail.com> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
| | * protobuf: fix accessing undefined objectIvan Komissarov2021-03-152-26/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always execute Probes to find files protobuf libs and headers even when the user passes path to those manually. This is required for the correct search of different library variants. This amends 87fdf5002. Change-Id: Ic7b9368b2b17925da33fd16299e31fd016043466 Reviewed-by: Kai Dohmen <psykai1993@googlemail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
| | * Bump version to 1.18.2Ivan Komissarov2021-03-091-1/+1
| | | | | | | | | | | | | | | Change-Id: I45dd78f2579555959742693d021613735d58c764 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | doc: Add how-to about signing for Apple platformsIvan Komissarov2021-03-301-0/+43
| | | | | | | | | | | | | | | | | | Change-Id: Ic2f84fbe24a6980f6ac78201ca418aef83490fa2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | | Share cpp::objectSuffix propertyDenis Shienkov2021-03-309-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes sense to add the cpp.objectSuffix property to the base CppModule due the following reasons: 1. It is possible that the user wants to change the extension for the generated object files, which makes working with Qbs more flexible. 2. It will be easier to write an autotests that check the generation of the object files for a bare metal platforms, where object files can have various extensions such as ".rel", ".r90", ".r43", and so forth. Change-Id: Ib73836d5e614a6924d312d061f02437c3b318785 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | | Do not run joblimits in parallel with other testsIvan Komissarov2021-03-251-1/+5
| | | | | | | | | | | | | | | | | | | | | To avoid concurrent access to QSettings Change-Id: I99e43d0b7cb19352fad4b16abb80fc88b0a11fd0 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | Add missing artifact tags for loadable modules when multiplexingIvan Komissarov2021-03-211-1/+2
| | | | | | | | | | | | | | | Change-Id: I910e56161c815822f87f9754ad8ce5aceed2bd3a Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | Run appleMultiConfig test with arm64 on newer XcodeIvan Komissarov2021-03-211-7/+14
| | | | | | | | | | | | | | | Change-Id: If8d579b612d8c44f697495d2ca985f7c34310682 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | CI: Add new job to run bare-metal tests on self-hosted Windows PCDenis Shienkov2021-03-211-1/+134
| | | | | | | | | | | | | | | Change-Id: I5ce176a143c4df3b6dca97a79da0c2e5983dd478 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | | GitHub actions: Run tests with Qt6Ivan Komissarov2021-03-193-3/+96
| | | | | | | | | | | | | | | | | | | | | On MacOS, Linux and Windows with Qt 6.0.2. Change-Id: I12255d8ba5bb5277378d52a1cc5caca84f0dc98b Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | Add Qt6 docker image and update Qt5 imageIvan Komissarov2021-03-192-2/+14
| | | | | | | | | | | | | | | | | | | | | ...to add additional packages required for the Qt6 image Change-Id: I42791440eaa754a1ae4ea3c24f86dd0ccedc1ed6 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | qt6: fix setting up Qt.uitools module on MacIvan Komissarov2021-03-191-1/+6
| | | | | | | | | | | | | | | | | | | | | Since Qt6 it is a framework, not a standalone library Change-Id: I1561cea04a0472704d21f4ebbb5d5bc07d9c758d Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | | qt6: do not use QHash in adjustDefiningItemsInGroupModuleInstancesIvan Komissarov2021-03-191-1/+1
|/ / | | | | | | | | Change-Id: Ibee969b9811e964569aa437e15e7c239f41d5918 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Fix building unit tests with bundled Qt.scriptIvan Komissarov2021-03-174-8/+25
| | | | | | | | | | | | | | | | | | Some of those tests require Qt.script headers which are used in corelib's headers. Introduce a new QbsUnitTest item type that pulls in the dependency on Qt.script/scriptengine for those tests. Change-Id: I5b981b910191ba690eded14bdf64b540f334bd53 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Remove QTextCursor API from ChangeSetIvan Komissarov2021-03-176-32/+4
| | | | | | | | | | | | | | | | | | | | | | It appears that neither Qbs not QtCreator use that API. Also, remove QtGui dependency in corelib and enable project files updates by default. Change-Id: I2eb90d0a7bc74bca4f1007eb63164111f52adb1b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | qt6: Fix installing Qt on LinuxIvan Komissarov2021-03-171-2/+9
| | | | | | | | | | Change-Id: Id9aa640f013271ff9f3a7f4e0cd70f974efcc116 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Do not use QTextDocument for project file updatesIvan Komissarov2021-03-172-21/+8
| | | | | | | | | | | | | | | | This class is used simply to include an empty line before Group we are removing. Change-Id: Ie7a5224c1f29dd67615cea70667a6c91cc2fee82 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Use TemporaryProfile in TestBlackbox::qtBug51237Ivan Komissarov2021-03-041-8/+6
| | | | | | | | | | | | | | | | Otherwise the profile is not removed from settings after the test is finished Change-Id: Ib82f35f7f468733ad4d2c28ce15da59af9024697 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | qt6: do not use QString::fromUtf16(ushort*) overloadIvan Komissarov2021-03-031-2/+2
| | | | | | | | | | | | | | This amends 05b74ff72. Change-Id: I18b8006d246355a49b669b097b1e14d776f0cbac Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | qt6: fix deprecation warning about QScopedPointer::takeIvan Komissarov2021-03-031-3/+2
| | | | | | | | | | | | | | Use std::unique_ptr instead, and call release(). Change-Id: Ic3f224a5e29ba3b1d6e9a0490b29a801265dfafd Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | Merge branch '1.18' into masterIvan Komissarov2021-03-024-3/+7
|\| | | | | | | Change-Id: Ia45a5502f2d3c30807b5cab14666070973654b3a
| * cmake build: Fix project files updates in Qbs binaryIvan Komissarov2021-03-022-1/+1
| | | | | | | | | | | | | | | | | | | | Session class is located in the binary itself, not in the corelib, so we need to pass this macro there as well. Do that by making this macro "public" as Qbs build does. Task-number: QTCREATORBUG-25232 Change-Id: I50b2f8a533db82cf28fd5d29c17fcfdc410c5ab2 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
| * protobuf: fix _libraryName prop if protobuf is not foundIvan Komissarov2021-02-222-2/+6
| | | | | | | | | | | | Change-Id: Ia0cc1583ca95ce97b99c136433125cb90c59f3be Reviewed-by: Kai Dohmen <psykai1993@googlemail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | install-qt.sh: Skip modules that are not existent in requested versionIvan Komissarov2021-03-021-0/+16
| | | | | | | | | | Change-Id: I1d918c8c56891e980aa862c005eb0b0a6114626a Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | baremetal: Fix detection of GCC ARM toolchain installers on WindowsDenis Shienkov2021-03-021-20/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... provided by ARM group. Previously, we detected the installed GCC toolchain through the `Uninstall` group in the Windows registry. Where we have enumerated all sub-groups in this group, and searched for a matching for to the `GNU Tools for ARM Embedded Processors` token. But the problem is that in newer versions of the installer, the name of this group has been changed. Moreover, that method is slow because it enumerates all the entries in the group, where these entries can be a lot. Alternatively, we can search for installed toolchains using the `HKLM/SOFTWARE/ARM` path that is constant, contain only the installed toolchains, and present on all versions of installers. Change-Id: If3dc280d03a9c6e25113263309822599f0010d9b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | cmake: rename QbsAPI to QbsBuildConfigIvan Komissarov2021-03-022-1/+1
| | | | | | | | | | | | | | | | The API name is misleading and can make users think this is for building against Qbs. Change-Id: I8d6553cde873389d0674ee779292af59f7d04c32 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | cmake: add QBS_ENABLE_RPATH optionIvan Komissarov2021-03-022-13/+15
| | | | | | | | | | | | | | | | | | | | ...required for Brew to switch to CMake - current QMake build explicitly disables RPATH. Also, move all build options to QbsApi.cmake to have them in one place. Change-Id: I97bbfa1de3e34e9dc7a7f8ac4271f47e14ef435e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* | GitHub actions: Bump Xcode version to 12.4Ivan Komissarov2021-03-011-2/+2
| | | | | | | | | | Change-Id: Id3e5823d0b8f346d34ba96953961cf7fb74fab0a Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | GitHub actions: fix setting up Qt on macOSIvan Komissarov2021-03-011-1/+1
| | | | | | | | | | | | | | | | | | Previously, this step was meaningless since we use the "qt" profile, but the one created via --detect is named qt-5-15-2. This does not affect tests since qmake is in PATH and is found via auto-detection. Change-Id: Ice027588bd8eaabf4eb715b0bf9b7c8087cefe3b Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>