qt5base-lts/coin/instructions
Toni Saario 684fea1314 CMake: Add instructions to re-use host artifacts for target builds
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>
2020-07-24 17:33:13 +02:00
..
call_cmake_for_standalone_tests.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
call_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_host_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_host_install.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +02:00
call_target_cmake.yaml CMake: Use the same generator when building other repositories 2020-05-19 10:16:16 +02:00
call_target_install.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +02:00
cmake_build_and_upload_test_artifacts_host.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
cmake_build_and_upload_test_artifacts_target.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
cmake_build_and_upload_test_artifacts.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
cmake_cross_compilation_module_build_instructions.yaml CMake: Add instructions to re-use host artifacts for target builds 2020-07-24 17:33:13 +02:00
cmake_cross_compilation_qtbase_build_instructions.yaml CMake: Add instructions to re-use host artifacts for target builds 2020-07-24 17:33:13 +02:00
cmake_module_build_instructions.yaml CMake: Propagate non-qtbase configure args to other repositories 2020-07-13 21:01:59 +02:00
cmake_qtbase_build_instructions.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +02:00
cmake_regular_test_instructions_common.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
cmake_regular_test_instructions_enforced.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
cmake_regular_test_instructions.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
cmake_run_ctest_enforce_exit_code.yaml CMake: Re-run tests in CI like we do for the qmake build 2020-07-06 12:17:51 +02:00
cmake_run_ctest_ignore_exit_code.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
cmake_setup_running_tests_env_vars.yaml CMake: Skip / ignore failing tests on CMake platforms 2020-07-01 14:55:29 +02:00
coin_module_build_template_v2.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
coin_module_test_qemu_env_vars.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
coin_module_test_template_common.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
coin_module_test_template_v2.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
coin_module_test_template_v3.yaml CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00
coin_qtbase_build_template_v2.yaml CMake: Add instructions for building and testing qemu configs 2020-06-25 14:11:56 +02:00
prepare_building_env.yaml CMake: Adjust instructions for MinGW builds 2020-05-01 19:11:22 +02:00
README.md CMake: Add support for enforcing passing CI tests per repository 2020-07-03 11:14:11 +02:00

Information about Coin instruction templates

Build templates

  • coin_qtbase_build_template_v2.yaml did not exist. The build instructions were directly embedded into module_config.yaml and did not support repos outside of qtbase, also no cross-compilation.
  • coin_qtbase_build_template_v2 introduced support for building other repos, and also enabled build cross-compiling targets like Android and iOS. A bit later the template gained the ability to build qemu cross-compiling configurations. The counterpart to qtbase to build other repositories is coin_module_build_template_v2

Test templates

  • coin_module_test_template_v1 did not exist. The test instructions were directly embedded into module_config.yaml and did not support repos outside of qtbase, also no cross-compilation.
  • coin_module_test_template_v2 introduced support for building tests for other repos, and made sure not to build and run tests on cross-compiling configuration. A bit later the template gained the ability to build and run tests for qemu cross-compiling configurations.
  • coin_module_test_template_v3 changed the run test instructions to not ignore the exit code and thus enforce that tests pass in the CI.