1# Try to find the zstd library 2# 3# If successful, the following variables will be defined: 4# zstd_INCLUDE_DIR 5# zstd_LIBRARY 6# zstd_FOUND 7# 8# Additionally, one of the following import targets will be defined: 9# zstd::libzstd_shared 10# zstd::libzstd_static 11 12if(MSVC) 13 set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_LINK_LIBRARY_SUFFIX}$") 14 set(zstd_STATIC_LIBRARY_SUFFIX "_static\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") 15else() 16 set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_SHARED_LIBRARY_SUFFIX}$") 17 set(zstd_STATIC_LIBRARY_SUFFIX "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") 18endif() 19 20find_path(zstd_INCLUDE_DIR NAMES zstd.h) 21find_library(zstd_LIBRARY NAMES zstd zstd_static) 22 23include(FindPackageHandleStandardArgs) 24find_package_handle_standard_args( 25 zstd DEFAULT_MSG 26 zstd_LIBRARY zstd_INCLUDE_DIR 27) 28 29if(zstd_FOUND) 30 if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND 31 NOT TARGET zstd::libzstd_shared) 32 add_library(zstd::libzstd_shared SHARED IMPORTED) 33 set_target_properties(zstd::libzstd_shared PROPERTIES 34 INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}" 35 IMPORTED_LOCATION "${zstd_LIBRARY}") 36 endif() 37 if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND 38 NOT TARGET zstd::libzstd_static) 39 add_library(zstd::libzstd_static STATIC IMPORTED) 40 set_target_properties(zstd::libzstd_static PROPERTIES 41 INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}" 42 IMPORTED_LOCATION "${zstd_LIBRARY}") 43 endif() 44endif() 45 46unset(zstd_SHARED_LIBRARY_SUFFIX) 47unset(zstd_STATIC_LIBRARY_SUFFIX) 48 49mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY) 50