diff --git a/externals/find-modules/Findzstd.cmake b/externals/find-modules/Findzstd.cmake index cd0158b0cc..539abbafc1 100644 --- a/externals/find-modules/Findzstd.cmake +++ b/externals/find-modules/Findzstd.cmake @@ -11,12 +11,26 @@ find_library(zstd_LIBRARY PATHS ${PC_zstd_LIBRARY_DIRS} ) +if(zstd_INCLUDE_DIR) + file(STRINGS "${zstd_INCLUDE_DIR}/zstd.h" _zstd_version_lines + REGEX "#define[ \t]+ZSTD_VERSION_(MAJOR|MINOR|RELEASE)") + string(REGEX REPLACE ".*ZSTD_VERSION_MAJOR *\([0-9]*\).*" "\\1" _zstd_version_major "${_zstd_version_lines}") + string(REGEX REPLACE ".*ZSTD_VERSION_MINOR *\([0-9]*\).*" "\\1" _zstd_version_minor "${_zstd_version_lines}") + string(REGEX REPLACE ".*ZSTD_VERSION_RELEASE *\([0-9]*\).*" "\\1" _zstd_version_release "${_zstd_version_lines}") + set(zstd_VERSION "${_zstd_version_major}.${_zstd_version_minor}.${_zstd_version_release}") + unset(_zstd_version_major) + unset(_zstd_version_minor) + unset(_zstd_version_release) + unset(_zstd_version_lines) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(zstd FOUND_VAR zstd_FOUND REQUIRED_VARS zstd_LIBRARY zstd_INCLUDE_DIR + zstd_VERSION VERSION_VAR zstd_VERSION )