• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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