From 32c432887cc38f503697458aa39bd316c4a82069 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 17 Aug 2017 16:01:55 +0800 Subject: [PATCH] cmake: require lz4 v1.7 for building lz4 compressor Signed-off-by: Kefu Chai (cherry picked from commit b567261208d937d1937497d3e4f6eb97f7a8ed21) --- CMakeLists.txt | 2 +- cmake/modules/FindLZ4.cmake | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc7dd87eeb8b3..0ac42e86a1bd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,7 +274,7 @@ find_package(snappy REQUIRED) option(WITH_LZ4 "LZ4 compression support" OFF) if(WITH_LZ4) - find_package(LZ4 REQUIRED) + find_package(LZ4 1.7 REQUIRED) set(HAVE_LZ4 ${LZ4_FOUND}) endif(WITH_LZ4) diff --git a/cmake/modules/FindLZ4.cmake b/cmake/modules/FindLZ4.cmake index 5625865325e51..27d4bc5855408 100644 --- a/cmake/modules/FindLZ4.cmake +++ b/cmake/modules/FindLZ4.cmake @@ -5,11 +5,30 @@ # LZ4_FOUND # LZ4_INCLUDE_DIR # LZ4_LIBRARY +# LZ4_VERSION_STRING +# LZ4_VERSION_MAJOR +# LZ4_VERSION_MINOR +# LZ4_VERSION_RELEASE find_path(LZ4_INCLUDE_DIR NAMES lz4.h) + +if(LZ4_INCLUDE_DIR AND EXISTS "${LZ4_INCLUDE_DIR}/lz4.h") + foreach(ver "MAJOR" "MINOR" "RELEASE") + file(STRINGS "${LZ4_INCLUDE_DIR}/lz4.h" LZ4_VER_${ver}_LINE + REGEX "^#define[ \t]+LZ4_VERSION_${ver}[ \t]+[0-9]+[ \t]+.*$") + string(REGEX REPLACE "^#define[ \t]+LZ4_VERSION_${ver}[ \t]+([0-9]+)[ \t]+.*$" + "\\1" LZ4_VERSION_${ver} "${LZ4_VER_${ver}_LINE}") + unset(${LZ4_VER_${ver}_LINE}) + endforeach() + set(LZ4_VERSION_STRING + "${LZ4_VERSION_MAJOR}.${LZ4_VERSION_MINOR}.${LZ4_VERSION_RELEASE}") +endif() + find_library(LZ4_LIBRARY NAMES lz4) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LZ4 DEFAULT_MSG LZ4_LIBRARY LZ4_INCLUDE_DIR) +find_package_handle_standard_args(LZ4 + REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR + VERSION_VAR LZ4_VERSION_STRING) mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARY) -- 2.39.5