Align FindWrapSystemMd4c with Other FindWrapSystem* Modules

FindWrapSystemMd4c now uses `find_package_handle_standard_args` like
all the other similar modules. This also fixes a case where CMake config
log for finding `md4c` was missing the CMAKE_MESSAGE_CONTEXT,
e.g., `[QtBase]`, which was caused by using `find_package` and let it
log outside the scope of the project, and not `QUIET`ing it.

In addition, the `CONFIG` parameter of the `find_package` was removed to
avoid unexpected issues when 3rd party package managers were used.

Change-Id: Id0bee436e8965452f9089c0e8c8793c3f1b63f02
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Amir Masoud Abdol 2022-10-27 17:25:01 +02:00 committed by Amir Masoud Abdol
parent 31e7790102
commit 50b8f22012

View File

@ -5,23 +5,39 @@ if(TARGET WrapSystemMd4c::WrapSystemMd4c)
set(WrapSystemMd4c_FOUND TRUE)
return()
endif()
set(WrapSystemMd4c_REQUIRED_VARS __md4c_found)
find_package(md4c CONFIG)
find_package(md4c ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} QUIET)
# md4c provides a md4c::md4c target but
# older versions create a md4c target without
# namespace. If we find the old variant create
# a namespaced target out of the md4c target.
if(TARGET md4c AND NOT TARGET md4c::md4c)
add_library(md4c::md4c INTERFACE IMPORTED)
target_link_libraries(md4c::md4c INTERFACE md4c)
set(__md4c_target_name "md4c::md4c")
if(md4c_FOUND)
set(__md4c_found TRUE)
# md4c provides a md4c::md4c target but
# older versions create a md4c target without
# namespace. If we find the old variant create
# a namespaced target out of the md4c target.
if(TARGET md4c AND NOT TARGET ${__md4c_target_name})
add_library(${__md4c_target_name} INTERFACE IMPORTED)
target_link_libraries(${__md4c_target_name} INTERFACE md4c)
endif()
if(md4c_VERSION)
set(WrapSystemMd4c_VERSION "${md4c_VERSION}")
endif()
endif()
if(TARGET md4c::md4c)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(WrapSystemMd4c
REQUIRED_VARS ${WrapSystemMd4c_REQUIRED_VARS}
VERSION_VAR WrapSystemMd4c_VERSION)
if(WrapSystemMd4c_FOUND)
add_library(WrapSystemMd4c::WrapSystemMd4c INTERFACE IMPORTED)
target_link_libraries(WrapSystemMd4c::WrapSystemMd4c INTERFACE md4c::md4c)
target_link_libraries(WrapSystemMd4c::WrapSystemMd4c
INTERFACE "${__md4c_target_name}")
endif()
if(TARGET WrapSystemMd4c::WrapSystemMd4c)
set(WrapSystemMd4c_FOUND TRUE)
endif()
unset(__md4c_found)
unset(__md4c_target_name)