From 00b28640a2bfdb6aa92a435c6a20bf3e1bfc08e3 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 17 Feb 2025 10:17:43 +0100 Subject: [PATCH] CMake: Fix getting target property from Tools-only packages A call to find_package(Qt6 COMPONENTS LinguistTools) would fail with CMake Error at Qt6Config.cmake:212 (get_target_property): get_target_property() called with non-existent target "Qt6::LinguistTools". Tools packages don't have a module, guard the get_target_property call. Amends 1d4c4400537537656997d3f000df6e9bdc5e720c Fixes: QTBUG-137146 Change-Id: Idb70b427d0762ed64c2ef77133a2ae56f310483d Reviewed-by: Volker Hilsheimer Reviewed-by: Joerg Bornemann (cherry picked from commit 37e85c0ff3ee1f01d94942c35c0b13fe34fa4c7e) Reviewed-by: Alexandru Croitor Reviewed-by: Alexey Edelev --- cmake/QtConfig.cmake.in | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in index 640f54a942e..2c34af97713 100644 --- a/cmake/QtConfig.cmake.in +++ b/cmake/QtConfig.cmake.in @@ -166,13 +166,16 @@ foreach(module ${__qt_umbrella_find_components}) _qt_internal_save_find_package_context_for_debugging(@INSTALL_CMAKE_NAMESPACE@${module}) if(@INSTALL_CMAKE_NAMESPACE@${module}_FOUND) - get_target_property(__qt_${module}_is_private @INSTALL_CMAKE_NAMESPACE@::${module} - _qt_is_private_module - ) - if(__qt_${module}_is_private) - _qt_internal_show_private_module_warning(${module}) + # Tools packages don't usually provide a qt module, so there's no target. + if(TARGET @INSTALL_CMAKE_NAMESPACE@::${module}) + get_target_property(__qt_${module}_is_private @INSTALL_CMAKE_NAMESPACE@::${module} + _qt_is_private_module + ) + if(__qt_${module}_is_private) + _qt_internal_show_private_module_warning(${module}) + endif() + unset(__qt_${module}_is_private) endif() - unset(__qt_${module}_is_private) else() find_package(@INSTALL_CMAKE_NAMESPACE@${module} ${@INSTALL_CMAKE_NAMESPACE@_FIND_VERSION}