If the VerifySBOM feature is enabled, pass additional options to CMake configuration: - runs syntactic verification of the SBOM - so it converts the generated SBOM files into JSON files (and installs them). This does additional useful validations. - runs the NTIA SBOM verifier - shows some of the content in the SBOM in a more user-friendly table format via the sbom2doc python app - runs sbomaudit to show things like packages without a license expression, doesn't exit with errors if issues are found. To ensure the tables are wide enough in the log on the CI, we set an explicit value for COLUMNS env var, which is used by sbom2doc to determine the table size. To ensure the sbom2doc and sbomaudit python applications are found, we supply additional locations where they can be found, via the env vars that coin python provisioning sets. We also make sure to pass the found application paths when executing the python apps, because they might not be in PATH by default. Task-number: QTBUG-122899 Change-Id: I0baef8b9c949209b15ab304e1e840b4dcdf5a61c Reviewed-by: Toni Saario <toni.saario@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 83ff34d1c626759224a95f39bca8337a8390ed52) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> |
||
|---|---|---|
| .. | ||
| debian | ||
| qmake | ||
| qmake_examples | ||
| README.md | ||
| call_cmake_for_standalone_examples.yaml | ||
| call_cmake_for_standalone_tests.yaml | ||
| call_configure_module.yaml | ||
| call_configure_qtbase.yaml | ||
| call_host_install.yaml | ||
| call_target_install.yaml | ||
| cmake_build_and_upload_test_artifacts.yaml | ||
| cmake_build_and_upload_test_artifacts_host.yaml | ||
| cmake_build_and_upload_test_artifacts_target.yaml | ||
| cmake_build_standalone_examples.yaml | ||
| cmake_build_standalone_examples_host.yaml | ||
| cmake_build_standalone_examples_target.yaml | ||
| cmake_cross_compilation_module_build_instructions.yaml | ||
| cmake_cross_compilation_qtbase_build_instructions.yaml | ||
| cmake_documentation_build.yaml | ||
| cmake_module_build_instructions.yaml | ||
| cmake_qtbase_build_instructions.yaml | ||
| cmake_regular_test_instructions.yaml | ||
| cmake_run_ctest.yaml | ||
| cmake_setup_running_qnxqemu_tests_env_vars.yaml | ||
| cmake_setup_running_tests_env_vars.yaml | ||
| coin_module_axivion_template_v2.yaml | ||
| coin_module_build_template_v2.yaml | ||
| coin_module_test_android_start_emulator.yaml | ||
| coin_module_test_docs.yaml | ||
| coin_module_test_qemu_env_vars.yaml | ||
| coin_module_test_qnx_start_emulator.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 | ||
| coin_qtbase_test_docs.yaml | ||
| prepare_android_multi_abi_env.yaml | ||
| prepare_building_env.yaml | ||
| prepare_configure_executable.yaml | ||
| prepare_configure_module_executable.yaml | ||
| prepare_install_dir_suffix_host.yaml | ||
| prepare_install_dir_suffix_target.yaml | ||
README.md
Information about Coin instruction templates
Build templates
coin_qtbase_build_template_v2.yamldid not exist. The build instructions were directly embedded intomodule_config.yamland did not support repos outside of qtbase, also no cross-compilation.coin_qtbase_build_template_v2introduced support for building other repos, and also enabled build cross-compiling targets likeAndroidandiOS. A bit later the template gained the ability to buildqemucross-compiling configurations. The counterpart to qtbase to build other repositories iscoin_module_build_template_v2
Test templates
coin_module_test_template_v1did not exist. The test instructions were directly embedded intomodule_config.yamland did not support repos outside of qtbase, also no cross-compilation.coin_module_test_template_v2introduced 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 forqemucross-compiling configurations.coin_module_test_template_v3changed 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.