diff options
-rwxr-xr-x | bin/qt-internal-configure-tests.in | 3 | ||||
-rw-r--r-- | cmake/QtWrapperScriptHelpers.cmake | 32 | ||||
-rw-r--r-- | coin/instructions/call_cmake_for_standalone_tests.yaml | 4 | ||||
-rw-r--r-- | coin/instructions/cmake_build_and_upload_test_artifacts.yaml | 4 |
4 files changed, 39 insertions, 4 deletions
diff --git a/bin/qt-internal-configure-tests.in b/bin/qt-internal-configure-tests.in new file mode 100755 index 0000000000..396cda7bf8 --- /dev/null +++ b/bin/qt-internal-configure-tests.in @@ -0,0 +1,3 @@ +@script_os_prelude@ + +@qt_cmake_path@ @script_passed_args@ diff --git a/cmake/QtWrapperScriptHelpers.cmake b/cmake/QtWrapperScriptHelpers.cmake index bf8205c46a..581fd3c6d8 100644 --- a/cmake/QtWrapperScriptHelpers.cmake +++ b/cmake/QtWrapperScriptHelpers.cmake @@ -108,4 +108,36 @@ function(qt_internal_create_wrapper_scripts) "${QT_BUILD_DIR}/${INSTALL_BINDIR}/${__qt_cmake_install_script_name}" @ONLY) qt_install(PROGRAMS "${QT_BUILD_DIR}/${INSTALL_BINDIR}/${__qt_cmake_install_script_name}" DESTINATION "${INSTALL_BINDIR}") + + qt_internal_create_qt_configure_tests_wrapper_script() +endfunction() + +function(qt_internal_create_qt_configure_tests_wrapper_script) + # Create a private wrapper script to configure and build all standalone tests. + # + # The script uses qt-cmake instead of qt-cmake-private on purpose. That's to ensure we build + # only one configuration of tests (e.g RelWithDebInfo only) when Qt is configured with more + # than one configuration (RelWithDebInfo;Debug). + # Meant to be used by our CI instructions. + # + # The script takes a path to the repo for which the standalone tests will be configured. + set(script_name "qt-internal-configure-tests") + set(qt_cmake_path + "${QT_STAGING_PREFIX}/${INSTALL_BINDIR}/qt-cmake") + + set(common_args "-DQT_BUILD_STANDALONE_TESTS=ON") + if(CMAKE_HOST_UNIX) + set(script_os_prelude "#!/bin/sh") + string(PREPEND qt_cmake_path "exec ") + set(script_passed_args "${common_args} \"$@\"") + else() + set(script_os_prelude "@echo off") + string(APPEND script_name ".bat") + string(APPEND qt_cmake_path ".bat") + set(script_passed_args "${common_args} %*") + endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bin/qt-internal-configure-tests.in" + "${QT_BUILD_DIR}/${INSTALL_BINDIR}/${script_name}") + qt_install(PROGRAMS "${QT_BUILD_DIR}/${INSTALL_BINDIR}/${script_name}" + DESTINATION "${INSTALL_BINDIR}") endfunction() diff --git a/coin/instructions/call_cmake_for_standalone_tests.yaml b/coin/instructions/call_cmake_for_standalone_tests.yaml index 8414ee44a1..501ab3abab 100644 --- a/coin/instructions/call_cmake_for_standalone_tests.yaml +++ b/coin/instructions/call_cmake_for_standalone_tests.yaml @@ -1,7 +1,7 @@ type: Group instructions: - type: ExecuteCommand - command: "{{.Env.TESTS_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_CMAKE_TESTS}}\\bin\\qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.TESTS_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_CMAKE_TESTS}}\\bin\\qt-internal-configure-tests {{.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.TESTS_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_CMAKE_TESTS}}/bin/qt-cmake {{.Env.COIN_CMAKE_ARGS}}" + command: "{{.Env.TESTS_ENV_PREFIX}} {{.Env.INSTALL_DIR_FOR_CMAKE_TESTS}}/bin/qt-internal-configure-tests {{.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 1ed88ff7d5..84077980b8 100644 --- a/coin/instructions/cmake_build_and_upload_test_artifacts.yaml +++ b/coin/instructions/cmake_build_and_upload_test_artifacts.yaml @@ -10,14 +10,14 @@ instructions: directory: "{{.BuildDir}}" - type: AppendToEnvironmentVariable variableName: COIN_CMAKE_ARGS - variableValue: " -DQT_BUILD_STANDALONE_TESTS=ON -DCMAKE_AUTOGEN_VERBOSE=ON -S {{.SourceDir}} -B ." + variableValue: " -DCMAKE_AUTOGEN_VERBOSE=ON -S {{.SourceDir}} -B ." disable_if: condition: runtime env_var: COIN_CMAKE_ARGS equals_value: null - type: EnvironmentVariable variableName: COIN_CMAKE_ARGS - variableValue: "-DQT_BUILD_STANDALONE_TESTS=ON -DCMAKE_AUTOGEN_VERBOSE=ON -S {{.SourceDir}} -B ." + variableValue: "-DCMAKE_AUTOGEN_VERBOSE=ON -S {{.SourceDir}} -B ." enable_if: condition: runtime env_var: COIN_CMAKE_ARGS |