CMake: Allow opting out of Qt6HostInfo package lookup in user projects
A developer can cross-compile Qt and force the build of the tools for the target architecture. In this case, the resulting Qt libraries and tools can theoretically be used as an SDK on the target platform without having to rely on host tools or packages. Examples of this scenario include Boot2Qt, cross-building a Qt SDK for a raspberry pi on a more powerful machine, or cross-building an arm64 macOS SDK on an x86_64 machine. To achieve that, the build system needs a way of disabling the mandatory host path check and the lookup of the Qt6HostInfo package that are added due to the nature of 'usual' cross-compilation cases. This was partially addressed in 0f8017efb6d037c4f33f947eb3c56aeafa28313c by offering an opt out via the QT_REQUIRE_HOST_PATH_CHECK and QT_NO_REQUIRE_HOST_PATH_CHECK variables. The change was incomplete though. While it was possible to disable the _qt_internal_setup_qt_host_path call at user project time, it was not possible to disable the lookup of the required Qt6HostInfo package in _qt_internal_find_host_info_package. Change the code to consider the value of QT_REQUIRE_HOST_PATH_CHECK also when looking up the Qt6HostInfo package in Qt6Dependencies.cmake in user projects. When building additional Qt repos, as opposed to user projects, where we call _qt_internal_find_host_info_package in qt_internal_setup_find_host_info_package via the BuildInternals package, users will still need to pass both QT_REQUIRE_HOST_PATH_CHECK and QT_NO_REQUIRE_HOST_PATH_CHECK to disable the host path check. This case is less likely to happen, so no adjustment is made to unify that behavior. Additionally make it also possible to use an environment variable as an opt-out with the same QT_REQUIRE_HOST_PATH_CHECK name. Amends 0f8017efb6d037c4f33f947eb3c56aeafa28313c Change-Id: I3b1f35d1540493680323330bddc28c65e88b966f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit 98450a332e317aeafa3381abd6266829e8900758) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
27dc042712
commit
fdd8924dce
@ -3,7 +3,13 @@
|
||||
|
||||
set(@INSTALL_CMAKE_NAMESPACE@_FOUND FALSE)
|
||||
|
||||
set(__qt_platform_requires_host_info_package "@platform_requires_host_info_package@")
|
||||
if(DEFINED QT_REQUIRE_HOST_PATH_CHECK)
|
||||
set(__qt_platform_requires_host_info_package "${QT_REQUIRE_HOST_PATH_CHECK}")
|
||||
elseif(DEFINED ENV{QT_REQUIRE_HOST_PATH_CHECK})
|
||||
set(__qt_platform_requires_host_info_package "$ENV{QT_REQUIRE_HOST_PATH_CHECK}")
|
||||
else()
|
||||
set(__qt_platform_requires_host_info_package "@platform_requires_host_info_package@")
|
||||
endif()
|
||||
set(__qt_platform_initial_qt_host_path "@qt_host_path_absolute@")
|
||||
set(__qt_platform_initial_qt_host_path_cmake_dir "@qt_host_path_cmake_dir_absolute@")
|
||||
|
||||
|
@ -265,6 +265,8 @@ macro(_qt_internal_setup_qt_host_path
|
||||
# Requiredness can be overridden via variable.
|
||||
if(DEFINED QT_REQUIRE_HOST_PATH_CHECK)
|
||||
set(_qt_platform_host_path_required "${QT_REQUIRE_HOST_PATH_CHECK}")
|
||||
elseif(DEFINED ENV{QT_REQUIRE_HOST_PATH_CHECK})
|
||||
set(_qt_platform_host_path_required "$ENV{QT_REQUIRE_HOST_PATH_CHECK}")
|
||||
else()
|
||||
set(_qt_platform_host_path_required "${host_path_required}")
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user