--- /dev/null
+diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt
+index 1d1bebe..3a7a51c 100644
+--- a/blosc/CMakeLists.txt
++++ b/blosc/CMakeLists.txt
+@@ -109,7 +109,7 @@ endif(NOT DEACTIVATE_ZLIB)
+
+ if (NOT DEACTIVATE_ZSTD)
+ if (ZSTD_FOUND)
+- set(LIBS ${LIBS} ${ZSTD_LIBRARY})
++ set(LIBS ${LIBS} ${ZSTD_LIBRARIES})
+ else (ZSTD_FOUND)
+ file(GLOB ZSTD_FILES
+ ${ZSTD_LOCAL_DIR}/common/*.c
+diff --git a/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake
+index e581a80..8ce17c5 100644
+--- a/cmake/FindLZ4.cmake
++++ b/cmake/FindLZ4.cmake
+@@ -1,10 +1,13 @@
+-find_path(LZ4_INCLUDE_DIR lz4.h)
++find_path(LZ4_INCLUDE_DIRS NAMES lz4.h)
+
+-find_library(LZ4_LIBRARY NAMES lz4)
++find_library(LZ4_LIBRARY_DEBUG NAMES lz4d)
++find_library(LZ4_LIBRARY_RELEASE NAMES lz4)
+
+-if (LZ4_INCLUDE_DIR AND LZ4_LIBRARY)
+- set(LZ4_FOUND TRUE)
+- message(STATUS "Found LZ4 library: ${LZ4_LIBRARY}")
+-else ()
+- message(STATUS "No LZ4 library found. Using internal sources.")
+-endif ()
++include(SelectLibraryConfigurations)
++select_library_configurations(LZ4)
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(
++ LZ4
++ REQUIRED_VARS LZ4_LIBRARIES LZ4_INCLUDE_DIRS
++)
+diff --git a/cmake/FindSnappy.cmake b/cmake/FindSnappy.cmake
+index 688d4d5..c8b9a05 100644
+--- a/cmake/FindSnappy.cmake
++++ b/cmake/FindSnappy.cmake
+@@ -1,10 +1,13 @@
+-find_path(SNAPPY_INCLUDE_DIR snappy-c.h)
++find_path(SNAPPY_INCLUDE_DIR snappy.h)
+
+-find_library(SNAPPY_LIBRARY NAMES snappy)
++find_library(SNAPPY_LIBRARY_DEBUG NAMES snappyd)
++find_library(SNAPPY_LIBRARY_RELEASE NAMES snappy)
+
+-if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARY)
+- set(SNAPPY_FOUND TRUE)
+- message(STATUS "Found SNAPPY library: ${SNAPPY_LIBRARY}")
+-else ()
+- message(STATUS "No snappy found. Using internal sources.")
+-endif ()
++include(SelectLibraryConfigurations)
++select_library_configurations(SNAPPY)
++
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(
++ SNAPPY DEFAULT_MSG
++ SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR
++)
+diff --git a/cmake/FindZstd.cmake b/cmake/FindZstd.cmake
+index 7db4bb9..ba20ba6 100644
+--- a/cmake/FindZstd.cmake
++++ b/cmake/FindZstd.cmake
+@@ -1,10 +1,30 @@
++include(FindPackageHandleStandardArgs)
++
+ find_path(ZSTD_INCLUDE_DIR zstd.h)
+
+-find_library(ZSTD_LIBRARY NAMES zstd)
++get_filename_component(_prefix_path ${ZSTD_INCLUDE_DIR} PATH)
++
++find_library(
++ ZSTD_LIBRARY_DEBUG
++ NAMES zstdd
++ PATHS ${_prefix_path}/debug/lib
++ NO_DEFAULT_PATH
++)
++
++find_library(
++ ZSTD_LIBRARY_RELEASE
++ NAMES zstd
++ PATHS ${_prefix_path}/lib
++ NO_DEFAULT_PATH
++)
++
++unset(_prefix_path)
++
++include(SelectLibraryConfigurations)
++select_library_configurations(ZSTD)
+
+-if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY)
+- set(ZSTD_FOUND TRUE)
+- message(STATUS "Found Zstd library: ${ZSTD_LIBRARY}")
+-else ()
+- message(STATUS "No Zstd library found. Using internal sources.")
+-endif ()
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(
++ ZSTD
++ REQUIRED_VARS ZSTD_LIBRARIES ZSTD_INCLUDE_DIR
++)