diff options
author | Amir Masoud Abdol <amirmasoudabdol@icloud.com> | 2022-10-27 17:25:01 +0200 |
---|---|---|
committer | Amir Masoud Abdol <amir.abdol@qt.io> | 2022-10-28 10:53:06 +0000 |
commit | 50b8f2201285eea9d25178c1879cb2fea484b6bc (patch) | |
tree | 35f2c91fcebc839e552bb9972a4080760f504371 /cmake | |
parent | 31e7790102b260344893eaa8bf8b7b1a0f95e3b7 (diff) |
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>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindWrapSystemMd4c.cmake | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/cmake/FindWrapSystemMd4c.cmake b/cmake/FindWrapSystemMd4c.cmake index 82dc12227d..5ac3ded975 100644 --- a/cmake/FindWrapSystemMd4c.cmake +++ b/cmake/FindWrapSystemMd4c.cmake @@ -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) |