qt5base-lts/coin/instructions/cmake_cross_compilation_module_build_instructions.yaml

95 lines
3.6 KiB
YAML
Raw Normal View History

type: Group
instructions:
- type: EnvironmentVariable
variableName: CMAKE_BUILD_TIMEOUT
variableValue: "6000"
enable_if:
condition: runtime
env_var: CMAKE_BUILD_TIMEOUT
equals_value: null
- type: EnvironmentVariable
variableName: CMAKE_BUILD_OUTPUT_TIMEOUT
variableValue: "1200"
enable_if:
condition: runtime
env_var: CMAKE_BUILD_OUTPUT_TIMEOUT
equals_value: null
- type: MakeDirectory
directory: .git
- type: MakeDirectory
directory: build
- type: ChangeDirectory
directory: "{{.BuildDir}}/build"
- type: MakeDirectory
directory: target
- type: Group
instructions:
- type: MakeDirectory
directory: host
- type: SetBuildDirectory
directory: "{{.SourceDir}}/build/host"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- type: EnvironmentVariable
variableName: COIN_CMAKE_ARGS
# The lack of space between the non qtbase configure args and the rest of the args is important!
variableValue: "{{.Env.NON_QTBASE_CONFIGURE_ARGS}} -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON {{.SourceDir}}"
- !include "{{qt/qtbase}}/call_host_cmake.yaml"
- type: ExecuteCommand
command: "{{.Env.ENV_PREFIX}} cmake --build . --parallel -v"
maxTimeInSeconds: "{{.Env.CMAKE_BUILD_TIMEOUT}}"
maxTimeBetweenOutput: "{{.Env.CMAKE_BUILD_OUTPUT_TIMEOUT}}"
userMessageOnFailure: >
Failed to build sources. In the current state bug can be everywhere.
- type: EnvironmentVariable
variableName: COIN_CMAKE_INSTALL_SCRIPT_PATH
variableValue: "{{.InstallDir}}/host"
- !include "{{qt/qtbase}}/call_host_install.yaml"
- type: EnvironmentVariable
variableName: DESTDIR
variableValue: "{{.InstallRoot}}"
- !include "{{qt/qtbase}}/call_host_install.yaml"
enable_if:
condition: property
property: platformDependency
equals_value: null
- type: EnvironmentVariable
variableName: DESTDIR
variableValue: ""
- type: SetBuildDirectory
directory: "{{.SourceDir}}/build/target"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- type: EnvironmentVariable
variableName: COIN_CMAKE_ARGS
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 946fc92d20e720a82236877a378ce1c883533aa0 Task-number: QTBUG-84886 Task-number: COIN-601 Change-Id: Ie4305c5d799bf4a29da5032a691e797b49c3cf33 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 07:59:21 +00:00
# The lack of space between the non qtbase configure args and the rest of the args is important!
variableValue: "{{.Env.NON_QTBASE_TARGET_CONFIGURE_ARGS}} -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON {{.SourceDir}}"
- !include "{{qt/qtbase}}/call_target_cmake.yaml"
- type: ExecuteCommand
command: "{{.Env.TARGET_ENV_PREFIX}} cmake --build . --parallel -v"
maxTimeInSeconds: "{{.Env.CMAKE_BUILD_TIMEOUT}}"
maxTimeBetweenOutput: "{{.Env.CMAKE_BUILD_OUTPUT_TIMEOUT}}"
userMessageOnFailure: >
Failed to build sources. In the current state bug can be everywhere.
- type: EnvironmentVariable
variableName: COIN_CMAKE_INSTALL_SCRIPT_PATH
variableValue: "{{.InstallDir}}/target"
- !include "{{qt/qtbase}}/call_target_install.yaml"
- type: EnvironmentVariable
variableName: DESTDIR
variableValue: "{{.InstallRoot}}"
- !include "{{qt/qtbase}}/call_target_install.yaml"
- type: EnvironmentVariable
variableName: DESTDIR
variableValue: ""
- type: UploadArtifact
archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}"
transferType: UploadModuleBuildArtifact
maxTimeInSeconds: 1200
maxTimeBetweenOutput: 1200
- type: EnvironmentVariable
variableName: COIN_CONFIG_TYPE
variableValue: "Target"
- !include "{{qt/qtbase}}/qmake/get_qmake_location_target.yaml"
- !include "{{qt/qtbase}}/qmake_examples/build_qmake_examples_instructions.yaml"