|
| 1 | +# LIBLZ4_FOUND - System has LZ4 |
| 2 | +# LIBLZ4_INCLUDE_DIRS - The LZ4 include directories |
| 3 | +# LIBLZ4_LIBRARIES - The libraries needed to use LZ4 |
| 4 | + |
| 5 | +find_path( |
| 6 | + LZ4_INCLUDE_DIR lz4.h |
| 7 | + PATH_SUFFIXES include |
| 8 | +) |
| 9 | + |
| 10 | +find_library( |
| 11 | + LZ4_LIBRARY |
| 12 | + NAMES lz4 liblz4 |
| 13 | + PATH_SUFFIXES lib lib64 |
| 14 | +) |
| 15 | + |
| 16 | +set(LZ4_HEADER_FILE "${LZ4_INCLUDE_DIR}/lz4.h") |
| 17 | +if (LZ4_INCLUDE_DIR AND EXISTS ${LZ4_HEADER_FILE}) |
| 18 | + # Try to extract library version from the header file |
| 19 | + file(STRINGS ${LZ4_HEADER_FILE} lz4_major_define |
| 20 | + REGEX "^#define[\t ]+LZ4_VERSION_MAJOR[\t ]+[0-9]+" |
| 21 | + LIMIT_COUNT 1 |
| 22 | + ) |
| 23 | + file(STRINGS ${LZ4_HEADER_FILE} lz4_minor_define |
| 24 | + REGEX "^#define[\t ]+LZ4_VERSION_MINOR[\t ]+[0-9]+" |
| 25 | + LIMIT_COUNT 1 |
| 26 | + ) |
| 27 | + file(STRINGS ${LZ4_HEADER_FILE} lz4_release_define |
| 28 | + REGEX "^#define[\t ]+LZ4_VERSION_RELEASE[\t ]+[0-9]+" |
| 29 | + LIMIT_COUNT 1 |
| 30 | + ) |
| 31 | + |
| 32 | + string(REGEX REPLACE "^#define[\t ]+LZ4_VERSION_MAJOR[\t ]+([0-9]+).*" "\\1" |
| 33 | + lz4_major_num ${lz4_major_define}) |
| 34 | + string(REGEX REPLACE "^#define[\t ]+LZ4_VERSION_MINOR[\t ]+([0-9]+).*" "\\1" |
| 35 | + lz4_minor_num ${lz4_minor_define}) |
| 36 | + string(REGEX REPLACE "^#define[\t ]+LZ4_VERSION_RELEASE[\t ]+([0-9]+).*" "\\1" |
| 37 | + lz4_release_num ${lz4_release_define}) |
| 38 | + |
| 39 | + set(LZ4_VERSION_STRING "${lz4_major_num}.${lz4_minor_num}.${lz4_release_num}") |
| 40 | +endif() |
| 41 | +unset(LZ4_HEADER_FILE) |
| 42 | + |
| 43 | +# Handle the REQUIRED arguments and set LIBLZ4_FOUND to TRUE if all listed |
| 44 | +# variables are TRUE |
| 45 | +include(FindPackageHandleStandardArgs) |
| 46 | +find_package_handle_standard_args(LibLz4 |
| 47 | + REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR |
| 48 | + VERSION_VAR LZ4_VERSION_STRING |
| 49 | +) |
| 50 | + |
| 51 | +set(LIBLZ4_LIBRARIES ${LZ4_LIBRARY}) |
| 52 | +set(LIBLZ4_INCLUDE_DIRS ${LZ4_INCLUDE_DIR}) |
| 53 | +mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARY) |
0 commit comments