qt5base-lts/coin/instructions
Alexandru Croitor 70f7155fcc CMake: Propagate non-qtbase configure args to other repositories
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 946fc92d20

Task-number: QTBUG-84886
Task-number: COIN-601
Change-Id: Ie4305c5d799bf4a29da5032a691e797b49c3cf33
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-13 21:01:59 +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: Propagate non-qtbase configure args to other repositories 2020-07-13 21:01:59 +02:00
cmake_cross_compilation_qtbase_build_instructions.yaml CMake: Use custom install script to support Ninja Multi-Config builds 2020-05-19 10:16:11 +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.