50 lines
2.0 KiB
CMake
50 lines
2.0 KiB
CMake
|
# Find LibLZ4
|
||
|
#
|
||
|
# Find LibLZ4 headers and library
|
||
|
#
|
||
|
# Result Variables
|
||
|
#
|
||
|
# LIBLZ4_FOUND - True if lz4 is found
|
||
|
# LIBLZ4_INCLUDE_DIRS - lz4 headers directories
|
||
|
# LIBLZ4_LIBRARIES - lz4 libraries
|
||
|
# LIBLZ4_VERSION_MAJOR - The major version of lz4
|
||
|
# LIBLZ4_VERSION_MINOR - The minor version of lz4
|
||
|
# LIBLZ4_VERSION_RELEASE - The release version of lz4
|
||
|
# LIBLZ4_VERSION_STRING - version number string (e.g. 1.8.3)
|
||
|
#
|
||
|
# Hints
|
||
|
#
|
||
|
# Set ``LZ4_ROOT_DIR`` to the directory of lz4.h and lz4 library
|
||
|
|
||
|
set(_LIBLZ4_ROOT_HINTS
|
||
|
ENV LZ4_ROOT_DIR)
|
||
|
|
||
|
find_path( LIBLZ4_INCLUDE_DIR lz4.h
|
||
|
HINTS ${_LIBLZ4_ROOT_HINTS})
|
||
|
find_library( LIBLZ4_LIBRARY NAMES lz4 liblz4 liblz4_static
|
||
|
HINTS ${_LIBLZ4_ROOT_HINTS})
|
||
|
|
||
|
if(LIBLZ4_INCLUDE_DIR)
|
||
|
file(STRINGS "${LIBLZ4_INCLUDE_DIR}/lz4.h" LIBLZ4_HEADER_CONTENT REGEX "#define LZ4_VERSION_[A-Z]+ +[0-9]+")
|
||
|
|
||
|
string(REGEX REPLACE ".*#define LZ4_VERSION_MAJOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MAJOR "${LIBLZ4_HEADER_CONTENT}")
|
||
|
string(REGEX REPLACE ".*#define LZ4_VERSION_MINOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MINOR "${LIBLZ4_HEADER_CONTENT}")
|
||
|
string(REGEX REPLACE ".*#define LZ4_VERSION_RELEASE +([0-9]+).*" "\\1" LIBLZ4_VERSION_RELEASE "${LIBLZ4_HEADER_CONTENT}")
|
||
|
|
||
|
set(LIBLZ4_VERSION_STRING "${LIBLZ4_VERSION_MAJOR}.${LIBLZ4_VERSION_MINOR}.${LIBLZ4_VERSION_RELEASE}")
|
||
|
unset(LIBLZ4_HEADER_CONTENT)
|
||
|
endif()
|
||
|
|
||
|
include(FindPackageHandleStandardArgs)
|
||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZ4 REQUIRED_VARS LIBLZ4_INCLUDE_DIR
|
||
|
LIBLZ4_LIBRARY
|
||
|
VERSION_VAR LIBLZ4_VERSION_STRING
|
||
|
FAIL_MESSAGE "Could NOT find LZ4, try to set the paths to lz4.h and lz4 library in environment variable LZ4_ROOT_DIR")
|
||
|
|
||
|
if (LIBLZ4_FOUND)
|
||
|
set(LIBLZ4_LIBRARIES ${LIBLZ4_LIBRARY})
|
||
|
set(LIBLZ4_INCLUDE_DIRS ${LIBLZ4_INCLUDE_DIR})
|
||
|
endif ()
|
||
|
|
||
|
mark_as_advanced( LIBLZ4_INCLUDE_DIR LIBLZ4_LIBRARY )
|