diff options
Diffstat (limited to 'externals/find-modules/Findlibzip.cmake')
| -rw-r--r-- | externals/find-modules/Findlibzip.cmake | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/externals/find-modules/Findlibzip.cmake b/externals/find-modules/Findlibzip.cmake new file mode 100644 index 000000000..8934de3b8 --- /dev/null +++ b/externals/find-modules/Findlibzip.cmake | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | |||
| 2 | find_package(PkgConfig QUIET) | ||
| 3 | pkg_check_modules(PC_libzip QUIET libzip) | ||
| 4 | |||
| 5 | find_path(libzip_INCLUDE_DIR | ||
| 6 | NAMES zip.h | ||
| 7 | PATHS ${PC_libzip_INCLUDE_DIRS} | ||
| 8 | "$ENV{LIB_DIR}/include" | ||
| 9 | "$ENV{INCLUDE}" | ||
| 10 | /usr/local/include | ||
| 11 | /usr/include | ||
| 12 | ) | ||
| 13 | find_path(libzip_INCLUDE_DIR_ZIPCONF | ||
| 14 | NAMES zipconf.h | ||
| 15 | HINTS ${PC_libzip_INCLUDE_DIRS} | ||
| 16 | "$ENV{LIB_DIR}/include" | ||
| 17 | "$ENV{LIB_DIR}/lib/libzip/include" | ||
| 18 | "$ENV{LIB}/lib/libzip/include" | ||
| 19 | /usr/local/lib/libzip/include | ||
| 20 | /usr/lib/libzip/include | ||
| 21 | /usr/local/include | ||
| 22 | /usr/include | ||
| 23 | "$ENV{INCLUDE}" | ||
| 24 | ) | ||
| 25 | find_library(libzip_LIBRARY | ||
| 26 | NAMES zip | ||
| 27 | PATHS ${PC_libzip_LIBRARY_DIRS} | ||
| 28 | "$ENV{LIB_DIR}/lib" "$ENV{LIB}" /usr/local/lib /usr/lib | ||
| 29 | ) | ||
| 30 | |||
| 31 | if (libzip_INCLUDE_DIR_ZIPCONF) | ||
| 32 | FILE(READ "${libzip_INCLUDE_DIR_ZIPCONF}/zipconf.h" _libzip_VERSION_CONTENTS) | ||
| 33 | if (_libzip_VERSION_CONTENTS) | ||
| 34 | STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" libzip_VERSION "${_libzip_VERSION_CONTENTS}") | ||
| 35 | endif() | ||
| 36 | unset(_libzip_VERSION_CONTENTS) | ||
| 37 | endif() | ||
| 38 | |||
| 39 | set(libzip_VERSION ${libzip_VERSION} CACHE STRING "Version number of libzip") | ||
| 40 | |||
| 41 | include(FindPackageHandleStandardArgs) | ||
| 42 | find_package_handle_standard_args(libzip | ||
| 43 | FOUND_VAR libzip_FOUND | ||
| 44 | REQUIRED_VARS | ||
| 45 | libzip_LIBRARY | ||
| 46 | libzip_INCLUDE_DIR | ||
| 47 | libzip_INCLUDE_DIR_ZIPCONF | ||
| 48 | libzip_VERSION | ||
| 49 | VERSION_VAR libzip_VERSION | ||
| 50 | ) | ||
| 51 | |||
| 52 | if(libzip_FOUND) | ||
| 53 | set(libzip_LIBRARIES ${libzip_LIBRARY}) | ||
| 54 | set(libzip_INCLUDE_DIRS ${libzip_INCLUDE_DIR}) | ||
| 55 | set(libzip_DEFINITIONS ${PC_libzip_CFLAGS_OTHER}) | ||
| 56 | endif() | ||
| 57 | |||
| 58 | if(libzip_FOUND AND NOT TARGET libzip::libzip) | ||
| 59 | add_library(libzip::libzip UNKNOWN IMPORTED) | ||
| 60 | set_target_properties(libzip::libzip PROPERTIES | ||
| 61 | IMPORTED_LOCATION "${libzip_LIBRARY}" | ||
| 62 | INTERFACE_COMPILE_OPTIONS "${PC_libzip_CFLAGS_OTHER}" | ||
| 63 | INTERFACE_INCLUDE_DIRECTORIES "${libzip_INCLUDE_DIR}" | ||
| 64 | ) | ||
| 65 | endif() | ||
| 66 | |||
| 67 | mark_as_advanced( | ||
| 68 | libzip_INCLUDE_DIR | ||
| 69 | libzip_INCLUDE_DIR_ZIPCONF | ||
| 70 | libzip_LIBRARY | ||
| 71 | libzip_VERSION | ||
| 72 | ) | ||