From a1532e7b16abf9912fae50a1ac50bcc8a53149aa Mon Sep 17 00:00:00 2001 From: Dario Lombardo Date: Tue, 27 Aug 2019 14:49:13 +0100 Subject: cmake: check minimum zstd library version. The APIs used in the kafka dissector have been introduced in version 1.0.0, then we need at least that version to work. Change-Id: I80ded2362d4f324ec26392bd7a9781ea6d9ba630 Reviewed-on: https://code.wireshark.org/review/34382 Petri-Dish: Dario Lombardo Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- CMakeLists.txt | 2 +- cmake/modules/FindZSTD.cmake | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 01d68b8890..c28d909197 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1139,7 +1139,7 @@ ws_find_package(LZ4 ENABLE_LZ4 HAVE_LZ4) ws_find_package(SNAPPY ENABLE_SNAPPY HAVE_SNAPPY) # zstd compression -ws_find_package(ZSTD ENABLE_ZSTD HAVE_ZSTD) +ws_find_package(ZSTD ENABLE_ZSTD HAVE_ZSTD "1.0.0") # Enhanced HTTP/2 dissection ws_find_package(NGHTTP2 ENABLE_NGHTTP2 HAVE_NGHTTP2) diff --git a/cmake/modules/FindZSTD.cmake b/cmake/modules/FindZSTD.cmake index d2d1f6207a..54f9281869 100644 --- a/cmake/modules/FindZSTD.cmake +++ b/cmake/modules/FindZSTD.cmake @@ -31,8 +31,21 @@ find_library(ZSTD_LIBRARY /usr/local/lib ) +file(STRINGS ${ZSTD_INCLUDE_DIR}/zstd.h ZSTD_VERSION_MAJOR + REGEX "#define[ ]+ZSTD_VERSION_MAJOR[ ]+[0-9]+") +string(REGEX MATCH "[0-9]+" ZSTD_VERSION_MAJOR ${ZSTD_VERSION_MAJOR}) +file(STRINGS ${ZSTD_INCLUDE_DIR}/zstd.h ZSTD_VERSION_MINOR + REGEX "#define[ ]+ZSTD_VERSION_MINOR[ ]+[0-9]+") +string(REGEX MATCH "[0-9]+" ZSTD_VERSION_MINOR ${ZSTD_VERSION_MINOR}) +file(STRINGS ${ZSTD_INCLUDE_DIR}/zstd.h ZSTD_VERSION_RELEASE + REGEX "#define[ ]+ZSTD_VERSION_RELEASE[ ]+[0-9]+") +string(REGEX MATCH "[0-9]+" ZSTD_VERSION_RELEASE ${ZSTD_VERSION_RELEASE}) +set(ZSTD_VERSION ${ZSTD_VERSION_MAJOR}.${ZSTD_VERSION_MINOR}.${ZSTD_VERSION_RELEASE}) + include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( ZSTD DEFAULT_MSG ZSTD_LIBRARY ZSTD_INCLUDE_DIR ) +find_package_handle_standard_args(ZSTD + REQUIRED_VARS ZSTD_LIBRARY ZSTD_INCLUDE_DIR + VERSION_VAR ZSTD_VERSION) if( ZSTD_FOUND ) set( ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR} ) -- cgit v1.2.3