Fix invalid Qt prefix version when looking for HostInfo module
In QtSetup.cmake the PROJECT_VERSION_MAJOR variable was used to identify prefix of 'Qt<version>HostInfoConfig.cmake'. Qt<version>HostInfo is not found, if project version differs from qtbase version. Move the 'INSTALL_CMAKE_NAMESPACE' and 'QT_CMAKE_EXPORT_NAMESPACE' variables to 'QtBuildInternalsConfig.cmake'. In this case variables will be exposed for a wider list of internal routines. Use the 'INSTALL_CMAKE_NAMESPACE' variable as prefix to find Qt<version>HostInfo module. Fixes: QTBUG-90345 Change-Id: Ic595d1c5beb74f34e69b58e18590a3afc2f346f7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
b69b04c479
commit
114d5c045d
@ -208,17 +208,6 @@ endfunction()
|
|||||||
qt_internal_set_up_global_paths()
|
qt_internal_set_up_global_paths()
|
||||||
qt_get_relocatable_install_prefix(QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX)
|
qt_get_relocatable_install_prefix(QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX)
|
||||||
|
|
||||||
# The variables might have already been set in QtBuildInternalsExtra.cmake if the file is included
|
|
||||||
# while building a new module and not QtBase. In that case, stop overriding the value.
|
|
||||||
if(NOT INSTALL_CMAKE_NAMESPACE)
|
|
||||||
set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
|
|
||||||
CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
|
|
||||||
endif()
|
|
||||||
if(NOT QT_CMAKE_EXPORT_NAMESPACE)
|
|
||||||
set(QT_CMAKE_EXPORT_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
|
|
||||||
CACHE STRING "CMake namespace used when exporting targets [Qt${PROJECT_VERSION_MAJOR}]")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(QT_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
set(QT_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
# Find the path to mkspecs/, depending on whether we are building as part of a standard qtbuild,
|
# Find the path to mkspecs/, depending on whether we are building as part of a standard qtbuild,
|
||||||
|
@ -13,6 +13,17 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake")
|
|||||||
include(${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/QtBuildInternalsExtra.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# The variables might have already been set in QtBuildInternalsExtra.cmake if the file is included
|
||||||
|
# while building a new module and not QtBase. In that case, stop overriding the value.
|
||||||
|
if(NOT INSTALL_CMAKE_NAMESPACE)
|
||||||
|
set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
|
||||||
|
CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_CMAKE_EXPORT_NAMESPACE)
|
||||||
|
set(QT_CMAKE_EXPORT_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}"
|
||||||
|
CACHE STRING "CMake namespace used when exporting targets [Qt${PROJECT_VERSION_MAJOR}]")
|
||||||
|
endif()
|
||||||
|
|
||||||
macro(qt_set_up_build_internals_paths)
|
macro(qt_set_up_build_internals_paths)
|
||||||
# Set up the paths for the cmake modules located in the prefix dir. Prepend, so the paths are
|
# Set up the paths for the cmake modules located in the prefix dir. Prepend, so the paths are
|
||||||
# least important compared to the source dir ones, but more important than command line
|
# least important compared to the source dir ones, but more important than command line
|
||||||
|
@ -175,7 +175,7 @@ if (CMAKE_CROSSCOMPILING)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT "${QT_HOST_PATH}" STREQUAL "")
|
if(NOT "${QT_HOST_PATH}" STREQUAL "")
|
||||||
find_package(Qt${PROJECT_VERSION_MAJOR}HostInfo
|
find_package(${INSTALL_CMAKE_NAMESPACE}HostInfo
|
||||||
CONFIG
|
CONFIG
|
||||||
REQUIRED
|
REQUIRED
|
||||||
PATHS "${QT_HOST_PATH}"
|
PATHS "${QT_HOST_PATH}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user