diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2e5714d8dd12b51cb18f4bded2b174c557aa011..32812261dc8411672efa0ff2c1b077e1cadc203d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,10 +59,7 @@ if (NOT MSVC)
     find_package (PkgConfig REQUIRED)
     pkg_search_module (GnuTLS REQUIRED IMPORTED_TARGET gnutls)
     pkg_search_module (Nettle REQUIRED IMPORTED_TARGET nettle)
-    check_include_file_cxx(msgpack.hpp HAVE_MSGPACKCXX)
-    if (NOT HAVE_MSGPACKCXX)
-        find_package (msgpack REQUIRED CONFIG)
-    endif()
+    find_package (msgpack REQUIRED NAMES msgpackc-cxx msgpack msgpack-cxx)
     if (OPENDHT_TOOLS)
         find_package (Readline 6 REQUIRED)
     endif ()
@@ -350,11 +347,9 @@ target_link_libraries(opendht
     PUBLIC
         ${CMAKE_THREAD_LIBS_INIT}
         PkgConfig::GnuTLS
+        msgpackc-cxx
         ${FMT_LIBRARY}
 )
-if (NOT HAVE_MSGPACKCXX)
-    target_link_libraries(opendht PUBLIC msgpackc-cxx)
-endif()
 if (Jsoncpp_FOUND)
     target_link_libraries(opendht PUBLIC PkgConfig::Jsoncpp)
 endif()