CMake: Suppress package not found warnings in some FindWrap scripts

Some of our FindWrap scripts try to call find_package() once or more
to find a system package, and then fallback to a different source in
case if not found.

The side effect of this is that find_package() will append not found
packages to the global PACKAGES_NOT_FOUND property.
FeatureSummary feature_summary() will then list these as not found,
creating confusion.
For example while FindWrapSystemPCRE2 might be found, PCRE2 found will
be shown as not found, because we found the package via PkgConfig
instead of cmake Config file.

Manually remove these packages from the PACKAGES_NOT_FOUND property
in some of our Find scripts, to avoid the confusion.

Pick-to: 6.7
Fixes: QTBUG-96120
Task-number: QTBUG-96394
Task-number: QTBUG-111216
Change-Id: I4be825c810248202c34f446e3cebe66574d0531c
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
Alexandru Croitor 2024-05-10 17:28:03 +02:00
parent 7dd7ed141d
commit 70a2e7f32b
4 changed files with 28 additions and 0 deletions

View File

@ -20,6 +20,13 @@ if (unofficial-brotli_FOUND)
set(WrapBrotli_FOUND ON)
else()
get_cmake_property(__packages_not_found PACKAGES_NOT_FOUND)
if(__packages_not_found)
list(REMOVE_ITEM __packages_not_found unofficial-brotli)
set_property(GLOBAL PROPERTY PACKAGES_NOT_FOUND "${__packages_not_found}")
endif()
unset(__packages_not_found)
find_package(PkgConfig QUIET)
if (PKG_CONFIG_FOUND)
pkg_check_modules(libbrotlidec QUIET IMPORTED_TARGET "libbrotlidec")

View File

@ -28,6 +28,13 @@ if(harfbuzz_FOUND AND TARGET "${__harfbuzz_target_name}")
if(harfbuzz_VERSION)
set(WrapSystemHarfbuzz_VERSION "${harfbuzz_VERSION}")
endif()
else()
get_cmake_property(__packages_not_found PACKAGES_NOT_FOUND)
if(__packages_not_found)
list(REMOVE_ITEM __packages_not_found harfbuzz)
set_property(GLOBAL PROPERTY PACKAGES_NOT_FOUND "${__packages_not_found}")
endif()
unset(__packages_not_found)
endif()
if(__harfbuzz_broken_config_file OR NOT __harfbuzz_found)

View File

@ -16,6 +16,13 @@ if(PCRE2_FOUND AND TARGET "${__pcre2_target_name}")
if(PCRE2_VERSION)
set(WrapSystemPCRE2_VERSION "${PCRE2_VERSION}")
endif()
else()
get_cmake_property(__packages_not_found PACKAGES_NOT_FOUND)
if(__packages_not_found)
list(REMOVE_ITEM __packages_not_found PCRE2)
set_property(GLOBAL PROPERTY PACKAGES_NOT_FOUND "${__packages_not_found}")
endif()
unset(__packages_not_found)
endif()
if(NOT __pcre2_found)

View File

@ -39,6 +39,13 @@ if(TARGET zstd::libzstd_static OR TARGET zstd::libzstd_shared)
INTERFACE_LINK_LIBRARIES "zstd::libzstd${zstdtargetsuffix}")
endif()
else()
get_cmake_property(__packages_not_found PACKAGES_NOT_FOUND)
if(__packages_not_found)
list(REMOVE_ITEM __packages_not_found zstd)
set_property(GLOBAL PROPERTY PACKAGES_NOT_FOUND "${__packages_not_found}")
endif()
unset(__packages_not_found)
find_package(PkgConfig QUIET)
pkg_check_modules(PC_ZSTD QUIET "libzstd")