From 74d832177169dd24ff06c9a584d0dc0f4f35d31b Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 27 Jun 2022 19:20:20 +0200 Subject: [PATCH] CMake: Don't show the incompatible version warning when not needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a find_package(Qt6Foo) call has the QUIET option passed, don't display the incompatible version warning. Also if the find_package call has the EXACT option passed, and the searched for version does not match the package version exactly, there's no point in showing the warning because find_package will reject the package anyway, even if we set PACKAGE_VERSION_COMPATIBLE to TRUE Pick-to: 6.2 6.3 6.4 Change-Id: I78ef95cf4a045034fc50853465f3ba1db84bba63 Reviewed-by: Alexey Edelev Reviewed-by: Jörg Bornemann --- cmake/QtCMakePackageVersionFile.cmake.in | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmake/QtCMakePackageVersionFile.cmake.in b/cmake/QtCMakePackageVersionFile.cmake.in index f668e614c5..f63a498b40 100644 --- a/cmake/QtCMakePackageVersionFile.cmake.in +++ b/cmake/QtCMakePackageVersionFile.cmake.in @@ -17,9 +17,17 @@ else() endif() if(__qt_disable_package_version_check) + # Don't show the warning needlessly if we know that we're doing an exact search, and the + # version found is not the exactly same. + if(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_EXACT + AND NOT PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(QT_NO_PACKAGE_VERSION_INCOMPATIBLE_WARNING TRUE) + endif() + # Warn if version check is disabled regardless if it's a Qt repo build or user project build. # Allow to opt out of warning. - if(__qt_package_version_incompatible AND NOT QT_NO_PACKAGE_VERSION_INCOMPATIBLE_WARNING) + if(__qt_package_version_incompatible AND NOT QT_NO_PACKAGE_VERSION_INCOMPATIBLE_WARNING + AND NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) message(WARNING "Package ${PACKAGE_FIND_NAME} with version ${PACKAGE_VERSION} was accepted as " "compatible because QT_NO_PACKAGE_VERSION_CHECK was set to TRUE. There is no guarantee "