diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake new file mode 100644 --- /dev/null +++ b/llvm/cmake/modules/Findzstd.cmake @@ -0,0 +1,38 @@ +# Try to find the zstd library +# +# If successful, the following variables will be defined: +# ZSTD_INCLUDE_DIR +# ZSTD_LIBRARY +# ZSTD_FOUND +# +# Additionally, the following import target will be defined: +# zstd::libzstd_shared +# zstd::libzstd_static + +find_path(ZSTD_INCLUDE_DIR NAMES zstd.h) +find_library(ZSTD_LIBRARY NAMES zstd) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + ZSTD DEFAULT_MSG + ZSTD_LIBRARY ZSTD_INCLUDE_DIR +) + +if(ZSTD_FOUND) + if("${ZSTD_LIBRARY}" MATCHES "\\${CMAKE_SHARED_LIBRARY_SUFFIX}$" AND + NOT TARGET zstd::libzstd_shared) + add_library(zstd::libzstd_shared UNKNOWN IMPORTED) + set_target_properties(zstd::libzstd_shared PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${ZSTD_INCLUDE_DIR}" + IMPORTED_LOCATION "${ZSTD_LIBRARY}") + endif() + if("${ZSTD_LIBRARY}" MATCHES "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$" AND + NOT TARGET zstd::libzstd_static) + add_library(zstd::libzstd_static UNKNOWN IMPORTED) + set_target_properties(zstd::libzstd_static PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${ZSTD_INCLUDE_DIR}" + IMPORTED_LOCATION "${ZSTD_LIBRARY}") + endif() +endif() + +mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)