diff --git a/cmake/QtPluginConfig.cmake.in b/cmake/QtPluginConfig.cmake.in index de067725802..7d8f14f6554 100644 --- a/cmake/QtPluginConfig.cmake.in +++ b/cmake/QtPluginConfig.cmake.in @@ -27,8 +27,12 @@ if (NOT QT_NO_CREATE_TARGETS) # Find required dependencies, if any. if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Dependencies.cmake") include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Dependencies.cmake") + else() + set(@target@_FOUND TRUE) endif() - include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Targets.cmake") - include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@AdditionalTargetInfo.cmake") + if(@target@_FOUND) + include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Targets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@AdditionalTargetInfo.cmake") + endif() endif() diff --git a/cmake/QtPluginDependencies.cmake.in b/cmake/QtPluginDependencies.cmake.in index bcbb9bb5db3..800576f521a 100644 --- a/cmake/QtPluginDependencies.cmake.in +++ b/cmake/QtPluginDependencies.cmake.in @@ -18,4 +18,8 @@ set(__qt_@target@_find_dependency_paths "@find_dependency_paths@") _qt_internal_find_qt_dependencies("@target@" __qt_@target@_target_deps __qt_@target@_find_dependency_paths) -set(@target@_FOUND TRUE) +if(__qt_${target}_missing_deps) + set(@target@_FOUND FALSE) +else() + set(@target@_FOUND TRUE) +endif() diff --git a/cmake/QtPublicDependencyHelpers.cmake b/cmake/QtPublicDependencyHelpers.cmake index e797e5cc736..feeec07fff8 100644 --- a/cmake/QtPublicDependencyHelpers.cmake +++ b/cmake/QtPublicDependencyHelpers.cmake @@ -34,6 +34,9 @@ macro(_qt_internal_find_third_party_dependencies target target_dep_list) find_package(${__qt_${target}_find_package_args}) else() find_dependency(${__qt_${target}_find_package_args}) + if(NOT ${__qt_${target}_pkg}_FOUND) + list(APPEND __qt_${target}_missing_deps "${__qt_${target}_pkg}") + endif() endif() _qt_internal_get_package_components_id( @@ -129,7 +132,6 @@ macro(_qt_internal_find_qt_dependencies target target_dep_list find_dependency_p list(GET __qt_${target}_target_dep 1 __qt_${target}_version) if (NOT ${__qt_${target}_pkg}_FOUND) - # TODO: Remove Private handling once sufficient time has passed, aka all developers # updated their builds not to contain stale FooDependencies.cmake files without the # _qt_package_name property. @@ -149,6 +151,9 @@ macro(_qt_internal_find_qt_dependencies target target_dep_list find_dependency_p ${_qt_additional_packages_prefix_paths} ${__qt_use_no_default_path_for_qt_packages} ) + if(NOT ${__qt_${target}_pkg}_FOUND) + list(APPEND __qt_${target}_missing_deps "${__qt_${target}_pkg}") + endif() endif() endforeach() endmacro()