summaryrefslogtreecommitdiff
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Merge 2.0 into masterChristian Kandeler2023-05-031-0/+7
|\ | | | | | | Change-Id: I521dd5baab4b4374f9221a163ba8e83531edf8bb
| * install-qt.sh: Support Qt6 iOSIvan Komissarov2023-05-021-0/+7
| | | | | | | | | | Change-Id: I32bfea051b52e96a60bc4410dd89a72fd7bb286e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge 2.0 into masterChristian Kandeler2023-03-212-4/+0
|\ \ | |/ | | | | Change-Id: I5ec89e4f1260c8d8b669eeb94bb1fefcea9de01b
| * Remove UBSAN suppressions fileChristian Kandeler2023-03-172-4/+0
| | | | | | | | | | | | | | It's not relevant anymore without QtScript. Change-Id: Iafb56f71764f8334a1e983cdb83014ac847deed3 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* | Add docker image focal-android-642 and workaround armv7 packageRaphael Cotty2023-03-051-1/+7
|/ | | | | | | | | Add docker image focal-android-642 and corresponding github action. Add workaround QTBUG-111713 to correct Qt 6.4.2 android armv7 package. Change-Id: I8f7c5fd566237d4c490fb6014b0a4efbb6f04a53 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* install-qt.sh: fix mingw install dirIvan Komissarov2023-02-141-2/+6
| | | | | | | | The installation directory for mingw 9.0 was detected incorrectly which lead to the fact we used the wrong compiler in CI. Change-Id: I4635dde0cf68eacc8436e6393609162e15add418 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch JavaScript back-endChristian Kandeler2023-02-072-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newer clang versions seem to expose serious bugs in QtScript, whose complexity makes it difficult to track them down. We therefore switch to the more light-weight QuickJS, which offers all the features we need (most notably property access interception), as well as good performance. To save some porting effort, we removed the long-deprecated loadFile() and loadExtension() functions. During the porting procedure, we noticed and fixed thread safety issues in artifact access from JS commands. We consider this change important enough to bump the major version, so the next release will be 2.0. Detailed benchmarking data is below. In summary, we see a modest speed- up at the cost of a similarly modest increase in memory consumption (with the exception of project resolving on macOS, which has become a bit slower). Importantly, the increase does not rise with project size, as the comparison of qbs vs Qt Creator shows. Output of qbs_benchmarker on Linux with qbs as test project: ========== Performance data for Resolving ========== Old instruction count: 12870602895 New instruction count: 11923459780 Relative change: -8 % Old peak memory usage: 61775848 Bytes New peak memory usage: 67583424 Bytes Relative change: +9 % ========== Performance data for Rule Execution ========== Old instruction count: 4074062223 New instruction count: 3887473574 Relative change: -5 % Old peak memory usage: 35123704 Bytes New peak memory usage: 38398392 Bytes Relative change: +9 % ========== Performance data for Null Build ========== Old instruction count: 1104417596 New instruction count: 1011033948 Relative change: -9 % Old peak memory usage: 24461824 Bytes New peak memory usage: 25325920 Bytes Relative change: +3 % Output of qbs_benchmarker on Linux with Qt Creator as test project: ========== Performance data for Resolving ========== Old instruction count: 67166450352 New instruction count: 60772791018 Relative change: -10 % Old peak memory usage: 327011616 Bytes New peak memory usage: 343724176 Bytes Relative change: +5 % ========== Performance data for Rule Execution ========== Old instruction count: 71684351183 New instruction count: 67051936965 Relative change: -7 % Old peak memory usage: 374913688 Bytes New peak memory usage: 387790992 Bytes Relative change: +3 % ========== Performance data for Null Build ========== Old instruction count: 8383156078 New instruction count: 7930705668 Relative change: -6 % Old peak memory usage: 180468360 Bytes New peak memory usage: 182490384 Bytes Relative change: +1 % Real-world data building Qt Creator (using qbs --log-time, several runs, removing outliers): macOS: Resolving: 43s -> 47s Rule execution: 17s -> 14s Windows: Resolving: 18s -> 16s Rule execution: 22s -> 17s Fixes: QBS-913 Fixes: QBS-1103 Fixes: QBS-1126 Fixes: QBS-1227 Fixes: QBS-1684 Change-Id: Ie5088155026e85bbd1e303f1c67addb15810a3cb Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* GitHub actions: add UBSAN jobIvan Komissarov2023-01-312-0/+4
| | | | | Change-Id: Ib98b51305b491f3c1b54af2bf03738df08c5f789 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GitHub actions: make ASAN build a separate jobIvan Komissarov2023-01-101-1/+0
| | | | | | | | | | We might want to add UB sanitizer job in the future. Also, this should speed up linux test jobs such as Android that currently use ASAN binaries. Change-Id: I277c5d2713d88b5e706f76b7a098f82d3f9483f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* RIP QMake buildIvan Komissarov2022-12-161-83/+0
| | | | | | | | | | We have been supported CMake build for quite some time so users should have plenty of time to adapt. Ubuntu, Brew and macports also use CMake for building QBS. Change-Id: Ib78177f4a7ca8cdea1a2f3a8eac8bfe804674f32 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix test-qbs.shIvan Komissarov2022-10-251-1/+1
| | | | | | | This amends 545cfcc92fc5bb4fc7280abf4f7aad543de18985. Change-Id: I18f6d006c03d8aaad84c0feadb3c98dc9dde0c7c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* GitHub actions: Do not run tests in parallelIvan Komissarov2022-10-241-9/+3
| | | | | | | | xargs parallel behavior is weird and it does not propagate child process errors (at least, on macos). Change-Id: I9571c0c689ee92f8852e942720ffaeb0f9de2579 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Github actions: Update mingwChristian Kandeler2022-10-141-1/+1
| | | | | | | | | 8.1 has a bug that we run into when compiling quickjs (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86048). Change-Id: I1df7e7f3e2e0d39f44d1c8636f74c3333167db0d Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* fix run-analyzer.shIvan Komissarov2022-08-221-1/+2
| | | | | Change-Id: I30636c75d316b705924226f8883dc648ddc54e38 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge branch '1.23' into masterIvan Komissarov2022-08-221-5/+6
|\ | | | | | | Change-Id: I1640aa670bd12be70b794286deda4d420bb491df
| * GitHub actions: Fix install-ow.shIvan Komissarov2022-08-211-5/+6
| | | | | | | | | | Change-Id: I76cbafa8c0eaf8c6d48c6d1a4c2cd4ba8c9215c6 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
* | clang-tidy: add qmljsparser.cpp to the blacklistIvan Komissarov2022-08-151-1/+1
| | | | | | | | | | | | | | This file is autogenerated and shoould not be linted. Change-Id: Id82147666d0e1d5ea78387ef460b85aca45636bb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | GitHub actions: enable sanitizer for the Qt6 buildIvan Komissarov2022-08-091-0/+1
|/ | | | | Change-Id: I1222e7d9a49439d6f0067ae2b1e38da113bb3faa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix install-qt.shIvan Komissarov2022-07-271-2/+2
| | | | | | | | | The condition should not affect ios This amends 59e983d5d998d62930e590264ff70314b84f3a90. Change-Id: I6c1912d43d455188476976712be0a6b4989e128a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* 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>