summaryrefslogtreecommitdiffstats
path: root/coin/instructions
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Use the same generator when building other repositoriesAlexandru Croitor2020-05-195-7/+31
| | | | | | | | | | | | | | | | | | | If we configure qtbase with Ninja Multi-Config, we should use the same generator when building other repositories as well, to ensure that all repositories have the same set of configurations (debug and release). To do that, the Coin instructions will call the qt-cmake-private wrapper which records the generator used. For standalone tests continue to use qt-cmake, so that only a single configuration is built (no need to build tests in both debug and release mode). The configuration built will be the first one from the initial list with which qtbase was configured (usually RelWithDebiInfo). This is ensured by the QtBuildInternalsExtraConfig.cmake file. Task-number: QTBUG-80900 Change-Id: I701b2f652a22d51e640a6fdf19c3b2d2dfb34d5c Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* CMake: Use custom install script to support Ninja Multi-Config buildsAlexandru Croitor2020-05-196-72/+48
| | | | | | | | | | | | | | | | | | | | | | | | | Calling cmake --install . only installs a single configuration. To install both debug and release artifacts, the install invocation needs to be done for each configuration. To keep the Coin instruction code simpler, delegate the looping over configurations to a custom CMake script, and use it in the Coin instructions. Replace all cmake --install calls in the instructions with calls to either call_host_install.yaml or call_target_install.yaml. The path to the script depends on whether we are building qtbase or another module. In the former case the script should be called from the build dir, otherwise from the install dir. The other distinction is whether the host or target env prefix needs to be added. Task-number: QTBUG-80900 Change-Id: Ied4bf739e2b1a2307f22fc79c1cfad746c8cbc44 Reviewed-by: Joerg Bornemann <joerg.bornemann@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-294-9/+36
| | | | | | | | 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>
* Instruction selection fix for qemu cross-buildsSimon Hausmann2020-04-292-12/+32
| | | | | | | | When building for qemu, the target "os" is still set to Linux, so try to detect qemu by looking at the version field. Change-Id: I7c66cdb29a47a44d5b8a394977136139fc646155 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>
* CMake: Pass --verbose flag to ninjaAlexandru Croitor2020-03-135-7/+7
| | | | | | | | | To allow seeing the exact compiler flags when build in Coin. We do the same for qmake builds. Change-Id: I8c43f35b95d722d914aaeaa8860720a3a0578737 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Build standalone tests out of source in CoinLeander Beernaert2020-03-112-7/+5
| | | | | | | | | | | | | | | Due to a bug in upstream CMake regarding relative paths being encoded into the build.ninja file when performing in source builds, we need to build the tests in a standalone directory outside of the source directory. Failing to do so will cause the source directory for the test to be incorrect which can cause tests to fails and never read the BLACKLIST.txt file. See the mentioned issue for details. Task-number: QTBUG-82820 Change-Id: Ie5c178a92369d6b9decff625bd9641e53088a9fa Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* coin: remove contact person for cmake issuesLiang Qi2020-02-138-16/+16
| | | | | | Change-Id: Id274bf821f424077e7259ed42433f2ef88153c36 Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix cross compilation builds with template v2Alexandru Croitor2020-02-072-0/+2
| | | | | | | | | | | Make sure to split the command arguments after variable substitution like it is done in call_cmake.yaml. Amends d445112cc03d730d659d1eeaa84d963f85731ac5 Change-Id: Id23fcfa5b58c33e05495413fb10349fbcff1bfac Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: upload artifact for qtbase android build and etcLiang Qi2020-02-077-0/+208
| | | | | | Task-number: QTBUG-78945 Change-Id: I3361e63ed4830ac0e1ebb9d4b9495df09c45f476 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add initial support for CMake "Ninja Multi-Config" generatorAlexandru Croitor2020-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows doing debug_and_release builds with Ninja on all platforms. The "Ninja Multi-Config generator" is available starting with CMake 3.17. Desired configurations can be set via CMAKE_CONFIGURATION_TYPES. Possible values: "Release, Debug, RelWithDebInfo, MinRelSize". For example -DCMAKE_CONFIGURATION_TYPES="Release;Debug". The first configuration is the 'default' configuration which is built when calling ninja with no arguments. To build all targets of a certain configuration use "ninja all:Release" or "ninja all:Debug". To build all targets in all configurations use "ninja all:all". Note that the first configuration influences which configuration of tools will be used when building the libraries for all configurations. In simple terms, when configured with -DCMAKE_CONFIGURATION_TYPES="Release;Debug" the release version of moc is used by AUTOMOC. When configured with -DCMAKE_CONFIGURATION_TYPES="Debug;Release" the debug version of moc is used by AUTOMOC. Framework builds and Ninja Multi-Config don't currently work together due to multiple bugs in CMake, which ends up generating an invalid ninja file with duplicate rules. There are also issues with placement of the debug artifacts. This will be handled in a follow up patch after CMake is fixed. Task-number: QTBUG-76899 Change-Id: If224adc0b71b7d1d6606738101536146aa866cd7 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Make standalone tests build via top level repo projectAlexandru Croitor2019-11-082-16/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously repo/tests/CMakeLists.txt was a standalone project on which CMake could be called. This was useful for Coin to be able to build and package only tests, but was a bit troublesome because that means having to specify the usual boilerplate like minimum CMake version, which packages to find in every tests.pro project. Instead of having a separate standalone project, modify the top level project and associated CMake code to allow passing a special QT_BUILD_STANDALONE_TESTS variable, which causes the top level project to build only tests, and find Qt in the previously installed qt location. This also means that when building a repo, we generate a ${repo_name}TestsConfig.cmake file which does find_package on all the modules that have been built as part of that repo. So that when standalone tests bare built for that repo, the modules are automatically found. qt_set_up_standalone_tests_build() is modified to be a no-op because it is not needed anymore. Its usage should be removed from all the other repos, and then removed from qtbase. Non-adjusted tests/CMakeLists.txt projects in other repositories should still be buildable with the current code, until they are updated to the new format. Adjust the Coin build instructions to build the standalone tests in a separate directory. Adjust pro2cmake to generate new structure for the tests/tests.pro projects. Adjust the qtbase tests project. Fixes: QTBUG-79239 Change-Id: Ib4b66bc772d8876cdcbae1e90ce5a5a5234fa675 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: add Android buildLiang Qi2019-10-111-0/+58
| | | | | | | Task-number: QTBUG-78945 Change-Id: I0c9d3cc7de6d3bfb346a77d95a6bbcad6d707a74 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* instructions: executeCommandArgumentSplitingBehavior when calling qt-cmakeLiang Qi2019-09-261-0/+1
| | | | | | | Change-Id: Ibe589ee181a08df9ec999c9b769fa560b2716aac Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Qt CMake Build Bot
* instructions: start to use --parallel when cmake buildLiang Qi2019-09-253-3/+3
| | | | | | Change-Id: Ia67f0f9413c2f99dbc3b7e978256c0301502ea1d Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* coin: increase the timeout between output for allLiang Qi2019-09-034-10/+10
| | | | | | Change-Id: I3906a08f5e0cce9abeeafbb67a83d31fbf67c703 Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Share most common part of module_config.yamlLiang Qi2019-08-305-0/+173
| | | | | Change-Id: Ieea5b662e039cff24e26a127b4a3a8610ed588cc Reviewed-by: Alexandru Croitor <alexandru.croitor@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>