diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index d293c0d083a..d5eb7c22cdc 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -140,7 +140,7 @@ qt_configure_process_path(INSTALL_DESCRIPTIONSDIR "${INSTALL_DATADIR}/modules" "Module description files directory") -if(CMAKE_CROSSCOMPILING AND NOT "${CMAKE_STAGING_PREFIX}" STREQUAL "") +if(NOT "${CMAKE_STAGING_PREFIX}" STREQUAL "") set(QT_STAGING_PREFIX "${CMAKE_STAGING_PREFIX}") else() set(QT_STAGING_PREFIX "${CMAKE_INSTALL_PREFIX}") diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake index f833a66f78a..49c55815094 100644 --- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake +++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake @@ -666,15 +666,21 @@ function(qt_compute_relative_path_from_cmake_config_dir_to_prefix) # # Similar code exists in Qt6CoreConfigExtras.cmake.in and src/corelib/CMakeLists.txt which # might not be needed anymore. + if(CMAKE_STAGING_PREFIX) + set(__qt_prefix "${CMAKE_STAGING_PREFIX}") + else() + set(__qt_prefix "${CMAKE_INSTALL_PREFIX}") + endif() + if(QT_WILL_INSTALL) get_filename_component(clean_config_prefix - "${CMAKE_INSTALL_PREFIX}/${QT_CONFIG_INSTALL_DIR}" ABSOLUTE) + "${__qt_prefix}/${QT_CONFIG_INSTALL_DIR}" ABSOLUTE) else() get_filename_component(clean_config_prefix "${QT_CONFIG_BUILD_DIR}" ABSOLUTE) endif() file(RELATIVE_PATH qt_path_from_cmake_config_dir_to_prefix - "${clean_config_prefix}" "${CMAKE_INSTALL_PREFIX}") + "${clean_config_prefix}" "${__qt_prefix}") set(qt_path_from_cmake_config_dir_to_prefix "${qt_path_from_cmake_config_dir_to_prefix}" PARENT_SCOPE) endfunction() diff --git a/cmake/QtSetup.cmake b/cmake/QtSetup.cmake index 17b81e9d49e..85bd27a2da7 100644 --- a/cmake/QtSetup.cmake +++ b/cmake/QtSetup.cmake @@ -137,12 +137,9 @@ if (PROJECT_NAME STREQUAL "QtBase" AND NOT QT_BUILD_STANDALONE_TESTS) "Install path prefix, prepended onto install directories." FORCE) unset(__qt_default_prefix) endif() - if(CMAKE_CROSSCOMPILING) + if(CMAKE_STAGING_PREFIX) set(__qt_prefix "${CMAKE_STAGING_PREFIX}") else() - set(__qt_prefix "") - endif() - if(__qt_prefix STREQUAL "") set(__qt_prefix "${CMAKE_INSTALL_PREFIX}") endif() if(__qt_prefix STREQUAL QtBase_BINARY_DIR)