diff --git a/cmake/QtSetup.cmake b/cmake/QtSetup.cmake index 868e9aeb668..6ab53c2a524 100644 --- a/cmake/QtSetup.cmake +++ b/cmake/QtSetup.cmake @@ -241,7 +241,8 @@ option(QT_BUILD_MANUAL_TESTS "Build Qt manual tests" OFF) option(QT_BUILD_MINIMAL_STATIC_TESTS "Build minimal subset of tests for static Qt builds" OFF) ## Find host tools (if non native): -set(QT_HOST_PATH "" CACHE PATH "Installed Qt host directory path, used for cross compiling.") +set(QT_HOST_PATH "$ENV{QT_HOST_PATH}" CACHE PATH + "Installed Qt host directory path, used for cross compiling.") if (CMAKE_CROSSCOMPILING) if(NOT IS_DIRECTORY "${QT_HOST_PATH}") diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in index 4e219a604b7..c565e923ffa 100644 --- a/cmake/qt.toolchain.cmake.in +++ b/cmake/qt.toolchain.cmake.in @@ -161,10 +161,16 @@ set(__qt_toolchain_initial_qt_host_path set(__qt_toolchain_initial_qt_host_path_cmake_dir "@qt_host_path_cmake_dir_absolute@") -# Prefer initially configured path if none was explicitly set. -if(NOT DEFINED QT_HOST_PATH AND __qt_toolchain_initial_qt_host_path - AND EXISTS "${__qt_toolchain_initial_qt_host_path}") - set(QT_HOST_PATH "${__qt_toolchain_initial_qt_host_path}" CACHE PATH "") +# QT_HOST_PATH precedence: +# - cache variable / command line option +# - environment variable +# - initial QT_HOST_PATH when qtbase was configured (and the directory exists) +if(NOT DEFINED QT_HOST_PATH) + if(DEFINED ENV{QT_HOST_PATH}) + set(QT_HOST_PATH "$ENV{QT_HOST_PATH}" CACHE PATH "") + else(__qt_toolchain_initial_qt_host_path AND EXISTS "${__qt_toolchain_initial_qt_host_path}") + set(QT_HOST_PATH "${__qt_toolchain_initial_qt_host_path}" CACHE PATH "") + endif() endif() if(NOT QT_HOST_PATH STREQUAL "")