Skip to content

Commit

Permalink
CMake: Provide a qt-internal-configure-tests script
Browse files Browse the repository at this point in the history
This is meant to be called by our CI instructions to build standalone
tests of a Qt repository.

Currently it just calls qt-cmake with
-DQT_BUILD_STANDALONE_TESTS=ON, but it might contain more things in
the future.

The script also simplifies configuring standalone tests locally, due
to not having to remember the name of the magical variable.

Change our CI instructions to use the new script.

Change-Id: I6bc02b4e94adc9d0d05fecb0fe70a561043271f1
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Cristian Adam <[email protected]>
  • Loading branch information
alcroito committed Oct 26, 2020
1 parent c8d4296 commit bcc7d34
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 4 deletions.
3 changes: 3 additions & 0 deletions bin/qt-internal-configure-tests.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@script_os_prelude@

@qt_cmake_path@ @script_passed_args@
32 changes: 32 additions & 0 deletions cmake/QtWrapperScriptHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
4 changes: 2 additions & 2 deletions coin/instructions/call_cmake_for_standalone_tests.yaml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
4 changes: 2 additions & 2 deletions coin/instructions/cmake_build_and_upload_test_artifacts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit bcc7d34

Please sign in to comment.