diff --git a/cmake/QtModuleToolsDependencies.cmake.in b/cmake/QtModuleToolsDependencies.cmake.in index 8e25a8039c1..14af9c90e38 100644 --- a/cmake/QtModuleToolsDependencies.cmake.in +++ b/cmake/QtModuleToolsDependencies.cmake.in @@ -4,5 +4,8 @@ # Find "ModuleTools" dependencies, which are other ModuleTools packages. set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND TRUE) +set(__qt_@target@_tool_third_party_deps "@third_party_deps@") +_qt_internal_find_third_party_dependencies("@target@" __qt_@target@_tool_third_party_deps) + set(__qt_@target@_tool_deps "@package_deps@") _qt_internal_find_tool_dependencies("@target@" __qt_@target@_tool_deps) diff --git a/cmake/QtToolHelpers.cmake b/cmake/QtToolHelpers.cmake index 3b53b94d1f9..641b44f73a3 100644 --- a/cmake/QtToolHelpers.cmake +++ b/cmake/QtToolHelpers.cmake @@ -385,6 +385,7 @@ function(qt_export_tools module_name) # List of package dependencies that need be find_package'd when using the Tools package. set(package_deps "") + set(third_party_deps "") # Additional cmake files to install set(extra_cmake_files "") @@ -397,7 +398,15 @@ function(qt_export_tools module_name) # e.g. qtwaylandscanner depends on WaylandScanner (non-qt package). get_target_property(extra_packages "${tool_name}" QT_EXTRA_PACKAGE_DEPENDENCIES) if(extra_packages) - list(APPEND package_deps "${extra_packages}") + foreach(third_party_dep IN LISTS extra_packages) + list(GET third_party_dep 0 third_party_dep_name) + list(GET third_party_dep 1 third_party_dep_version) + + # Assume that all tool thirdparty deps are mandatory. + # TODO: Components are not supported + list(APPEND third_party_deps + "${third_party_dep_name}\\\;FALSE\\\;${third_party_dep_version}\\\;\\\;") + endforeach() endif() get_target_property(_extra_cmake_files "${tool_name}" EXTRA_CMAKE_FILES)