1# Find LibLZ4 2# 3# Find LibLZ4 headers and library 4# 5# Result Variables 6# 7# LIBLZ4_FOUND - True if lz4 is found 8# LIBLZ4_INCLUDE_DIRS - lz4 headers directories 9# LIBLZ4_LIBRARIES - lz4 libraries 10# LIBLZ4_VERSION_MAJOR - The major version of lz4 11# LIBLZ4_VERSION_MINOR - The minor version of lz4 12# LIBLZ4_VERSION_RELEASE - The release version of lz4 13# LIBLZ4_VERSION_STRING - version number string (e.g. 1.8.3) 14# 15# Hints 16# 17# Set ``LZ4_ROOT_DIR`` to the directory of lz4.h and lz4 library 18 19set(_LIBLZ4_ROOT_HINTS 20 ENV LZ4_ROOT_DIR) 21 22find_path( LIBLZ4_INCLUDE_DIR lz4.h 23 HINTS ${_LIBLZ4_ROOT_HINTS}) 24find_library( LIBLZ4_LIBRARY NAMES lz4 liblz4 liblz4_static 25 HINTS ${_LIBLZ4_ROOT_HINTS}) 26 27if(LIBLZ4_INCLUDE_DIR) 28 file(STRINGS "${LIBLZ4_INCLUDE_DIR}/lz4.h" LIBLZ4_HEADER_CONTENT REGEX "#define LZ4_VERSION_[A-Z]+ +[0-9]+") 29 30 string(REGEX REPLACE ".*#define LZ4_VERSION_MAJOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MAJOR "${LIBLZ4_HEADER_CONTENT}") 31 string(REGEX REPLACE ".*#define LZ4_VERSION_MINOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MINOR "${LIBLZ4_HEADER_CONTENT}") 32 string(REGEX REPLACE ".*#define LZ4_VERSION_RELEASE +([0-9]+).*" "\\1" LIBLZ4_VERSION_RELEASE "${LIBLZ4_HEADER_CONTENT}") 33 34 set(LIBLZ4_VERSION_STRING "${LIBLZ4_VERSION_MAJOR}.${LIBLZ4_VERSION_MINOR}.${LIBLZ4_VERSION_RELEASE}") 35 unset(LIBLZ4_HEADER_CONTENT) 36endif() 37 38include(FindPackageHandleStandardArgs) 39FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZ4 REQUIRED_VARS LIBLZ4_INCLUDE_DIR 40 LIBLZ4_LIBRARY 41 VERSION_VAR LIBLZ4_VERSION_STRING 42 FAIL_MESSAGE "Could NOT find LZ4, try to set the paths to lz4.h and lz4 library in environment variable LZ4_ROOT_DIR") 43 44if (LIBLZ4_FOUND) 45 set(LIBLZ4_LIBRARIES ${LIBLZ4_LIBRARY}) 46 set(LIBLZ4_INCLUDE_DIRS ${LIBLZ4_INCLUDE_DIR}) 47endif () 48 49mark_as_advanced( LIBLZ4_INCLUDE_DIR LIBLZ4_LIBRARY ) 50