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