qt5base-lts/coin/instructions
Tommi Mänttäri e506c84eb2 CI: use HOME directory for QNX license and PATH in Linux host builds
To ensure that both Linux and Windows host builds are equivalent
the Linux host builds need to use the common QNX SDP file that
support both host environments. This new QNX SDP does not include
QNX license files like previously, instead they are separately
installed by the Ansible scripts of the CI system to the $HOME/.qnx
directory. That directory is also supposed to be used for any possible
binaries found via PATH environment variable.

Task-number: QTBUG-101292
Pick-to: 6.3 6.2
Change-Id: I97ad71f00e8289e708c51565f86c6d0c84a9ae84
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2022-04-05 17:03:40 +03:00
..
qmake CMake: Build examples with qmake against a CMake built Qt 2020-12-04 15:39:32 +01:00
qmake_examples coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
call_cmake_for_standalone_tests.yaml Move bin/qt-internal-configure-tests to libexec 2021-03-30 14:39:12 +01:00
call_configure_module.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
call_configure_qtbase.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01: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_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 coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
cmake_build_and_upload_test_artifacts_target.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
cmake_build_and_upload_test_artifacts.yaml Remove useless error messaging 2022-03-17 16:14:36 +00:00
cmake_cross_compilation_module_build_instructions.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
cmake_cross_compilation_qtbase_build_instructions.yaml Coin: use CMAKE_STAGING_PREFIX for cross-compilations 2022-03-29 21:12:13 +00:00
cmake_documentation_build.yaml Build docs in-tree 2021-11-12 16:44:22 +00:00
cmake_module_build_instructions.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
cmake_qtbase_build_instructions.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
cmake_regular_test_instructions_common.yaml Coin: remove workarounds to allow running Android tests 2021-02-18 13:42:19 +02:00
cmake_regular_test_instructions_enforced.yaml CMake: Build minimal subset of tests in desktop static builds 2021-04-06 09:15:37 +01: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 Unset testrunner for bic tests 2022-03-25 10:53:54 +00:00
cmake_run_ctest_ignore_exit_code.yaml Increase the timeout for test targets 2021-06-02 21:02:41 +03:00
cmake_setup_running_qnxqemu_tests_env_vars.yaml Clean up QNX platform configs and improve testrunner scripts 2022-02-14 12:56:06 +01:00
cmake_setup_running_tests_env_vars.yaml Introduce qt-testrunner.py 2022-01-03 16:32:56 +01:00
coin_module_build_template_v2.yaml CI: Enable rest of the Qt modules for QNX 2021-12-14 10:41:56 +02:00
coin_module_test_android_start_emulator.yaml Properly wait for the Android emulator to fully boot 2022-01-07 19:34:50 +01:00
coin_module_test_docs.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01: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_qnx_start_emulator.yaml CI: Increase QNX qemu startup timeout 2022-03-30 08:42:52 +00:00
coin_module_test_template_common.yaml CI: Add QNX qemu support 2021-10-27 13:30:01 +03:00
coin_module_test_template_v2.yaml CI: Enable building autotests for QNX QEMU 2021-10-27 10:30:02 +00:00
coin_module_test_template_v3.yaml CI: Enable building autotests for QNX QEMU 2021-10-27 10:30:02 +00:00
coin_qtbase_build_template_v2.yaml Turn on autotest build for INTEGRITY on CI 2021-12-01 22:48:49 +02:00
coin_qtbase_test_docs.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
prepare_building_env.yaml CI: use HOME directory for QNX license and PATH in Linux host builds 2022-04-05 17:03:40 +03:00
prepare_configure_executable.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
prepare_configure_module_executable.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
prepare_install_dir_suffix_host.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
prepare_install_dir_suffix_target.yaml coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01:00
README.md coin: Use configure and qt-configure-module in instructions 2022-03-17 17:14:36 +01: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.

Environment variable description and usage

The following environment variables are used in Coin instructions when building Qt, tests, etc:

CONFIGURE_ARGS - contains platform-specific configure-style arguments (e.g. -shared), that will be passed to a qtbase configure call CMAKE_ARGS - contains platform-specific CMake-style arguments (e.g. -DOPENSSL_ROOT_DIR=Foo) that will be passed to a qtbase configure call NON_QTBASE_CONFIGURE_ARGS - contains platform-specific configure-style arguments that will be passed to a non-qtbase qt-configure-module call NON_QTBASE_CMAKE_ARGS - contains platform-specific CMake-style arguments that will be passed to a non-qtbase qt-configure-module call COMMON_CMAKE_ARGS - platform-independent CMake-style args set in prepare_building_env.yaml that apply to qtbase configurations only. COMMON_NON_QTBASE_CMAKE_ARGS - platform-independent CMake-style args set in prepare_building_env.yaml that apply to configuration of repos other than qtbase COMMON_TEST_CMAKE_ARGS - platform-independent CMake-style args set in prepare_building_env.yaml that apply to configuration of all standalone tests

All of the above apply to host builds only.

There is a a set of environment variables that apply to target builds when cross-compiling which mirror the ones above. They are:

TARGET_CONFIGURE_ARGS TARGET_CMAKE_ARGS NON_QTBASE_TARGET_CONFIGURE_ARGS NON_QTBASE_TARGET_CMAKE_ARGS

COMMON_TARGET_CMAKE_ARGS COMMON_NON_QTBASE_TARGET_CMAKE_ARGS COMMON_TARGET_TEST_CMAKE_ARGS

Currently, there are no common configure-style variables for configuring repos or tests, only ``CMake-style` ones.

COIN_CMAKE_ARGS contains the final set of cmake args that is passed to configure / qt-configure-module, it is built up from the variables above + any additional values added by custom instructions, like specification of CMAKE_INSTALL_PREFIX etc.

INSTALL_DIR_SUFFIX is used to append either /host or /target suffixes to install paths in instructions when cross-building.

CONFIGURE_EXECUTABLE contains a platform-specific path to configure / qt-configure-module or cmake/ qt-cmake depending on whether UseConfigure feature is enabled.

CONFIGURE_ENV_PREFIX contains the value of either ENV_PREFIX or TARGET_ENV_PREFIX depending on whether it's a cross-build configure call. The values are used when configuring and building, to ensure that things like compilers are found correctly.

We use unixPathSeparators to pass an install prefix with forward slashes even on Windows, to avoid escaping issues when using configure.