summaryrefslogtreecommitdiffstats
path: root/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Use CMAKE_AUTOGEN_VERBOSE to see moc invocationsToni Saario2020-07-241-2/+2
| | | | | | | | | | In qmake builds we can see the moc invocations, whereas in CMake builds by default we don't. Modify the Coin instructions to pass the CMAKE_AUTOGEN_VERBOSE cache variable so that AUTOMOC prints the moc invocations. Change-Id: I50be13224839fbbdece3c9e8a4935a72aba91a8e Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Add instructions to re-use host artifacts for target buildsToni Saario2020-07-241-25/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't want to build the host Qt configuration every single time we do a cross-build in Coin. Coin learned some new qt5.git platform configuration options, which allow specifying a dependency between a host Coin configuration and a target one. This means we can specify a host macOS config as a dependency when building iOS, and the host artifacts for all dependent repos (qtbase, qtsvg, qtdeclarative, etc) will be installed into /home/qt/work/install (as specified by the {{.AgentWorkingDir}}/install location). Same for Linux + Android and Linux + qemu. Modify the qtbase Coin instructions to use these installed host artifacts if such a dependency is present (platformDependency is not null). The target artifacts will be installed into a subfolder of the host installation, called 'target', e.g. /home/qt/work/install/target. If a dependency is not present, continue to build a host Qt before doing a target build. This allows gradual conversion of configurations in case if some of them don't work, or if the dependencies.yaml have not propagated far enough for all new repos to use the new instructions. In this case the locations of the artifacts are different host - /home/qt/work/install/host target - /home/qt/work/install/target Task-number: QTBUG-85623 Change-Id: I33539f4376034539fb7db80293dc4d39dcb9539b Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Propagate non-qtbase configure args to other repositoriesAlexandru Croitor2020-07-131-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently configure arguments specified in qt5.git/coin/platform_configs are only used when configuring qtbase itself. Sadly, Coin lacks support for specifying per-repo configure flags. Until Coin gets the feature, the best we can do is to pass all the configure flags to each repo we are configuring. Unfortunately if we pass all of qtbase's configure flags to other repos it will break cross-compiling configurations (because the toolchain argument would be overridden with the initial qtbase provided toolchain instead of the Qt generated chainloading one). We thus have to separate flags that should and shouldn't be passed to other repos. Introduce usage of two new environment variables called NON_QTBASE_CONFIGURE_ARGS and NON_QTBASE_TARGET_CONFIGURE_ARGS. Additional configure arguments can be specified in these variables, and they will be used when configuring repositories, with the exception of qtbase. Ultimately, this is needed to disable detection / usage of certain strawberry perl system libraries in qtimageformats on MinGW. Doing that prevents crashes of the tst_qtiff test. Minor implementation note is that the environment variables have to be explicitly set in qt5.git platform_configs otherwise it breaks the Windows Ninja Multi-Config configuration with the error "The system cannot find the file specified". Supplements 4b4f0be08debcfde62caf4066222b348ce65dea1 from qt5.git. Amends previous revert 946fc92d20e720a82236877a378ce1c883533aa0 Task-number: QTBUG-84886 Task-number: COIN-601 Change-Id: Ie4305c5d799bf4a29da5032a691e797b49c3cf33 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Revert "CMake: Propagate configure args to all repositories"Alexandru Croitor2020-07-081-2/+2
| | | | | | | | | | This reverts commit adbadc57df9f70ee4144f0dd2425192593656394. The change breaks building of repos other than qtbase when cross-compiling to Android. Not sure yet why. Change-Id: I6a6efef5360ed141c0c5056afb03b1a0d90439ae Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Propagate configure args to all repositoriesAlexandru Croitor2020-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | Currently the configure arguments specified in qt5.git/coin are only used when building qtbase itself. None of them are used when configuring other repos like qtsvg. While in principle passing all the configure arguments to other repos is not a good thing, we need to do it to circumvent the lack of support for specifying per-repo configure flags in Coin. It's needed to disable detection / usage of certain strawberry perl system libraries in qtimageformats on MinGW. Doing that prevents crashes of the tst_qtiff test. Supplements 4b4f0be08debcfde62caf4066222b348ce65dea1 from qt5.git. Task-number: QTBUG-84886 Task-number: COIN-601 Change-Id: I59be8c62ebb10282db1b0a9da2d3e3e5595c925f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Use custom install script to support Ninja Multi-Config buildsAlexandru Croitor2020-05-191-24/+10
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add support for building building against yoctoSimon Hausmann2020-04-291-3/+3
| | | | | | | | 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>
* CMake: Pass --verbose flag to ninjaAlexandru Croitor2020-03-131-2/+2
| | | | | | | | | 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>
* coin: remove contact person for cmake issuesLiang Qi2020-02-131-2/+2
| | | | | | Change-Id: Id274bf821f424077e7259ed42433f2ef88153c36 Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: upload artifact for qtbase android build and etcLiang Qi2020-02-071-0/+81
Task-number: QTBUG-78945 Change-Id: I3361e63ed4830ac0e1ebb9d4b9495df09c45f476 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>