brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · dbfaadb Raw
69 lines · plain
1# Try to find the zstd library2#3# If successful, the following variables will be defined:4# zstd_INCLUDE_DIR5# zstd_LIBRARY6# zstd_STATIC_LIBRARY7# zstd_FOUND8#9# Additionally, one of the following import targets will be defined:10# zstd::libzstd_shared11# zstd::libzstd_static12 13if(MSVC OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")14  set(zstd_STATIC_LIBRARY_SUFFIX "_static\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")15else()16  set(zstd_STATIC_LIBRARY_SUFFIX "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$")17endif()18 19find_path(zstd_INCLUDE_DIR NAMES zstd.h)20find_library(zstd_LIBRARY NAMES zstd zstd_static)21find_library(zstd_STATIC_LIBRARY NAMES22  zstd_static23  "${CMAKE_STATIC_LIBRARY_PREFIX}zstd${CMAKE_STATIC_LIBRARY_SUFFIX}")24 25include(FindPackageHandleStandardArgs)26find_package_handle_standard_args(27    zstd DEFAULT_MSG28    zstd_LIBRARY zstd_INCLUDE_DIR29)30 31if(zstd_FOUND)32  if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND NOT zstd_LIBRARY MATCHES "\\.dll\\.a$")33    set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}")34  elseif (NOT TARGET zstd::libzstd_shared)35    add_library(zstd::libzstd_shared SHARED IMPORTED)36    if(WIN32 OR CYGWIN)37      include(GNUInstallDirs) # For CMAKE_INSTALL_LIBDIR and friends.38      # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library".39      get_filename_component(zstd_DIRNAME "${zstd_LIBRARY}" DIRECTORY)40      if(NOT "${CMAKE_INSTALL_LIBDIR}" STREQUAL "" AND NOT "${CMAKE_INSTALL_BINDIR}" STREQUAL "")41        string(REGEX REPLACE "${CMAKE_INSTALL_LIBDIR}$" "${CMAKE_INSTALL_BINDIR}" zstd_DIRNAME "${zstd_DIRNAME}")42      endif()43      get_filename_component(zstd_BASENAME "${zstd_LIBRARY}" NAME)44      string(REGEX REPLACE "\\${CMAKE_LINK_LIBRARY_SUFFIX}$" "${CMAKE_SHARED_LIBRARY_SUFFIX}" zstd_BASENAME "${zstd_BASENAME}")45      set_target_properties(zstd::libzstd_shared PROPERTIES46          INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"47          IMPORTED_LOCATION "${zstd_DIRNAME}/${zstd_BASENAME}"48          IMPORTED_IMPLIB "${zstd_LIBRARY}")49      unset(zstd_DIRNAME)50      unset(zstd_BASENAME)51    else()52      set_target_properties(zstd::libzstd_shared PROPERTIES53          INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"54          IMPORTED_LOCATION "${zstd_LIBRARY}")55    endif()56  endif()57  if(zstd_STATIC_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND58     NOT TARGET zstd::libzstd_static)59    add_library(zstd::libzstd_static STATIC IMPORTED)60    set_target_properties(zstd::libzstd_static PROPERTIES61        INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"62        IMPORTED_LOCATION "${zstd_STATIC_LIBRARY}")63  endif()64endif()65 66unset(zstd_STATIC_LIBRARY_SUFFIX)67 68mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY zstd_STATIC_LIBRARY)69