From 2339cb3ea282d4ad31fd74fd2a127a986a29a3cf Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 10 Jul 2024 14:57:56 +0200 Subject: [PATCH] CMake: Warn when qt_find_package is used with Qt target names qt_find_package is only meant to be used for looking up 3rd party packages. Using it with Qt packages can cause issues where we record the Qt packages as 3rd party packages. When using a developer build, issue a warning when qt_find_package is called with a provided target that starts with the Qt6:: namespace. Pick-to: 6.8 Change-Id: Ic2a2d613dbf4fa7e7c51e9b73696bf14e4af866f Reviewed-by: Alexey Edelev Reviewed-by: Joerg Bornemann --- cmake/QtFindPackageHelpers.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cmake/QtFindPackageHelpers.cmake b/cmake/QtFindPackageHelpers.cmake index a9cc931ad6c..ae50d14ed80 100644 --- a/cmake/QtFindPackageHelpers.cmake +++ b/cmake/QtFindPackageHelpers.cmake @@ -167,6 +167,19 @@ macro(qt_find_package) set(qt_find_package_target_name ${aliased_target}) endif() + if("${qt_find_package_target_name}" MATCHES "${QT_CMAKE_EXPORT_NAMESPACE}::" + AND QT_FEATURE_developer_build + ) + message(AUTHOR_WARNING + "qt_find_package() should NOT be used to look up Qt packages. " + "It should only be used to look up 3rd party packages. " + "Please remove the " + "qt_find_package(${ARGV0} PROVIDED_TARGETS " + "${qt_find_package_target_name}) call and contact the build tools team " + "in case the removal is causing issues." + ) + endif() + set_target_properties(${qt_find_package_target_name} PROPERTIES INTERFACE_QT_PACKAGE_NAME ${ARGV0} INTERFACE_QT_PACKAGE_IS_OPTIONAL ${arg_MARK_OPTIONAL})