aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Fix make-release-archives.batJoerg Bornemann2019-04-161-2/+2
| | | | | | | | Configs must be prepended by 'config:' when building with newer qbs versions. Change-Id: I9524c1a7f034cb5a612a5408a57ad224cfcda6c3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Pull in the latest dmgbuild patch releasesJake Petroules2018-02-191-1/+1
| | | | | Change-Id: I8b12ce1752a3a470257523255ada26650a33852d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge remote-tracking branch 'origin/1.9'Joerg Bornemann2017-09-181-3/+3
|\ | | | | | | Change-Id: I962adbe6a7a805e9250807a31e87580a86b1d067
| * Fix prefix of generated source archivesJake Petroules2017-09-161-3/+3
| | | | | | | | | | | | | | | | | | | | This removes an erroneously added top-level "dist" directory within the generated archives. Amends c9f8116 Change-Id: I2446b8a769dc927ae571889f2646f1f75c06770d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Merge remote-tracking branch 'origin/1.9' into masterJoerg Bornemann2017-09-111-2/+2
|\| | | | | | | Change-Id: Ib18e50ecdc9be5f9deaebf68414c2082ddafcc8b
| * Docker/Windows: use a simpler workaround for UNC paths in release scriptJake Petroules2017-09-071-2/+2
| | | | | | | | | | | | | | | | | | | | This should make release builds faster since all of the source files don't need to be copied to a temporary directory. Qbs is also updated to 1.9 since another bug was fixed in that version which prevented from building when the Qbs sources were located in the root of a drive. Change-Id: I9d333dd0e0bf1fafc72cff093c90f8d0111162b3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Organize development-time scripts in a single placeJake Petroules2017-08-163-0/+111
|/ | | | | | | Adapt scripts as necessary. Change-Id: Ib5ad4d1b6bc0e47cb6b4994cfb924efc1c3ebdc4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Modify make-release-archive.sh to produce both archive types at onceJake Petroules2017-07-191-5/+6
| | | | | | | | | | This script is for OUR release process, and doesn't need to be more general than that especially when wrapping such a small git command. Also clean it up a bit make it properly exit on error. Change-Id: I117a01b344f3afe6360e58b2408f352e33dde356 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add the creation of a Chocolatey package to our release processJake Petroules2017-07-191-0/+1
| | | | | | | | | | | | This is maintained by upstream developers and so should just be a part of the official release process to begin with. This has been tested with the Docker-based release instructions and provides the additional security property to Chocolatey users of having an authoritative source from which to obtain to the .nupkg which can then be installed without network access to packages.chocolatey.org. Change-Id: I6d20201451cd3a7f080a81c1dee6b515671e2105 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Organize the 'dist' release package into a new file structureJake Petroules2017-07-181-1/+1
| | | | | | | | This prepares for adding products for additional release packages. Change-Id: I38d8745764ee6044589ff6298b739dde17d573c1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix layout of windows src packagesKai Koehne2017-07-031-1/+1
| | | | | | | | The command line argument must be fully qualified with "products". Change-Id: I9337b08c9da43edbfc9f20bce5413bbd60e919bb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Add a script to create the release packages for WindowsJake Petroules2017-06-091-0/+75
| | | | | | | | | | | | | | | | | This is a simple script which invokes a build of Qbs using the specific configuration we intend to use for creating official Windows release packages. It only requires an existing qbs.exe in the PATH as well as the QTDIR and QTDIR64 environment variables set to 32-bit and 64-bit installations of Qt, respectively. It does not use or modify the current environment outside of temporary directories. The intent is to use this script in conjunction with a Docker container although that is not required; instructions for using which will follow in a subsequent patch. Change-Id: I3f150d53c5b4afffdb4d5f5f7d64bf322b263a78 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Move release script into scripts directoryJake Petroules2017-06-071-0/+49
Change-Id: I3e9cff70daeb330a544c2b3ebbb3139e03e01975 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>