coin: Allow using configure instead of cmake for top-level builds

This is the qt5 counterpart to the qtbase instructions to allow
using configure instead of cmake when configuring a top-level build.

Pick-to: 6.2 6.3
Task-number: QTQAINFRA-4357
Task-number: QTQAINFRA-4815
Change-Id: Ie5af31f9349a6dd88fa7699d40dad659180814e2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Toni Saario <toni.saario@qt.io>
This commit is contained in:
Alexandru Croitor
2022-03-01 11:21:14 +01:00
parent 12a87cba0a
commit 2ee43055ed
2 changed files with 71 additions and 1 deletions

View File

@@ -7,10 +7,43 @@ instructions:
directory: "{{.SourceDir}}"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- !include "{{qt/qt5}}/prepare_configure_executable.yaml"
- type: EnvironmentVariable
variableName: COIN_CONFIGURE_ARGS
variableValue: "{{.Env.CONFIGURE_ARGS}}"
- type: EnvironmentVariable
variableName: COIN_CMAKE_ARGS
# Use unix separators even on Windows, to avoid escaping issues in the configure script.
variableValue: "{{.Env.CMAKE_ARGS}} {{.Env.COMMON_CMAKE_ARGS}} -DCMAKE_INSTALL_PREFIX:PATH={{unixPathSeparators .InstallDir}}"
- type: EnvironmentVariable
variableName: CONFIGURE_ENV_PREFIX
variableValue: "{{.Env.ENV_PREFIX}}"
- type: ExecuteCommand
command: "{{.Env.ENV_PREFIX}} cmake {{.Env.CONFIGURE_ARGS}} -DCMAKE_INSTALL_PREFIX:PATH={{.InstallDir}} -DQT_BUILD_TESTS=OFF {{.SourceDir}}"
# There is no SourceDir on purpose, because configure is called directly from qtbase,
# so the script knows it's own source dir.
# TODO: Consider removing these instructions, and using the ones in qtbase/call_configure_qtbase.yaml
# once all dependencies are propagated.
command: "{{.Env.CONFIGURE_ENV_PREFIX}} {{.Env.CONFIGURE_EXECUTABLE}} {{.Env.COIN_CONFIGURE_ARGS}} -- {{.Env.COIN_CMAKE_ARGS}}"
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
maxTimeInSeconds: 6000
maxTimeBetweenOutput: 1200
userMessageOnFailure: >
Failed to call cmake.
enable_if:
condition: property
property: features
contains_value: UseConfigure
- type: ExecuteCommand
command: "{{.Env.CONFIGURE_ENV_PREFIX}} {{.Env.CONFIGURE_EXECUTABLE}} {{.SourceDir}} {{.Env.COIN_CONFIGURE_ARGS}} {{.Env.COIN_CMAKE_ARGS}}"
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
maxTimeInSeconds: 6000
maxTimeBetweenOutput: 1200
userMessageOnFailure: >
Failed to call cmake.
disable_if:
condition: property
property: features
contains_value: UseConfigure

View File

@@ -0,0 +1,37 @@
# Call either cmake or configure depending on whether the
# UseConfigure platform configuration feature is set.
# We should remove the cmake branch, once all platform configurations
# are ported to use configure.
# TODO: Remove this file, and reference the one in qtbase, once all
# all dependencies are propagated.
type: Group
instructions:
- type: Group
enable_if:
condition: property
property: features
contains_value: UseConfigure
instructions:
- type: EnvironmentVariable
variableName: CONFIGURE_EXECUTABLE
variableValue: "{{.SourceDir}}/configure"
disable_if:
condition: property
property: host.os
equals_value: Windows
- type: EnvironmentVariable
variableName: CONFIGURE_EXECUTABLE
variableValue: "{{.SourceDir}}\\configure.bat"
enable_if:
condition: property
property: host.os
equals_value: Windows
- type: Group
disable_if:
condition: property
property: features
contains_value: UseConfigure
instructions:
- type: EnvironmentVariable
variableName: CONFIGURE_EXECUTABLE
variableValue: "cmake"