summaryrefslogtreecommitdiffstats
path: root/externals/find-modules/FindLibzip.cmake
diff options
context:
space:
mode:
authorJames Rowe <jroweboy@gmail.com>2020-05-08 23:09:29 +0200
committerGitHub <noreply@github.com>2020-05-08 23:09:29 +0200
commitbc30a591ba7252e0c16d9c1b3c75a7073735bcae (patch)
tree2e88ab16d60c7df3e665bcf7c75c24683cb07189 /externals/find-modules/FindLibzip.cmake
parentMerge pull request #3885 from ReinUsesLisp/viewport-swizzles (diff)
downloadyuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar.gz
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar.bz2
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar.lz
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar.xz
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.tar.zst
yuzu-bc30a591ba7252e0c16d9c1b3c75a7073735bcae.zip
Diffstat (limited to 'externals/find-modules/FindLibzip.cmake')
-rw-r--r--externals/find-modules/FindLibzip.cmake69
1 files changed, 69 insertions, 0 deletions
diff --git a/externals/find-modules/FindLibzip.cmake b/externals/find-modules/FindLibzip.cmake
new file mode 100644
index 000000000..0b5148856
--- /dev/null
+++ b/externals/find-modules/FindLibzip.cmake
@@ -0,0 +1,69 @@
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_LIBZIP QUIET libzip)
+
+find_path(LIBZIP_INCLUDE_DIR
+ NAMES zip.h
+ PATHS ${PC_LIBZIP_INCLUDE_DIRS}
+ "$ENV{LIB_DIR}/include"
+ "$ENV{INCLUDE}"
+ /usr/local/include
+ /usr/include
+)
+find_path(LIBZIP_INCLUDE_DIR_ZIPCONF
+ NAMES zipconf.h
+ HINTS ${PC_LIBZIP_INCLUDE_DIRS}
+ "$ENV{LIB_DIR}/include"
+ "$ENV{LIB_DIR}/lib/libzip/include"
+ "$ENV{LIB}/lib/libzip/include"
+ /usr/local/lib/libzip/include
+ /usr/lib/libzip/include
+ /usr/local/include
+ /usr/include
+ "$ENV{INCLUDE}"
+)
+find_library(LIBZIP_LIBRARY
+ NAMES zip
+ PATHS ${PC_LIBZIP_LIBRARY_DIRS}
+ "$ENV{LIB_DIR}/lib" "$ENV{LIB}" /usr/local/lib /usr/lib
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Libzip
+ FOUND_VAR LIBZIP_FOUND
+ REQUIRED_VARS
+ LIBZIP_LIBRARY
+ LIBZIP_INCLUDE_DIR
+ LIBZIP_INCLUDE_DIR_ZIPCONF
+)
+
+set(LIBZIP_VERSION 0)
+
+if (LIBZIP_INCLUDE_DIR_ZIPCONF)
+ FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS)
+ if (_LIBZIP_VERSION_CONTENTS)
+ STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}")
+ endif()
+endif()
+
+set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip")
+
+if(LIBZIP_FOUND)
+ set(LIBZIP_LIBRARIES ${LIBZIP_LIBRARY})
+ set(LIBZIP_INCLUDE_DIRS ${LIBZIP_INCLUDE_DIR})
+ set(LIBZIP_DEFINITIONS ${PC_LIBZIP_CFLAGS_OTHER})
+endif()
+
+if(LIBZIP_FOUND AND NOT TARGET libzip::libzip)
+ add_library(libzip::libzip UNKNOWN IMPORTED)
+ set_target_properties(libzip::libzip PROPERTIES
+ IMPORTED_LOCATION "${LIBZIP_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${PC_LIBZIP_CFLAGS_OTHER}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LIBZIP_INCLUDE_DIR}"
+ )
+endif()
+
+mark_as_advanced(
+ LIBZIP_INCLUDE_DIR
+ LIBZIP_LIBRARY
+)