1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-30 19:46:56 +00:00
transmission/cmake/FindDEFLATE.cmake
Mike Gelfand 88556bd859
Fix libdeflate find module never finding anything (#4968)
`DEFLATE_VERSION` was never set but was listed as required. Move it from
`REQUIRED_VARS` to `VERSION_VAR` and populate properly.
2023-02-20 21:09:24 +00:00

49 lines
1.5 KiB
CMake

if(DEFLATE_PREFER_STATIC_LIB)
set(DEFLATE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(WIN32)
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
endif()
if(UNIX)
find_package(PkgConfig QUIET)
# pkg-config support added in libdeflate v1.9
pkg_check_modules(_DEFLATE QUIET libdeflate)
endif()
find_path(DEFLATE_INCLUDE_DIR
NAMES libdeflate.h
HINTS ${_DEFLATE_INCLUDEDIR})
find_library(DEFLATE_LIBRARY
NAMES deflate
HINTS ${_DEFLATE_LIBDIR})
set(DEFLATE_INCLUDE_DIRS ${DEFLATE_INCLUDE_DIR})
set(DEFLATE_LIBRARIES ${DEFLATE_LIBRARY})
if(_DEFLATE_VERSION)
set(DEFLATE_VERSION ${_DEFLATE_VERSION})
elseif(DEFLATE_INCLUDE_DIR)
file(STRINGS "${DEFLATE_INCLUDE_DIR}/libdeflate.h" DEFLATE_VERSION_STR
REGEX "^#define[\t ]+LIBDEFLATE_VERSION_STRING[\t ]+\"[^\"]+\"")
if(DEFLATE_VERSION_STR MATCHES "\"([^\"]+)\"")
set(DEFLATE_VERSION "${CMAKE_MATCH_1}")
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(DEFLATE
REQUIRED_VARS
DEFLATE_INCLUDE_DIR
DEFLATE_LIBRARY
VERSION_VAR DEFLATE_VERSION)
mark_as_advanced(DEFLATE_INCLUDE_DIR DEFLATE_LIBRARY)
if(DEFLATE_PREFER_STATIC_LIB)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${DEFLATE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
unset(DEFLATE_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
endif()