FindLibzip.cmake 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. find_package(PkgConfig QUIET)
  2. pkg_check_modules(PC_LIBZIP QUIET libzip)
  3. find_path(LIBZIP_INCLUDE_DIR
  4. NAMES zip.h
  5. PATHS ${PC_LIBZIP_INCLUDE_DIRS}
  6. "$ENV{LIB_DIR}/include"
  7. "$ENV{INCLUDE}"
  8. /usr/local/include
  9. /usr/include
  10. )
  11. find_path(LIBZIP_INCLUDE_DIR_ZIPCONF
  12. NAMES zipconf.h
  13. HINTS ${PC_LIBZIP_INCLUDE_DIRS}
  14. "$ENV{LIB_DIR}/include"
  15. "$ENV{LIB_DIR}/lib/libzip/include"
  16. "$ENV{LIB}/lib/libzip/include"
  17. /usr/local/lib/libzip/include
  18. /usr/lib/libzip/include
  19. /usr/local/include
  20. /usr/include
  21. "$ENV{INCLUDE}"
  22. )
  23. find_library(LIBZIP_LIBRARY
  24. NAMES zip
  25. PATHS ${PC_LIBZIP_LIBRARY_DIRS}
  26. "$ENV{LIB_DIR}/lib" "$ENV{LIB}" /usr/local/lib /usr/lib
  27. )
  28. include(FindPackageHandleStandardArgs)
  29. find_package_handle_standard_args(Libzip
  30. FOUND_VAR LIBZIP_FOUND
  31. REQUIRED_VARS
  32. LIBZIP_LIBRARY
  33. LIBZIP_INCLUDE_DIR
  34. LIBZIP_INCLUDE_DIR_ZIPCONF
  35. )
  36. set(LIBZIP_VERSION 0)
  37. if (LIBZIP_INCLUDE_DIR_ZIPCONF)
  38. FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS)
  39. if (_LIBZIP_VERSION_CONTENTS)
  40. STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}")
  41. endif()
  42. endif()
  43. set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip")
  44. if(LIBZIP_FOUND)
  45. set(LIBZIP_LIBRARIES ${LIBZIP_LIBRARY})
  46. set(LIBZIP_INCLUDE_DIRS ${LIBZIP_INCLUDE_DIR})
  47. set(LIBZIP_DEFINITIONS ${PC_LIBZIP_CFLAGS_OTHER})
  48. endif()
  49. if(LIBZIP_FOUND AND NOT TARGET libzip::libzip)
  50. add_library(libzip::libzip UNKNOWN IMPORTED)
  51. set_target_properties(libzip::libzip PROPERTIES
  52. IMPORTED_LOCATION "${LIBZIP_LIBRARY}"
  53. INTERFACE_COMPILE_OPTIONS "${PC_LIBZIP_CFLAGS_OTHER}"
  54. INTERFACE_INCLUDE_DIRECTORIES "${LIBZIP_INCLUDE_DIR}"
  55. )
  56. endif()
  57. mark_as_advanced(
  58. LIBZIP_INCLUDE_DIR
  59. LIBZIP_LIBRARY
  60. )