FindLibLZ4.cmake 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. set(_LIBLZ4_ROOT_HINTS
  19. ENV LZ4_ROOT_DIR)
  20. find_path( LIBLZ4_INCLUDE_DIR lz4.h
  21. HINTS ${_LIBLZ4_ROOT_HINTS})
  22. find_library( LIBLZ4_LIBRARY NAMES lz4 liblz4 liblz4_static
  23. HINTS ${_LIBLZ4_ROOT_HINTS})
  24. if(LIBLZ4_INCLUDE_DIR)
  25. file(STRINGS "${LIBLZ4_INCLUDE_DIR}/lz4.h" LIBLZ4_HEADER_CONTENT REGEX "#define LZ4_VERSION_[A-Z]+ +[0-9]+")
  26. string(REGEX REPLACE ".*#define LZ4_VERSION_MAJOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MAJOR "${LIBLZ4_HEADER_CONTENT}")
  27. string(REGEX REPLACE ".*#define LZ4_VERSION_MINOR +([0-9]+).*" "\\1" LIBLZ4_VERSION_MINOR "${LIBLZ4_HEADER_CONTENT}")
  28. string(REGEX REPLACE ".*#define LZ4_VERSION_RELEASE +([0-9]+).*" "\\1" LIBLZ4_VERSION_RELEASE "${LIBLZ4_HEADER_CONTENT}")
  29. set(LIBLZ4_VERSION_STRING "${LIBLZ4_VERSION_MAJOR}.${LIBLZ4_VERSION_MINOR}.${LIBLZ4_VERSION_RELEASE}")
  30. unset(LIBLZ4_HEADER_CONTENT)
  31. endif()
  32. include(FindPackageHandleStandardArgs)
  33. FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZ4 REQUIRED_VARS LIBLZ4_INCLUDE_DIR
  34. LIBLZ4_LIBRARY
  35. VERSION_VAR LIBLZ4_VERSION_STRING
  36. FAIL_MESSAGE "Could NOT find LZ4, try to set the paths to lz4.h and lz4 library in environment variable LZ4_ROOT_DIR")
  37. if (LIBLZ4_FOUND)
  38. set(LIBLZ4_LIBRARIES ${LIBLZ4_LIBRARY})
  39. set(LIBLZ4_INCLUDE_DIRS ${LIBLZ4_INCLUDE_DIR})
  40. endif ()
  41. mark_as_advanced( LIBLZ4_INCLUDE_DIR LIBLZ4_LIBRARY )