summaryrefslogtreecommitdiffstats
path: root/coin/instructions/prepare_building_env.yaml
Commit message (Collapse)AuthorAgeFilesLines
* Try to consolidate Unix/Windows libexec directory in coin configsDimitrios Apostolou2022-06-151-0/+14
| | | | | Change-Id: Ie381cb062fc78fe5c291b8d0b49fca5f752c7c30 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add ASAN build for qtbaseDimitrios Apostolou2022-06-151-0/+21
| | | | | | | | | | | | | | | The test run is wrapped with a special TESTRUNNER script that ignores failing tests (there are several tests failing when built with ASAN) and also ignores LSAN errors (memory leaks - but still visible in the output). The test run only fails if a test reports ASAN errors or if it crashes (or times out, which is like a crash caused by qtestlib's watchdog timer). Fixes: QTQAINFRA-5025 Change-Id: I861756ab49388ac4a52409d3a780684244e469b1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CI: add Windows host support for QNXTommi Mänttäri2022-04-051-7/+41
| | | | | | | | | | Add required environment variable configurations to COIN for building Qt SW in Windows host for QNX OS. Task-number: QTBUG-101292 Pick-to: 6.3 6.2 Change-Id: I3ea4cbaaebb693a0a46b5f9cbd08209805366ca7 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* CI: use HOME directory for QNX license and PATH in Linux host buildsTommi Mänttäri2022-04-051-3/+3
| | | | | | | | | | | | | | | To ensure that both Linux and Windows host builds are equivalent the Linux host builds need to use the common QNX SDP file that support both host environments. This new QNX SDP does not include QNX license files like previously, instead they are separately installed by the Ansible scripts of the CI system to the $HOME/.qnx directory. That directory is also supposed to be used for any possible binaries found via PATH environment variable. Task-number: QTBUG-101292 Pick-to: 6.3 6.2 Change-Id: I97ad71f00e8289e708c51565f86c6d0c84a9ae84 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* coin: Don't package installed example binariesAlexandru Croitor2022-04-041-0/+48
| | | | | | | | | | | | | | | | To do that, we install the example binaries into a new directory rather than the main install dir. The contents of the dir is not archived by the Coin agent. This decreases the size of the binary artifacts. This will be especially important when the examples contain deploy logic which will install the shared Qt libraries next to each example binary. Pick-to: 6.2 6.3 Task-number: QTBUG-90820 Change-Id: I0b112698514309bb9b0794ce4117e8bf30c3a819 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* coin: Add CI_PATH_SEP env var with value of host OS path separatorAlexandru Croitor2022-03-301-0/+18
| | | | | | | | | | Can be useful in the future for path construction, to avoid adding two different instructions where the only difference is the path style. Pick-to: 6.2 6.3 Change-Id: Id67b287a2d9f67889dcc5c4fc7781d9ef60a56be Reviewed-by: Toni Saario <toni.saario@qt.io>
* coin: Apply WarningsAreErrors feature to target configurationsToni Saario2022-03-251-0/+3
| | | | | | | | Makes WarningsAreErrors feature meaningful on cross-compilations. Change-Id: I777e44a64757d1fcd5f8a49eae0e5322b92ac53b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* coin: Use configure and qt-configure-module in instructionsAlexandru Croitor2022-03-171-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to use configure and qt-configure-module when building in Coin, rather than pure cmake and qt-cmake. There are a few benefits: - CI tests the scripts, making sure we don't introduce regressions - CI uses the same scripts that we mention in our documentation for developers to use - The platform configurations become a bit less verbose and easier to read due to less shouty-case CMake options To ensure a more gradual porting, Coin will only use the new instructions if the 'UseConfigure' feature is set on a platform configuration in qt5.git. This allows going back to the old instructions in case if something isn't working properly. Due the opt-in, we need to support both old and new instructions in the implementation. The change strives to remove as much duplicate code as possible, by moving it into common includes. The README.md is updated to mention the overview of how the different environment variables are used. There are a few important things to point out. 1) Because during the porting we have to allow mixing of the old style and new style, platform configs have to separate CMake-style options from configure-style options in different environment variables. Otherwise the instructions wouldn't be able to create a valid configure call, where all CMake-style options have to go at the end after a double dash --. After all platform configs are ported to the new style, it should be possible to combine all the options in a single environment variable if that is desired, but it will require another round of porting to remove all the '-D' prefixes in CMake-style options, and just use regular variable assignment which configure supports. e.g. -DQT_BUILD_EXAMPLES=ON becomes QT_BUILD_EXAMPLES=ON, which can be mixed in-between configure-style args. 2) Configure is more strict in that it doesn't allow passing unknown options. Due to that, we can't pass non-qtbase configure options via NON_QTBASE_CONFIGURE_ARGS. qt-configure-module would error out in the repos where the configure option is unknown. Because we don't have a Coin configure variable for each repo, we circumvent the issue by continuing to pass CMake-style options via NON_QTBASE_CMAKE_ARGS instead, which does not do validation checks. In the future, we could introduce a configure flag that disables the validation checks. Pick-to: 6.2 6.3 Task-number: QTQAINFRA-4357 Task-number: QTQAINFRA-4815 Change-Id: I72d8ba0b3a543b42982e22ae8d6566c0e885c446 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Toni Saario <toni.saario@qt.io>
* coin: Preserve quoted arguments when calling cmake / configureAlexandru Croitor2022-03-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Previously we used sh $* for passing parameters of various calls like cmake / configure. This did not properly preserve quoted arguments, leading to potential issues. For example when configuring qtbase with cmake -DQT_QMAKE_DEVICE_OPTIONS="DISTRO_OPTS=hard-float boot2qt" the 'boot2qt' option would be passed as a separate argument to cmake, leading to the QT_QMAKE_DEVICE_OPTIONS cache var containing only 'DISTRO_OPTS=hard-float'. Use "$@" to preserve the quotes. Inspired by https://wiki.bash-hackers.org/scripting/posparams#all_positional_parameters Amends e9b8837c31041326a0e4d66eed6775d385913915 Pick-to: 6.2 6.3 Change-Id: Ib67d4bc138c65f7430457cb2a2baa55bff72e549 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* coin: Ensure we configure repos with CMake verbosity set to STATUSAlexandru Croitor2022-03-041-6/+6
| | | | | | | | | | | We set the default verbosity of configure output to NOTICE in regular Qt builds. To preserve the STATUS verbosity in CI runs, we now pass it explicitly when configuring all repos / tests. Pick-to: 6.2 6.3 Change-Id: Ib63739c05855cfd5951d38ce3f8a7fc8d1218cd3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Clean up QNX platform configs and improve testrunner scriptsDimitrios Apostolou2022-02-141-8/+2
| | | | | | | | | | | | | | | | | | | | QNX requires its own TESTRUNNER script in order to SSH to the QEMU guest and run the tests. Simplify it a lot and fix the way it passes arguments so that they retain spaces and quotation. Also wrap it with the generic TESTRUNNER script for CI, which is qt-testrunner.py, so that tests can re-run in case of flakiness. Delete prefix.sh as the environment variables are now properly set in the Coin platform config files. Avoid executing extra chmod commands to make scripts executable, but use the right Coin instruction for that. For reference, we use 493 for file mode which equals to 755 in octal, as Coin expects the file mode in decimal. Change-Id: Ife4d1caef606f48b92ba1da1cfb14ec0dea11ef2 Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
* coin: Move AUTOGEN and tests options addition into a common locationAlexandru Croitor2022-01-191-0/+22
| | | | | | | | | As a drive-by this fixes the qtbase build to also have the CMAKE_AUTOGEN_VERBOSE option set. Pick-to: 6.2 6.3 Change-Id: I32324fb1e8e16299c5f34517edbc7ff335d84e14 Reviewed-by: Toni Saario <toni.saario@qt.io>
* coin: Fix sccache to be used when cross-compiling testsAlexandru Croitor2021-12-161-0/+4
| | | | | | | | | | Was likely an oversight. Amends 9f559699cc5dbba9ef8e6da06d2ed48a8b6729a6 Pick-to: 6.2 6.3 Change-Id: I13c2e4cc32e68c1ce98f59a932e3448250b0679b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add support for Microsoct Visual Studio 2022 official releaseHeikki Halmet2021-11-211-0/+7
| | | | | | | | | | | MSVC2022_PREVIEW can be removed later when MSVC2022 official release has been merged Task-number: QTQAINFRA-4540 Pick-to: 6.2 Change-Id: I7756b53b1cd5863d21c1c1e3bb19373f6f0cf8fa Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io> Reviewed-by: Toni Saario <toni.saario@qt.io>
* Set emscripten environment for webassemblyToni Saario2021-11-151-0/+15
| | | | | | Change-Id: I4d99e72086673a19fe5ac487aefd6b20a0d3a637 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* coin: Add Sccache featureTor Arne Vestbø2021-11-041-0/+23
| | | | | | | | Allows us to remove redundant information in the platform configs. Pick-to: 6.2 5.15 Change-Id: Id0c09ce6f22f3bd52ef426c14a1b2806559b2321 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* coin: Add feature to enable warnings as errorsTor Arne Vestbø2021-11-021-0/+10
| | | | | | Pick-to: 6.2 5.15 Change-Id: If770f3e416674173316d3ef052c195070e28ede6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CI: Add QNX qemu supportPasi Petäjäjärvi2021-10-271-2/+11
| | | | | | | | | | | | * Script used to parse env variables and run test over ssh on qemu * Script to start qnx qemu * Script used to set env variables for ssh so they are correct in qemu * Add b2qt sdk host toolchain to path for actual qemu binaries Task-number: QTBUG-87628 Pick-to: 6.2 Change-Id: I951172211c2963654899491568771310a410e616 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* Add support for Microsoft Visual Studio 2022 Preview versionHeikki Halmet2021-09-301-0/+7
| | | | | | | | | When official version is available variableValue path need to be changed. Task-number: QTQAINFRA-4540 Change-Id: Ie5fe676962297aa5f18f225eb4b8dfe0957671c8 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Avoid setting DCMAKE_C_COMPILER and DCMAKE_CXX_COMPILER twiceHeikki Halmet2021-06-021-0/+9
| | | | | | | | If these values already exist do not add them to configure. This also allows setting these values from platform configurations Change-Id: I2f2aea90d91fa3436953e0c4103f0ea204b3564b Reviewed-by: Toni Saario <toni.saario@qt.io>
* Add instructions for Windows 10 on Arm configSimo Fält2021-05-051-1/+23
| | | | | | | Task-number: QTQAINFRA-3966 Change-Id: Ib8ac80a5b8aa5c88d9e5d0eaad9ba550cc2442f8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fathi Boudra
* Prepare QNX env for cmake buildMarianne Yrjänä2021-01-111-0/+35
| | | | | | | | QTQAINFRA-3768 Change-Id: I5993acd282843095deba3d34006b7aa3e23db448 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io> Reviewed-by: Simo Fält <simo.falt@qt.io>
* CMake: Don't use mkspec set by sourcing b2qt environment scriptAlexandru Croitor2020-10-261-1/+2
| | | | | | | | | | | | qmake sees the QMAKESPEC variable and uses it when building tests, instead of using the target mkspec written in the target_qt.conf file by the build system. Unset the environment variable to force usage of the mkspec specified when confugring Qt. Task-number: QTBUG-86053 Change-Id: I24ceddd1436393b496665e439dd1441ecbd36df7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Set MSVC environment script specifically for MSVCToni Saario2020-10-011-4/+4
| | | | | | | | Current clause is too broad and new compilers do not work with it properly. E.g. Clang. Change-Id: I7afadfec07935e76882d27ec7ab408b0e597654b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Adjust instructions for MinGW buildsAlexandru Croitor2020-05-011-18/+48
| | | | | | | | | | Don't do any of the MSVC-related instructions when targeting MinGW. Make sure to pass gcc and g++ as compilers when targeting MinGW. Don't use any ENV_PREFIX that sets up the MSVC environment. Task-number: QTBUG-75578 Change-Id: Icf5c39b58391d473d914fe8dc17d062812b07df1 Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Add support for building building against yoctoSimon Hausmann2020-04-291-0/+27
| | | | | | | | Using an environment prefix wrapper shell script that sources the SDK's env setup. The script also ensure that we don't loose cmake on the way. Change-Id: I9d08bc58f0efaf688512ab26a7ddb800309a5015 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Coin: Fix incorrect target OS values used in instructionsAlexandru Croitor2020-04-021-3/+3
| | | | | | | | | The friendly named values should be used rather than the all caps names. Change-Id: I44dbe8c25d405424c5cd2c9527b6e884511ac269 Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Split module_config.yamlJędrzej Nowacki2019-07-041-0/+202
There are things that could be shared around all Qt submodules. In particular compiler specific configuration should not be repeated over and over. The new file can be included directly from all modules that uses QtBase. In longer term one would have a separate repository for such instructions as most of them are not QtBase specific. Change-Id: I0590b2a0c78b73e1b9dbb27cc1da6568cbe56563 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>