From e16368b2ccd1d946255d71bcad66b70afc3151c7 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 15 Jan 2026 02:19:42 +0100 Subject: [PATCH] Add Findzstd.cmake; change Windows find_packages usage to use it too * Add Findzstd.cmake --- cmake/modules/Findzstd.cmake | 36 ++++++++++++++++++++++++++++++++++++ libmamba/CMakeLists.txt | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 cmake/modules/Findzstd.cmake diff --git a/cmake/modules/Findzstd.cmake b/cmake/modules/Findzstd.cmake new file mode 100644 index 0000000000..df67b4d789 --- /dev/null +++ b/cmake/modules/Findzstd.cmake @@ -0,0 +1,36 @@ +# First, try the package's own config file +find_package(zstd CONFIG QUIET) + +if(TARGET zstd::libzstd_shared) + set(zstd_FOUND TRUE) + return() +endif() + +if(TARGET zstd::libzstd_static) + set(zstd_FOUND TRUE) + return() +endif() + +# Fallback for systems without zstdConfig.cmake +find_path(ZSTD_INCLUDE_DIR zstd.h) +find_library(ZSTD_LIBRARY NAMES zstd) + +if(ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) + set(zstd_FOUND TRUE) + if(NOT TARGET zstd::libzstd_shared) + add_library(zstd::libzstd_shared UNKNOWN IMPORTED) + set_target_properties( + zstd::libzstd_shared + PROPERTIES IMPORTED_LOCATION \"${ZSTD_LIBRARY}\" + INTERFACE_INCLUDE_DIRECTORIES \"${ZSTD_INCLUDE_DIR}\" + ) + endif() + if(NOT TARGET zstd::libzstd_static) + add_library(zstd::libzstd_static UNKNOWN IMPORTED) + set_target_properties( + zstd::libzstd_static + PROPERTIES IMPORTED_LOCATION \"${ZSTD_LIBRARY}\" + INTERFACE_INCLUDE_DIRECTORIES \"${ZSTD_INCLUDE_DIR}\" + ) + endif() +endif() diff --git a/libmamba/CMakeLists.txt b/libmamba/CMakeLists.txt index 2bffa5d566..95ed5f71b5 100644 --- a/libmamba/CMakeLists.txt +++ b/libmamba/CMakeLists.txt @@ -582,7 +582,7 @@ macro(libmamba_create_target target_name linkage output_name) find_library(LIBLZMA_LIBRARIES lzma REQUIRED) find_library(LZ4_LIBRARY NAMES lz4) find_library(LZO2_LIBRARY NAMES lzo2) - find_package(zstd CONFIG REQUIRED) + find_package(zstd REQUIRED) find_library(BZIP2_LIBRARIES NAMES bz2) find_library(CRYPTO_LIBRARIES NAMES libcrypto)