CMake: Pass Qt6_FIND_VERSION in Qt6Config when looking for components
Pass Qt6_FIND_VERSION to components when the find_package(Qt6 ${ver} COMPONENTS Foo) signature is used. Create a ConfigVersion file for BuildInternals, so that BuildInternals passes the version check. Fix qt_configure_file to look in the _qt_6_config_cmake_dir folder for the template file rather than Qt6_DIR, because Qt6_DIR might be accidentally unset after a failed find_package(Qt6) call and the error is not helpful then. We already pass versions everywhere else when looking for dependencies, like in ModuleDependencies.cmake.in, PluginDependencies.cmake.in, ModuleToolsDependencies.cmake.in. Pick-to: 6.2 Fixes: QTBUG-91737 Change-Id: Ief1da0c6f239c935385e7ce662951e85ccfdf130 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
6b6d42f6b8
commit
6544312869
@ -34,8 +34,15 @@ configure_file(
|
||||
@ONLY
|
||||
)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${__build_internals_build_dir}/${INSTALL_CMAKE_NAMESPACE}BuildInternalsConfigVersion.cmake"
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY AnyNewerVersion
|
||||
)
|
||||
|
||||
qt_install(FILES
|
||||
"${__build_internals_build_dir}/${INSTALL_CMAKE_NAMESPACE}BuildInternalsConfig.cmake"
|
||||
"${__build_internals_build_dir}/${INSTALL_CMAKE_NAMESPACE}BuildInternalsConfigVersion.cmake"
|
||||
"${__build_internals_build_dir}/QtBuildInternalsExtra.cmake"
|
||||
DESTINATION "${__build_internals_install_dir}"
|
||||
COMPONENT Devel
|
||||
|
@ -15,12 +15,12 @@ function(qt_configure_file)
|
||||
if(arg_CONTENT)
|
||||
set(template_name "QtFileConfigure.txt.in")
|
||||
# When building qtbase, use the source template file.
|
||||
# Otherwise use the installed file.
|
||||
# Otherwise use the installed file (basically wherever Qt6 package is found).
|
||||
# This should work for non-prefix and superbuilds as well.
|
||||
if(QtBase_SOURCE_DIR)
|
||||
set(input_file "${QtBase_SOURCE_DIR}/cmake/${template_name}")
|
||||
else()
|
||||
set(input_file "${Qt6_DIR}/${template_name}")
|
||||
set(input_file "${_qt_6_config_cmake_dir}/${template_name}")
|
||||
endif()
|
||||
set(__qt_file_configure_content "${arg_CONTENT}")
|
||||
elseif(arg_INPUT)
|
||||
|
@ -150,6 +150,7 @@ foreach(module ${@INSTALL_CMAKE_NAMESPACE@_FIND_COMPONENTS})
|
||||
endif()
|
||||
|
||||
find_package(@INSTALL_CMAKE_NAMESPACE@${module}
|
||||
${@INSTALL_CMAKE_NAMESPACE@_FIND_VERSION}
|
||||
${_@INSTALL_CMAKE_NAMESPACE@_FIND_PARTS_QUIET}
|
||||
PATHS
|
||||
${_qt_cmake_dir}
|
||||
|
Loading…
Reference in New Issue
Block a user