From 70dafcf5da29ff772ca6d4dcdd24d5548a0ddd31 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 1 Sep 2021 10:37:38 +0200 Subject: [PATCH] Check for required libzstd APIs in cmake It's very unlikely that anyone uses a zstd version this old, but if they do fail early. --- cmake/Modules/FindZstd.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmake/Modules/FindZstd.cmake b/cmake/Modules/FindZstd.cmake index 461e4d5a6..e28e1334b 100644 --- a/cmake/Modules/FindZstd.cmake +++ b/cmake/Modules/FindZstd.cmake @@ -4,6 +4,22 @@ find_path(ZSTD_INCLUDE_DIR NAMES zstd.h) find_library(ZSTD_LIBRARY NAMES zstd) +if(ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) + # Check that the API we use exists + include(CheckSymbolExists) + unset(HAVE_ZSTD_INITCSTREAM CACHE) + set(CMAKE_REQUIRED_INCLUDES ${ZSTD_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${ZSTD_LIBRARY}) + check_symbol_exists(ZSTD_initCStream zstd.h HAVE_ZSTD_INITCSTREAM) + unset(CMAKE_REQUIRED_INCLUDES) + unset(CMAKE_REQUIRED_LIBRARIES) + + if(NOT HAVE_ZSTD_INITCSTREAM) + unset(ZSTD_INCLUDE_DIR CACHE) + unset(ZSTD_LIBRARY CACHE) + endif() +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Zstd DEFAULT_MSG ZSTD_LIBRARY ZSTD_INCLUDE_DIR)