summaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add support for other platforms supported by Digital MarsDenis Shienkov2022-02-171-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * Windows - 16 bit. Also, more specifically, the target is controlled by the `cpp.extenderName` property, which is the DOS extender to use. The Digital Mars support the following DOS extenders: * Rational 16 bit DOS Extender * ZPM 16 bit DOS Extender * DOSX 32 bit DOS Extender * Pharlap 32 bit DOS Extender which have the following names `dosr`, `dosz`, `dosx`, `dosp`. The user can set any of the desired values in the `cpp.extenderName` property (also this property can be empty that means no any extender is used). Right now the `qbs-setup-toolchain` utility creates all possible supported profiles with the required pre-configured properties: Profile 'dmc-8_57_0-windows-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-windows-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosx-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosp-x86' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosr-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dosz-x86_16' created for 'C:/dm/bin/dmc.exe'. Profile 'dmc-8_57_0-dos-x86_16' created for 'C:/dm/bin/dmc.exe'. Compiling with DOS extenders requires additional external utilities and libraries (depending on the extender type). Some of them are no longer available at the moment, so the tests in CI are only done for the `dmc-windows-x86`, `dmc-windows-x86_16`, and `dmc-dos-x86_16` profiles. Change-Id: I221d2995900c63605c8552b825bf0c4d55171f5c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Allow to generate multi-arch package with Qt >= 6.3Raphael Cotty2022-02-091-0/+6
| | | | | | | | | | In Qt 6.0, android installation was split in different directories and the androiddeployqt could not work with multiple install dir. This is fixed in Qt 6.3.0 and requires this change to call androiddeployqt. Change-Id: Ia402950fb835e956045ec28a9896c0b5cafbd9e8 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add support for other platforms supported by Open WatcomDenis Shienkov2022-02-091-97/+32
| | | | | | | | | | | | | This patch adds support for the following target platforms: * DOS - both 32/16 bit. * OS/2 - both 32/16 bit. * Windows - 16 bit. Also all these platforms covered in CI tests. Change-Id: Ie75d9203c50f4d61546b19328992ff0e107d9942 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Configure CI for Digital Mars compilerDenis Shienkov2022-02-081-0/+117
| | | | | | | ... and also as fix the typo in the DmcProbe.qbs file. Change-Id: I2f62b862b900c92be97c6eb6a9b461ac5973b8ea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Long live Open Watcom toolchainDenis Shienkov2022-02-041-0/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds basic support for the Open Watcom toolchain. This patch uses the `owcc` compiler (supplied with the toolchain), which is a wrapper that supports the POSIX standard. Reason is that the native OW compiler and linker has a limitations in the command line arguments (e.g. they have wrong quotes handling and so on). This patch supports both the latest official version v1.9 and also its fork v2.0. Also added the CI autotests for the version v2.0 for the Windows host. These autotests only perform a limited number of tests (only the bare-metal tests) due to the following toolchain limitations: * The toolchain does not have STL support (there seems to be some kind of the partial support in the form of separate legacy STL ports). * The toolchain support something compatible with the C++98 standard. * The toolchain does not support the shared libraries on Linux hosts. These limitations make it impossible or unjustified to reuse most of the available tests (it requires a lot of work). There was also an attempt to set up CI for tests on Linux host, but for some reason the toolchain installer crashes on CI (although it works fine on a local PC with Ubuntu). Change-Id: Iecf76f51f0b09d31a89683f786b9cd7a825f235e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Docker/github action: update mirrors and use Qtc 5.0.3Raphael Cotty2021-12-101-1/+0
| | | | | | | Update available mirrors which all provide Qtc 5.0.3. Change-Id: I9315c607bbdfd6a7fdb8a8e00f99df41aba8b97f Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Add android testing with different ndk versionsRaphael Cotty2021-09-302-2/+68
| | | | | | | | | | | | | New docker images are added to test different android ndks. Those images don't have Qt so only a subset of the tests are run. So far I added 3 images: r23 (LTS), r21e (LTS) and r19c (minimum one). The other android images also have a new ANDROID_NDK_VERSION argument set to the r23. Change-Id: Iaa7c80b9cac1c7888b3297fac13333d22a9ad0bc Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* install-qt.sh: A number of small fixesThorbjørn Lindeijer2021-09-221-2/+4
| | | | | | | | | | | | * Starting with Qt 6.1.2, Qt for macOS is installed to a subdirectory called "macos" instead of "clang_64". * Fixed the version variable used in Android related condition. * Fixed the path printed for 32-bit MinGW installations. Change-Id: I87d339caab8fa549efff3963f75416a06b4e9923 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* GitHub actions: add doc jobIvan Komissarov2021-09-201-0/+59
| | | | | | | | | | | This job monitors only changes in documentation files and uploads generated html files as a resulting artifact. Also, ignore changes in documentation files when running tests - this is more environment-friendly and saves a lot of time. Change-Id: I807a5a246d8b9527ada2e9e5cd23234b9278b1b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove `import qbs` from all project filesDenis Shienkov2021-08-041-2/+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>
* Always build with project file updates supportIvan Komissarov2021-07-274-4/+0
| | | | | | | | Since QtGui dependency was removed, there is no reason not to Change-Id: Ib8975451f3c36a77e22a077bba18b5659f414767 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* Don't use download.qt.io by defaultIvan Komissarov2021-06-241-1/+1
| | | | | Change-Id: I8f12950125a7e9b5d79ef732ce306895170e61ea Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use 64bit QtC version instead of 32-bit oneIvan Komissarov2021-05-061-0/+5
| | | | | Change-Id: I34347e51eecb076872181ef71094a1189f436407 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GitHub actions: Add MinGW build and tests on WindowsIvan Komissarov2021-05-061-0/+13
| | | | | Change-Id: I50944a7ad0a1f4f2fc09bcaab43fc88044107ff9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Android: Code signing moduleRaphaël Cotty2021-04-011-0/+1
| | | | | | | | | | | | | | 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>
* 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>
* GitHub actions: Run tests with Qt6Ivan Komissarov2021-03-191-0/+53
| | | | | | | On MacOS, Linux and Windows with Qt 6.0.2. Change-Id: I12255d8ba5bb5277378d52a1cc5caca84f0dc98b Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* 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>
* Merge branch '1.18'Ivan Komissarov2021-02-191-0/+58
|\ | | | | | | Change-Id: I4e437865514add88558f66420718bc02fb39e41d
| * Add qt4 docker image for basic testingRaphaël Cotty2020-12-181-0/+58
| | | | | | | | | | Change-Id: Ied6d9eac49fcb20de72499ab7c39e83a90a98b75 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | 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>
* | 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>
* | Make use of mirrors to download QtRichard Weickelt2021-01-211-2/+18
|/ | | | | | | The list is just a random selection. Change-Id: I0835f93bf2b83eb16aa6daee54c40f34dcc58bb4 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* cmake: install files when using build-qbs-with-cmake.shIvan Komissarov2020-12-071-1/+2
| | | | | | | This allows to test if install() commands are correct Change-Id: I68085a118b03e6c4095b636f219a60abcc237ee1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* cmake: Fix building documentationIvan Komissarov2020-12-031-1/+9
| | | | | | | | It was never implemented Fixes: QBS-1618 Change-Id: I702410b546cacd439989268d3d4fbb18051d1819 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Install qtcreator from the official release packagesRichard Weickelt2020-11-211-8/+6
| | | | | | | | | | Previously the script used the packages of the online installer. Since all old QtCreator releases have been removed from that repository, we switch to the official release packages which provide .7z files containing prebuilt binaries as well. Change-Id: I5ebf3420ffa25043796f09403ea47cd7f026b602 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Android: Update for Qt 6Raphaël Cotty2020-11-172-6/+20
| | | | | | | | | | Manage the new directory layout of Qt6. Update generation of the input file for androiddeployqt. Fixes: QBS-1613 Fixes: QBS-1609 Change-Id: Ie633fad467f310bfc4cd42e9c32d9cfc2e734582 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* GitHub actions: do not print profiles in scriptIvan Komissarov2020-10-271-2/+0
| | | | | | | We print them in the "Setup Qbs" step Change-Id: Ib523770b9d93882fdab64a7a74a807abbd2cd248 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* clang-tidy: Apply modernize-use-nullptr fix-itIvan Komissarov2020-10-261-1/+1
| | | | | Change-Id: I404ac10a14517763daf656dd38dd560534cbf1fa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* cmake: Remove ccache magicEike Ziller2020-10-201-1/+1
| | | | | | | | | | | Setting the compiler/linker prefix globally heavily interferes with other setups. For example it breaks compiling resources with rc.exe on Windows. Use CMAKE_C_COMPILER_LAUNCHER=ccache and CMAKE_CXX_COMPILER_LAUNCHER=ccache when calling cmake instead. Change-Id: Id7fa7a3ce8b19b658eee0b661c9dfa060c3d62c9 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Use qbs archive for packagingIvan Komissarov2020-09-032-3/+3
| | | | | | | | | | | | This changes the way how the archives are created by the github actions. Previously, the archive was created as a separate aaction, now "qbs archive" product is used. Also, rename the "qbs archive" product to qbs_archive since it is hard to deal with spaces in bash commands. Change-Id: Ia9d0f7004b503b4ce86243cad93dec7c57a9a212 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Initial support for GitHub ActionsIvan Komissarov2020-09-017-10/+128
| | | | | | | | | | This commit adds jobs similar to what we have in Travis. Some tests are disabled when running on GitHub since they do not pass for various reasons. Note that those tests are usually skipped on Travis due to missing dependencies. Change-Id: Icec96dc22e2939d12568d2de1f1a4537c35977ad Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Initial CMake portIvan Komissarov2020-08-171-0/+97
| | | | | | | | | | | | | | | | | | | This change allows to build Qbs using CMake build tool Tested platforms - Linux (gcc) - macOS (clang) - Windows (msvc2017) Missing features (compared to Qbs build) - Documentation build - Bundled QtScript support - Static build - .pc file for qbscore - qbs module for qbscore Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* baremetal: Add basic docker-compose auto-tests configurationDenis Shienkov2020-08-041-0/+52
| | | | | | | | | | | | | | | | This commit adds a basic 'docker-compose' <focal-baremetal> configuration which allows to produce the bare-metal tests. Current docker image contains the following toolchains: * gcc-arm-none-eabi * gcc-avr * gcc-msp430 * sdcc Change-Id: I7e020081dcb763d704c309ffd96fa03b3c56e4fb Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Richard Weickelt <richard@weickelt.de>
* Suppress leaks from QThreadPrivate()Ivan Komissarov2020-06-151-0/+2
| | | | | | | | | | | It looks like there's a leak in Qt code - the QThreadData object is leaking in some obscure cases (or the bug in Qbs is too tricky to be spotted in reasonable time), so suppress those leaks for now. Note that QArrayData::allocate leaks from the posted event list object which is stored in QThreadData too, so this is the same leak. Change-Id: I64a2cce1746ce5565dc79b5a142c7c146e1a7391 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add blackbox examples testIvan Komissarov2020-05-281-1/+0
| | | | | | | | | | It is necessary to build examples with different profiles pretty much like it is done with other tests. Thus, build examples as a separate blackbox test. Change-Id: If4e910fb60a6d51e1a0c690e7a4ece4b17bd5b95 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use md5 tool on macOSRichard Weickelt2020-05-251-2/+3
| | | | | | | | | The md5sum tool is not available on macOS by default. Travis has it, but most systems do not. There is a md5 tool instead, which can produce compatible output. Change-Id: I64c205757effda85920d10a717ecc70e0dad6c91 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Travis: Generate debug information on macOS and Linux onlyRichard Weickelt2020-05-201-1/+0
| | | | | | | | | Generating debug information disables clcache on Windows and results in a 10 minutes longer build time. Change-Id: Ibd13c3017c60d09074ab22b1933acd9a331bd61e Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* build-qbs-with-qbs.sh: Add more flexibility for the autotest profileIvan Komissarov2020-05-191-10/+22
| | | | | | | | | | This patchset adds QBS_AUTOTEST_QMAKE_PATH and QBS_AUTOTEST_BASE_PROFILE variables that could be used to configure the profile that is used when running autotests Change-Id: Ifc32d397c08eefb7e8b96cf387031db2ab693cbc Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix copyrightsIvan Komissarov2020-05-121-2/+2
| | | | | | | | In several places, mail was missing. In others, it was incorrectly placed on the 'Contact' line Change-Id: I462301555fe59140f54fd504b5beb37d7c6fca87 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Do not reinstall Qt if already installedRichard Weickelt2020-05-111-1/+29
| | | | | | | | | | | The server download.qt.io is frequently overloaded. Instead of re-installing Qt every time, try to check if the desired packages are already installed. Utilize Travis' caching meachanism for Qt installations. Change-Id: I4ff1c05b93fd1f0224a7ea4e4869998a21478bfc Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Enable coredumps on macOSRichard Weickelt2020-04-071-0/+2
| | | | | | | | | This patch enables backtraces in case a program crashes during the build/test. We want to see the backtrace of Qbs when it crashes. Change-Id: Ie90f805a68ca9b2d01644b25e81d4d60ab467d0c Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* setup-toolchains now sets the qbs.toolchainType, not qbs.toolchainIvan Komissarov2020-03-091-0/+4
| | | | | Change-Id: I21f0626a093db358f8f5dfa6248672c44edc82e2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use python3 in Travis for building docs and running clang-tidyIvan Komissarov2020-02-211-3/+2
| | | | | | Change-Id: I2f0d72abdf12a4e64b79bf9a3c02b32cf4cbeed6 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '1.15' into masterRichard Weickelt2020-02-051-0/+1
|\ | | | | | | Change-Id: I7e348db380b836221db79c73ea3b5f1d891f114b
| * Fix make-release-archives.batJoerg Bornemann2019-12-181-0/+1
| | | | | | | | | | | | | | We must set enableBundledQt to true, because its default value changed. Change-Id: I1db53db309f82cb46fdd77eb2dad44ee40401386 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Android: Update support to qt 5.14 and multi-arch apks for Qt appsRaphaël Cotty2020-02-041-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before qt 5.14. The profile property "moduleProviders.Qt.qmakeFilePaths" is set with one or more paths to the different android architectures. Each qmake path belongs to a different android architecture installation. So each qmake is used to generated the Qt module corresponding to the architecture. Although qbs can generate multi-arch apks using multiplex mode, this is not possible when the project depends on qt libraries. This is because of the restriction of the qt tool androiddeployqt used by qbs. Now with qt 5.14. All android architectures are installed in the same directory. So the profile property "moduleProviders.Qt.qmakeFilePaths" is set with one qmake path. This directly impacts the qbs-setup-android tool and the generation of the Qt modules. Because qt libraries are installed in the the same directory, they have the abi in their name (libQt5Core_armeabi-v7a.so). So the rules that generate the apks are also impacted. The new androiddeployqt have a new interface (json config file format and requires to have the input libraries installed in the deployment directory) which allows the generation of multi-arch apks. So Qt.android_support modules needs to be updated as well. Fixes: QBS-1497 Change-Id: Ibd546f356c38a05f42dfcac0a4ec92bd82d6f700 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fail travis job if clang-tidy returned non-zero codeIvan Komissarov2020-01-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | The script falsely returned zero code even if clang-tidy reported an error This amends f7117d080ddce4b5f692e3a60ceddc9fe1761888 Change-Id: I6f77bae3304f7bb6ca58c2de29089c3e3d910c1b Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add Docker environment to test Qbs with Qt for AndroidRaphaël Cotty2020-01-101-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Docker images contains ndk r20 and qt 5.13.2 as well as 5.14.0. Containers can be started with the following command line: - docker-compose pull bionic-android-513 - docker-compose run --rm bionic-android-513 The current folder is mounted under /qbs. Assuming that Qbs has been built in the current directory and with release configuration, the autotests can be invoked with: docker-compose run --rm bionic-android-513 scripts/test-qt-for-android.sh \ release/install-root/usr/local/bin A job Travis CI job is added which builds Qt and runs the Android blackbox tests. Change-Id: I76b1901cb7c41f8b5b0122265c99c9b37b59f261 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>