From 941039356df56dfbf5a4b4f828a577ca8b8fb025 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 18 May 2020 17:05:50 +0200 Subject: [PATCH] CMake: Use the same generator when building other repositories If we configure qtbase with Ninja Multi-Config, we should use the same generator when building other repositories as well, to ensure that all repositories have the same set of configurations (debug and release). To do that, the Coin instructions will call the qt-cmake-private wrapper which records the generator used. For standalone tests continue to use qt-cmake, so that only a single configuration is built (no need to build tests in both debug and release mode). The configuration built will be the first one from the initial list with which qtbase was configured (usually RelWithDebiInfo). This is ensured by the QtBuildInternalsExtraConfig.cmake file. Task-number: QTBUG-80900 Change-Id: I701b2f652a22d51e640a6fdf19c3b2d2dfb34d5c Reviewed-by: Simon Hausmann --- coin/instructions/call_cmake.yaml | 4 ++-- .../call_cmake_for_standalone_tests.yaml | 24 +++++++++++++++++++ coin/instructions/call_host_cmake.yaml | 4 ++-- coin/instructions/call_target_cmake.yaml | 4 ++-- ...cmake_build_and_upload_test_artifacts.yaml | 2 +- 5 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 coin/instructions/call_cmake_for_standalone_tests.yaml diff --git a/coin/instructions/call_cmake.yaml b/coin/instructions/call_cmake.yaml index bbebd6af33a..96227c1f6a1 100644 --- a/coin/instructions/call_cmake.yaml +++ b/coin/instructions/call_cmake.yaml @@ -1,7 +1,7 @@ type: Group instructions: - type: ExecuteCommand - command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\bin\\qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\bin\\qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 @@ -12,7 +12,7 @@ instructions: property: host.os equals_value: Windows - type: ExecuteCommand - command: "{{.InstallDir}}/bin/qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.InstallDir}}/bin/qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 diff --git a/coin/instructions/call_cmake_for_standalone_tests.yaml b/coin/instructions/call_cmake_for_standalone_tests.yaml new file mode 100644 index 00000000000..bbebd6af33a --- /dev/null +++ b/coin/instructions/call_cmake_for_standalone_tests.yaml @@ -0,0 +1,24 @@ +type: Group +instructions: + - type: ExecuteCommand + command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\bin\\qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to call cmake. + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: ExecuteCommand + command: "{{.InstallDir}}/bin/qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution + maxTimeInSeconds: 6000 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: > + Failed to call cmake. + disable_if: + condition: property + property: host.os + equals_value: Windows diff --git a/coin/instructions/call_host_cmake.yaml b/coin/instructions/call_host_cmake.yaml index f2056966b05..4182f9b622a 100644 --- a/coin/instructions/call_host_cmake.yaml +++ b/coin/instructions/call_host_cmake.yaml @@ -1,7 +1,7 @@ type: Group instructions: - type: ExecuteCommand - command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\host\\bin\\qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.ENV_PREFIX}} {{.InstallDir}}\\host\\bin\\qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 @@ -12,7 +12,7 @@ instructions: property: host.os equals_value: Windows - type: ExecuteCommand - command: "{{.InstallDir}}/host/bin/qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.InstallDir}}/host/bin/qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 diff --git a/coin/instructions/call_target_cmake.yaml b/coin/instructions/call_target_cmake.yaml index 5f687a96fdc..e8dc7f3f97a 100644 --- a/coin/instructions/call_target_cmake.yaml +++ b/coin/instructions/call_target_cmake.yaml @@ -1,7 +1,7 @@ type: Group instructions: - type: ExecuteCommand - command: "{{.Env.TARGET_ENV_PREFIX}} {{.InstallDir}}\\target\\bin\\qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.TARGET_ENV_PREFIX}} {{.InstallDir}}\\target\\bin\\qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 @@ -12,7 +12,7 @@ instructions: property: host.os equals_value: Windows - type: ExecuteCommand - command: "{{.Env.TARGET_ENV_PREFIX}} {{.InstallDir}}/target/bin/qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.TARGET_ENV_PREFIX}} {{.InstallDir}}/target/bin/qt-cmake-private {{.Env.COIN_CMAKE_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 6000 maxTimeBetweenOutput: 1200 diff --git a/coin/instructions/cmake_build_and_upload_test_artifacts.yaml b/coin/instructions/cmake_build_and_upload_test_artifacts.yaml index 2df45ff07e5..92e28163466 100644 --- a/coin/instructions/cmake_build_and_upload_test_artifacts.yaml +++ b/coin/instructions/cmake_build_and_upload_test_artifacts.yaml @@ -11,7 +11,7 @@ instructions: - type: EnvironmentVariable variableName: COIN_CMAKE_ARGS variableValue: "-DQT_BUILD_STANDALONE_TESTS=ON -S {{.SourceDir}} -B ." - - !include "{{qt/qtbase}}/call_cmake.yaml" + - !include "{{qt/qtbase}}/call_cmake_for_standalone_tests.yaml" - type: ExecuteCommand command: "{{.Env.ENV_PREFIX}} cmake --build . --parallel -v" maxTimeInSeconds: 6000