diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-07-18 16:09:30 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2022-07-25 19:52:25 +0200 |
commit | 0f8017efb6d037c4f33f947eb3c56aeafa28313c (patch) | |
tree | 78ea843629b21b699cdb02c3a659f53e9aef27d2 /cmake/qt.toolchain.cmake.in | |
parent | 7b24ffa936880619f54c8cc1a459a0328238657c (diff) |
CMake: Move QT_HOST_PATH check and computation into Qt6 package
Instead of trying to compute and validate the QT_HOST_PATH and
QT_HOST_PATH_CMAKE_DIR variables in the generated toolchain file,
do it in the Qt6 package.
This provides better error messages when a project is configured
without using the Qt generated toolchain file.
Because it's not done in the toolchain anymore, remove the various
host variables from __qt_toolchain_used_variables.
Pick-to: 6.4
Task-number: QTBUG-104998
Change-Id: I1ca239ff83b8f783897e171fee352fc43e8ad7a8
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Diffstat (limited to 'cmake/qt.toolchain.cmake.in')
-rw-r--r-- | cmake/qt.toolchain.cmake.in | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in index e20fb6c1b3..15cf7a432e 100644 --- a/cmake/qt.toolchain.cmake.in +++ b/cmake/qt.toolchain.cmake.in @@ -3,11 +3,7 @@ set(__qt_toolchain_used_variables QT_TOOLCHAIN_INCLUDE_FILE QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR QT_TOOLCHAIN_RELOCATABLE_PREFIX - QT_HOST_PATH - QT_HOST_PATH_CMAKE_DIR - QT_REQUIRE_HOST_PATH_CHECK QT_ADDITIONAL_PACKAGES_PREFIX_PATH - QT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH ) @init_additional_used_variables@ @@ -154,73 +150,6 @@ if(QT_TOOLCHAIN_INCLUDE_FILE) endif() endif() -# Set up QT_HOST_PATH and do sanity checks. -# A host path is required when cross-compiling but optional when doing a native build. -# Requiredness can be overridden via variable. -if(DEFINED QT_REQUIRE_HOST_PATH_CHECK) - set(__qt_toolchain_host_path_required "${QT_REQUIRE_HOST_PATH_CHECK}") -else() - set(__qt_toolchain_host_path_required "@qt_host_path_required@") -endif() -set(__qt_toolchain_initial_qt_host_path - "@qt_host_path_absolute@") -set(__qt_toolchain_initial_qt_host_path_cmake_dir - "@qt_host_path_cmake_dir_absolute@") - -# 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 "") - get_filename_component(__qt_toolchain_host_path_absolute "${QT_HOST_PATH}" ABSOLUTE) -endif() - -if(__qt_toolchain_host_path_required AND - ("${QT_HOST_PATH}" STREQUAL "" OR NOT EXISTS "${__qt_toolchain_host_path_absolute}")) - message(FATAL_ERROR - "To use a cross-compiled Qt, please set the QT_HOST_PATH cache variable to the location " - "of your host Qt installation.") -endif() - -# QT_HOST_PATH_CMAKE_DIR is needed to work around the rerooting issue when looking for host tools -# See REROOT_PATH_ISSUE_MARKER. -# Prefer initially configured path if none was explicitly set. -if(__qt_toolchain_host_path_required AND NOT DEFINED QT_HOST_PATH_CMAKE_DIR) - if(__qt_toolchain_initial_qt_host_path_cmake_dir - AND EXISTS "${__qt_toolchain_initial_qt_host_path_cmake_dir}") - set(QT_HOST_PATH_CMAKE_DIR "${__qt_toolchain_initial_qt_host_path_cmake_dir}" CACHE PATH "") - else() - # First try to auto-compute the location instead of requiring to set QT_HOST_PATH_CMAKE_DIR - # explicitly. - set(__qt_candidate_host_path_cmake_dir "${QT_HOST_PATH}/lib/cmake") - if(__qt_candidate_host_path_cmake_dir AND EXISTS "${__qt_candidate_host_path_cmake_dir}") - set(QT_HOST_PATH_CMAKE_DIR - "${__qt_candidate_host_path_cmake_dir}" CACHE PATH "") - endif() - endif() -endif() - -if(NOT QT_HOST_PATH_CMAKE_DIR STREQUAL "") - get_filename_component(__qt_toolchain_host_path_cmake_dir_absolute - "${QT_HOST_PATH_CMAKE_DIR}" ABSOLUTE) -endif() - -if(__qt_toolchain_host_path_required AND - ("${QT_HOST_PATH_CMAKE_DIR}" STREQUAL "" - OR NOT EXISTS "${__qt_toolchain_host_path_cmake_dir_absolute}")) - message(FATAL_ERROR - "To use a cross-compiled Qt, please set the QT_HOST_PATH_CMAKE_DIR cache variable to " - "the location of your host Qt installation lib/cmake directory.") -endif() - # Store initial build type (if any is specified) to be read by QtBuildInternals.cmake when building # a Qt repo, standalone tests or a single test. if(DEFINED CACHE{CMAKE_BUILD_TYPE}) |