aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* | Print total warnings count created by clang-tidyRichard Weickelt2019-12-121-1/+3
| | | | | | | | | | | | | | | | This makes it a bit easier to compare different patches. Change-Id: I6ac2c981896f1f34e529b9718bf4ccfdab194e14 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Remove duplicate files from compile_commands.json when running analyzerIvan Komissarov2019-12-111-4/+8
| | | | | | | | | | | | | | | | It doesn't make sense to run clang-tidy on the same file multiple times (even though compile flags can be different) Change-Id: Ia6b26e0ec75e798fe10286ab637e039ed7774486 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix setting base profile for the QBS_AUTOTEST_PROFILEIvan Komissarov2019-12-101-4/+7
| | | | | | | | | | | | Change-Id: I37587ea0a691560bc1f37fb4ee2525ef9657e7f0 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Ignore included .moc files when running clang-tidyIvan Komissarov2019-12-091-1/+1
| | | | | | | | | | | | | | | | | | Header-filter regexp was a bit wrong and accepted moc files included in cpp files. This is not desired, since moc files are auto-generated and produce some warnings that cannot be fixed Change-Id: Iedc065f89129ad0f85df17988dc6e050e6edf7d6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Enable clang-tidy job on TravisIvan Komissarov2019-12-051-4/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This runs predefined clang-tidy checks on the QBS sources, excluding examples and tests Most checks are displayed as warings, however, some checks are treated as errors to avoid adding regressions in the new code clang-analyzer-* checks are not enabled due to performance reasons (otherwise, Travis job hits 50 min) Change-Id: I686003d2526a11d90fc74c88104b4357d67620d1 Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Kill the keep-alive background processRichard Weickelt2019-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The sleep command in background was not killed although its parent process was. That caused builds on Travis to idle for up to 590s after completion in worst-case. This patch extends the EXIT trap and ensures that the sleep command is killed. There is unfortunately no generic way in Bash to achieve that (without writing lots of convoluted code) because utilities like pkill are not available in Git Bash. Change-Id: Ibbb5683e57c242e58133c1860ec9c921b7e449b7 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Enable ccache on Linux/DockerRichard Weickelt2019-11-252-2/+4
| | | | | | | | | | | | | | | | This speeds up CI builds a lot. Change-Id: I53962e1683b4dd923c3a7d254db24164a4e623a6 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Enable cpp.treatWarningsAsErrors when building Qbs on TravisIvan Komissarov2019-11-211-0/+1
| | | | | | | | | | Change-Id: I45a6bbc31a5be8c20b0fe7877e1fc42833e68ddd Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix nullpointer access and heap-use-after-free errorJochen Ulrich2019-11-161-0/+1
| | | | | | | | | | | | Task-number: QBS-1485 Change-Id: Id43e997a73ff55c3b438edb553806b61d45a8bdf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Prepare install-qt script for Qt 5.14 Android multi-abi packagesRichard Weickelt2019-11-071-42/+27
|/ | | | | | | | In order to avoid even more if clauses I took the chance and refactored the URL tests. Change-Id: I66df65020f11d62fd737ebb1cadcd27f0aedf73b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Update windowsservercore/DockerfileJoerg Bornemann2019-10-111-1/+1
| | | | | | | | | | | | | | | | | | | - Update qbs to 1.12.1 - Update Qt to 5.12.5 We're not using the installer anymore, because a) the unattended-install-hack doesn't work for newer Qt installers b) newer installers do not provide VS 2015 builds. c) it allows us to tailor the Qt build to our needs in the future. We're not building the documentation on Windows anymore due to the genius move to require libclang for qdoc. That means we need additional twiddling with the packages to add documentation that was built on an usable OS. Task-number: QBS-1438 Change-Id: I77a487562c2f5edd69b8b8a10ef3410ab599dc92 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch to Qt installer script in Docker containerRichard Weickelt2019-08-231-0/+7
| | | | | | | | | | | Use the official packages instead of compiling Qt ourselves. This simplifies the Docker image a lot. For accessing the script folder, the Docker context needs to change to the root directory. Thus, we need a .dockerignore file to keep the size of the context low. Change-Id: I58ec8f364feba955518f1eaf5bff234332ae8dec Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Minimal Qt installer scriptRichard Weickelt2019-08-131-0/+298
| | | | | | | | | | | | | | | | | | | | | One of the main problems in virtual environments like Travis CI is how to install Qt and QtCreator. The official installer provided by the Qt Company is almost unusable from command line. It is even harder to select only certain components (especially QtScript). Luckily, all components are available online under http://download.qt.io. This script installs components from the official Qt package repository. It can be used in any bash environment to simplify the setup procedure and supports every valid combination of host OS, target platform (desktop, android, ios) as well as toolchains. Dependencies: - bash - curl - 7z Change-Id: Ia2080cb80df98551332eb02c85c5933fd3bdaa4e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Prevent from 10min timeout on Travis due to long-running testcasesRichard Weickelt2019-08-121-1/+5
| | | | | | | | | | | | | | | | TestBlackbox runs for more than 10 minutes in the Windows environment on Travis and since recently also on Mac OS. This might trigger a non-configurable 10 minutes timeout due to no output generated by Qbs. The official workaround is travis_wait. But it is flawed, because it accumulates all output before it prints something, thus making it impossible to watch the output of a running build. This problem is often not noticed because other tests may run in parallel and produce output. This patch adds a background process which outputs an empty line every 9:50 minutes while running autotests. Change-Id: I0ac5d0f581aabbc0d8641a13e7d207dc84902b95 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add Windows to Travis build configRichard Weickelt2019-07-081-3/+10
| | | | | | | | | This patch enables Qbs builds and autotests on Windows. Builds in release mode to speed up test execution. Change-Id: Iaddfddb3459266740aa18c06d431624336446c6b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de>
* Merge 1.14 into masterChristian Kandeler2019-07-051-0/+1
|\ | | | | | | Change-Id: I2796d53ca36ce90977f0a09ca5db089d8c85bd4e
| * Enable project.withExamples in TravisIvan Komissarov2019-06-271-0/+1
| | | | | | | | | | | | | | | | | | This will allow to catch more build errors caused by breakage of backward-compatibility Change-Id: I49985d9c67cdc66d2ea5885685ce6a0f72e36dd4 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Add macOS in Travis build configRichard Weickelt2019-07-011-5/+2
| | | | | | | | | | | | | | | | | | | | | | This patch enables Qbs builds and autotests on macOS X. Address sanitizer has to be disabled because it slows autotests down too much. Change-Id: Id8b5ec4284881c8c7a4ac3ef612e979f10f67e1b Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Fix typo in build-qbs-with-qbs.shIvan Komissarov2019-06-271-2/+2
| | | | | | | | | | | | | | Change-Id: Ida8b02f3967c24422da61bb5f07ffde6407e9f33 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | scripts: Fix QBS_AUTOTEST_SETTINGS_DIR usageIvan Komissarov2019-06-241-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | For now, it not possible to pass an existing profile using the QBS_AUTOTEST_PROFILE (as was intended) since tests will try to find it in /tmp/qbs-settings, not in the default settings directory. Fix that by moving default value under the if clause. Change-Id: I9706e862bad77bd5d074fdef4edc0255b5a1d3f0 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | scripts: add possibility to customize some featuresIvan Komissarov2019-06-241-2/+10
|/ | | | | | | | | | | | On Travis macOS VM, sanitizer works extremely slow, which leads to timeouts while trying to run tests. Also, qdoc is missing from the HomeBrew's Qt. Change-Id: Idc9cec58531eeca7b5cd46f21ba4afed21e76620 Reviewed-by: Qbs CI Bot <travis-bot@weickelt.de> Reviewed-by: Richard Weickelt <richard@weickelt.de> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Make the address sanitizer work in DockerRichard Weickelt2019-06-072-0/+8
| | | | | | | | | | | | - Libasan requires ptrace capabilities when running in Docker - Provide a suppressions file - Update stretch Docker image to build against libicu and match the configure options of the official Qt release. Otherwise the address sanitizer fails when Qbs loads plugins. Change-Id: Ib620187a3cdd486eaf646ee0bd022b811744a998 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add run-analyzer.sh scriptIvan Komissarov2019-06-041-0/+80
| | | | | | | | | | | | | This script builds qbs, generates compile_commands.json and runs clang- tidy on the whole QBS project. Typical usage: $ cd qbs $ export LLVM_INSTALL_DIR=~/LLVM/ $ ./scripts/run-analyzer.sh Change-Id: Iff8d9483849589952a427f3b675298e4fcf11979 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add scripts to build Qbs and run autotestsRichard Weickelt2019-05-062-0/+179
| | | | | | | | | | | | These scripts may be used by contributors to run a sanity check on their changes. Especially people new to the project might be clueless how to build and run autotests. These scripts may later be used for CI as well. Both scripts work in the Debian Docker image. Change-Id: Ib51ac5fadcc90b3a220003ba2c3021bb3815e1bc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>