CMake: Show the "Docker image ... not found" warning only once
...if docker / docker-compose are not installed. This amends commit 3223c06d43b1be658032c179397eaf6ed3b1f27c, which fixed the multiple warnings only for the docker image existence check. Remove the QT_TEST_DOCKER_WARNING_SHOWN global property and set the QT_SKIP_DOCKER_COMPOSE cache variable to ON instead. Now, we'll see the warning only once, and further re-configuration attempts won't even try to find the docker tools. Change-Id: I98a584ae91899ae8c4c347ee62601d791105d301 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
baffc8e47d
commit
1b9cf55117
@ -100,6 +100,10 @@ function(qt_internal_add_manual_test target)
|
||||
qt_internal_add_test(${ARGV} MANUAL)
|
||||
endfunction()
|
||||
|
||||
macro(qt_internal_skip_docker_compose)
|
||||
set(QT_SKIP_DOCKER_COMPOSE ON CACHE BOOL "Skip setting docker on Linux." FORCE)
|
||||
endmacro()
|
||||
|
||||
# This function will configure the fixture for the network tests that require docker network services
|
||||
# qmake counterpart: qtbase/mkspecs/features/unsupported/testserver.prf
|
||||
function(qt_internal_setup_docker_test_fixture name)
|
||||
@ -119,6 +123,7 @@ function(qt_internal_setup_docker_test_fixture name)
|
||||
find_program(QT_DOCKER_COMPOSE docker-compose)
|
||||
if (NOT QT_DOCKER_COMPOSE)
|
||||
message(WARNING "docker-compose was not found. Docker network tests will not be run.")
|
||||
qt_internal_skip_docker_compose()
|
||||
return()
|
||||
endif()
|
||||
if (NOT DEFINED QT_DOCKER_COMPOSE_VERSION)
|
||||
@ -130,20 +135,17 @@ function(qt_internal_setup_docker_test_fixture name)
|
||||
find_program(QT_DOCKER docker)
|
||||
if (NOT QT_DOCKER)
|
||||
message(WARNING "docker was not found. Docker network tests will not be run.")
|
||||
qt_internal_skip_docker_compose()
|
||||
return()
|
||||
endif()
|
||||
if (NOT DEFINED QT_DOCKER_TEST_SERVER)
|
||||
execute_process(COMMAND "${QT_DOCKER}" images -aq "qt-test-server-*" OUTPUT_VARIABLE QT_DOCKER_TEST_SERVER)
|
||||
if (NOT QT_DOCKER_TEST_SERVER)
|
||||
get_cmake_property(warning_shown QT_TEST_DOCKER_WARNING_SHOWN)
|
||||
if(warning_shown)
|
||||
return()
|
||||
endif()
|
||||
set_property(GLOBAL PROPERTY QT_TEST_DOCKER_WARNING_SHOWN ON)
|
||||
message(WARNING
|
||||
"Docker image qt-test-server-* not found.\n"
|
||||
"Run the provisioning script (coin/provisioning/.../testserver/docker_testserver.sh) in advance\n"
|
||||
"Docker network tests will not be run.")
|
||||
qt_internal_skip_docker_compose()
|
||||
return()
|
||||
endif()
|
||||
set(QT_DOCKER_TEST_SERVER "ON" CACHE BOOL "docker qt-test-server-* present")
|
||||
|
Loading…
x
Reference in New Issue
Block a user