diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in index 8ad4e458229..9f8c80a2e53 100644 --- a/cmake/QtConfig.cmake.in +++ b/cmake/QtConfig.cmake.in @@ -150,10 +150,10 @@ set(__qt_sanitizer_options_set TRUE) include(CMakeFindDependencyMacro) if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@Dependencies.cmake") include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@Dependencies.cmake") - if(NOT @INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND) - set(@INSTALL_CMAKE_NAMESPACE@_FOUND FALSE) - message(FATAL_ERROR "Failed to find Qt Platform dependency: " - "${@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE}") + if(NOT @INSTALL_CMAKE_NAMESPACE@_FOUND) + # Clear the components, no need to look for them if dependencies were not found, otherwise + # you get a wall of recursive error messages. + set(@INSTALL_CMAKE_NAMESPACE@_FIND_COMPONENTS "") endif() endif() diff --git a/cmake/QtConfigDependencies.cmake.in b/cmake/QtConfigDependencies.cmake.in index b23b6681ebf..52a0e1d2243 100644 --- a/cmake/QtConfigDependencies.cmake.in +++ b/cmake/QtConfigDependencies.cmake.in @@ -1,51 +1,10 @@ -set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND FALSE) +set(@INSTALL_CMAKE_NAMESPACE@_FOUND FALSE) # note: _third_party_deps example: "ICU\\;FALSE\\;1.0\\;i18n uc data;ZLIB\\;FALSE\\;\\;" set(__qt_third_party_deps "@third_party_deps@") @third_party_extra@ -foreach(__qt_target_dep ${__qt_third_party_deps}) - list(GET __qt_target_dep 0 __qt_pkg) - list(GET __qt_target_dep 1 __qt_is_optional) - list(GET __qt_target_dep 2 __qt_version) - list(GET __qt_target_dep 3 __qt_components) - list(GET __qt_target_dep 4 __qt_optional_components) - set(__qt_find_package_args "${__qt_pkg}") - if(__qt_version) - list(APPEND __qt_find_package_args "${__qt_version}") - endif() - if(__qt_components) - string(REPLACE " " ";" __qt_components "${__qt_components}") - list(APPEND __qt_find_package_args COMPONENTS ${__qt_components}) - endif() - if(__qt_optional_components) - string(REPLACE " " ";" __qt_optional_components "${__qt_optional_components}") - list(APPEND __qt_find_package_args OPTIONAL_COMPONENTS ${__qt_optional_components}) - endif() +_qt_internal_find_third_party_dependencies(Platform __qt_third_party_deps) - # Already build an error message, because find_dependency calls return() on failure. - set(__qt_message "\nPackage: ${__qt_pkg}") - if(__qt_version) - string(APPEND __qt_message "\nVersion: ${__qt_version}") - endif() - if(__qt_components) - string(APPEND __qt_message "\nComponents: ${__qt_components}") - endif() - if(__qt_optional_components) - string(APPEND __qt_message "\nComponents: ${__qt_optional_components}") - endif() - set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE "${__qt_message}") - - if(__qt_is_optional) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - list(APPEND __qt_find_package_args QUIET) - endif() - find_package(${__qt_find_package_args}) - else() - find_dependency(${__qt_find_package_args}) - endif() -endforeach() - -set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND TRUE) -unset(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE) +set(@INSTALL_CMAKE_NAMESPACE@_FOUND TRUE)