Findlibzip.cmake 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. if (libzip_INCLUDE_DIR_ZIPCONF)
  29. FILE(READ "${libzip_INCLUDE_DIR_ZIPCONF}/zipconf.h" _libzip_VERSION_CONTENTS)
  30. if (_libzip_VERSION_CONTENTS)
  31. STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" libzip_VERSION "${_libzip_VERSION_CONTENTS}")
  32. endif()
  33. unset(_libzip_VERSION_CONTENTS)
  34. endif()
  35. set(libzip_VERSION ${libzip_VERSION} CACHE STRING "Version number of libzip")
  36. include(FindPackageHandleStandardArgs)
  37. find_package_handle_standard_args(libzip
  38. FOUND_VAR libzip_FOUND
  39. REQUIRED_VARS
  40. libzip_LIBRARY
  41. libzip_INCLUDE_DIR
  42. libzip_INCLUDE_DIR_ZIPCONF
  43. libzip_VERSION
  44. VERSION_VAR libzip_VERSION
  45. )
  46. if(libzip_FOUND)
  47. set(libzip_LIBRARIES ${libzip_LIBRARY})
  48. set(libzip_INCLUDE_DIRS ${libzip_INCLUDE_DIR})
  49. set(libzip_DEFINITIONS ${PC_libzip_CFLAGS_OTHER})
  50. endif()
  51. if(libzip_FOUND AND NOT TARGET libzip::libzip)
  52. add_library(libzip::libzip UNKNOWN IMPORTED)
  53. set_target_properties(libzip::libzip PROPERTIES
  54. IMPORTED_LOCATION "${libzip_LIBRARY}"
  55. INTERFACE_COMPILE_OPTIONS "${PC_libzip_CFLAGS_OTHER}"
  56. INTERFACE_INCLUDE_DIRECTORIES "${libzip_INCLUDE_DIR}"
  57. )
  58. endif()
  59. mark_as_advanced(
  60. libzip_INCLUDE_DIR
  61. libzip_INCLUDE_DIR_ZIPCONF
  62. libzip_LIBRARY
  63. libzip_VERSION
  64. )