684fea1314
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> |
||
---|---|---|
.. | ||
call_cmake_for_standalone_tests.yaml | ||
call_cmake.yaml | ||
call_host_cmake.yaml | ||
call_host_install.yaml | ||
call_target_cmake.yaml | ||
call_target_install.yaml | ||
cmake_build_and_upload_test_artifacts_host.yaml | ||
cmake_build_and_upload_test_artifacts_target.yaml | ||
cmake_build_and_upload_test_artifacts.yaml | ||
cmake_cross_compilation_module_build_instructions.yaml | ||
cmake_cross_compilation_qtbase_build_instructions.yaml | ||
cmake_module_build_instructions.yaml | ||
cmake_qtbase_build_instructions.yaml | ||
cmake_regular_test_instructions_common.yaml | ||
cmake_regular_test_instructions_enforced.yaml | ||
cmake_regular_test_instructions.yaml | ||
cmake_run_ctest_enforce_exit_code.yaml | ||
cmake_run_ctest_ignore_exit_code.yaml | ||
cmake_setup_running_tests_env_vars.yaml | ||
coin_module_build_template_v2.yaml | ||
coin_module_test_qemu_env_vars.yaml | ||
coin_module_test_template_common.yaml | ||
coin_module_test_template_v2.yaml | ||
coin_module_test_template_v3.yaml | ||
coin_qtbase_build_template_v2.yaml | ||
prepare_building_env.yaml | ||
README.md |
Information about Coin instruction templates
Build templates
coin_qtbase_build_template_v2.yaml
did not exist. The build instructions were directly embedded intomodule_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 likeAndroid
andiOS
. A bit later the template gained the ability to buildqemu
cross-compiling configurations. The counterpart to qtbase to build other repositories iscoin_module_build_template_v2
Test templates
coin_module_test_template_v1
did not exist. The test instructions were directly embedded intomodule_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 forqemu
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.