mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-05 06:22:45 +01:00
d3e87d70ec
CMake is case senstive, so Libzip vs LIBZIP was a bug. Upstream calls themself libzip, so let's pick this naming.
72 lines
1.9 KiB
CMake
72 lines
1.9 KiB
CMake
|
|
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
|
|
)
|
|
|
|
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()
|
|
unset(_libzip_VERSION_CONTENTS)
|
|
endif()
|
|
|
|
set(libzip_VERSION ${libzip_VERSION} CACHE STRING "Version number of libzip")
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(libzip
|
|
FOUND_VAR libzip_FOUND
|
|
REQUIRED_VARS
|
|
libzip_LIBRARY
|
|
libzip_INCLUDE_DIR
|
|
libzip_INCLUDE_DIR_ZIPCONF
|
|
libzip_VERSION
|
|
VERSION_VAR libzip_VERSION
|
|
)
|
|
|
|
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_INCLUDE_DIR_ZIPCONF
|
|
libzip_LIBRARY
|
|
libzip_VERSION
|
|
)
|