summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAmir Masoud Abdol <amirmasoudabdol@icloud.com>2022-10-27 17:25:01 +0200
committerAmir Masoud Abdol <amir.abdol@qt.io>2022-10-28 10:53:06 +0000
commit50b8f2201285eea9d25178c1879cb2fea484b6bc (patch)
tree35f2c91fcebc839e552bb9972a4080760f504371 /cmake
parent31e7790102b260344893eaa8bf8b7b1a0f95e3b7 (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.cmake42
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)