diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-07-15 18:14:20 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-07-25 19:52:18 +0200 |
commit | a41bef8edeffe7b77970968533793a587215d977 (patch) | |
tree | 70558a94841e387d5e0b14f0df38dd3d3edf7d78 /cmake | |
parent | bee6f47d224e4e9f35d8994efa8d7c969a06d2c2 (diff) |
CMake: Move Qt6HostInfo lookup into a function
Also replace the duplicate call in QtSetup using the
new function.
To do that, we have to actually the call it in QtBuild
after QtPublicDependencyHelpers.cmake is available.
That call is needed so that Qt6_HOST_INFO_foo variables
are available in qt_generate_qmake_and_qtpaths_wrapper_for_target.
Pick-to: 6.4
Task-number: QTBUG-104998
Change-Id: Ic5776c214bee6bedcea714b213b0e5a42c1bae06
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 8 | ||||
-rw-r--r-- | cmake/QtConfig.cmake.in | 10 | ||||
-rw-r--r-- | cmake/QtConfigDependencies.cmake.in | 2 | ||||
-rw-r--r-- | cmake/QtPublicDependencyHelpers.cmake | 12 | ||||
-rw-r--r-- | cmake/QtSetup.cmake | 19 |
5 files changed, 24 insertions, 27 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index f338ec63d3..d3d41dbd07 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -552,6 +552,14 @@ include(QtPublicFindPackageHelpers) include(QtPublicDependencyHelpers) include(QtPublicToolHelpers) +if(CMAKE_CROSSCOMPILING) + if(NOT IS_DIRECTORY "${QT_HOST_PATH}") + message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.") + endif() +endif() + +_qt_internal_find_host_info_package() + # TODO: This block provides support for old variables. It should be removed once # we remove all references to these variables in other Qt module repos. # Prefer to use the provided commands to retrieve the relevant things instead. diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in index b8db0c8da3..b9cf5e0964 100644 --- a/cmake/QtConfig.cmake.in +++ b/cmake/QtConfig.cmake.in @@ -23,16 +23,6 @@ else() QT_VERSION_PATCH @PROJECT_VERSION_PATCH@) endif() -if(NOT "${QT_HOST_PATH}" STREQUAL "") - find_package(Qt@PROJECT_VERSION_MAJOR@HostInfo - CONFIG - REQUIRED - PATHS "${QT_HOST_PATH}" - "${QT_HOST_PATH_CMAKE_DIR}" - NO_CMAKE_FIND_ROOT_PATH - NO_DEFAULT_PATH) -endif() - get_filename_component(_qt_import_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_qt_import_prefix "${_qt_import_prefix}" REALPATH) list(APPEND CMAKE_MODULE_PATH "${_qt_import_prefix}") diff --git a/cmake/QtConfigDependencies.cmake.in b/cmake/QtConfigDependencies.cmake.in index d7176435e7..aabfa90328 100644 --- a/cmake/QtConfigDependencies.cmake.in +++ b/cmake/QtConfigDependencies.cmake.in @@ -1,5 +1,7 @@ set(@INSTALL_CMAKE_NAMESPACE@_FOUND FALSE) +_qt_internal_find_host_info_package() + # note: _third_party_deps example: "ICU\\;FALSE\\;1.0\\;i18n uc data;ZLIB\\;FALSE\\;\\;" set(__qt_third_party_deps "@third_party_deps@") diff --git a/cmake/QtPublicDependencyHelpers.cmake b/cmake/QtPublicDependencyHelpers.cmake index 9a61eafed4..5abd9cff38 100644 --- a/cmake/QtPublicDependencyHelpers.cmake +++ b/cmake/QtPublicDependencyHelpers.cmake @@ -191,3 +191,15 @@ macro(_qt_internal_save_find_package_context_for_debugging infix) set(_qt_${infix}_qt_cmake_dir "${_qt_cmake_dir}") endif() endmacro() + +macro(_qt_internal_find_host_info_package) + if(NOT "${QT_HOST_PATH}" STREQUAL "") + find_package(Qt6HostInfo + CONFIG + REQUIRED + PATHS "${QT_HOST_PATH}" + "${QT_HOST_PATH_CMAKE_DIR}" + NO_CMAKE_FIND_ROOT_PATH + NO_DEFAULT_PATH) + endif() +endmacro() diff --git a/cmake/QtSetup.cmake b/cmake/QtSetup.cmake index 60b0bd0209..c9d2655bd9 100644 --- a/cmake/QtSetup.cmake +++ b/cmake/QtSetup.cmake @@ -254,26 +254,11 @@ unset(_qt_build_examples_as_external) 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): +## Path used to find host tools, either when cross-compiling or just when using the tools from +## a different host build. 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}") - message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.") - endif() -endif() - -if(NOT "${QT_HOST_PATH}" STREQUAL "") - find_package(${INSTALL_CMAKE_NAMESPACE}HostInfo - CONFIG - REQUIRED - PATHS "${QT_HOST_PATH}" - "${QT_HOST_PATH_CMAKE_DIR}" - NO_CMAKE_FIND_ROOT_PATH - NO_DEFAULT_PATH) -endif() - ## Android platform settings if(ANDROID) include(QtPlatformAndroid) |