diff options
author | Brad King <brad.king@kitware.com> | 2023-08-22 19:08:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-08-22 19:08:35 (GMT) |
commit | 903439495033da40f798db9ec064d9b16ea672fc (patch) | |
tree | 3e0cb28aa1e80445e31914bc0ca5ca2b18b151fd | |
parent | 1d1d905e15f1c0bdc4873acb992b2cb3f644afce (diff) | |
download | CMake-903439495033da40f798db9ec064d9b16ea672fc.zip CMake-903439495033da40f798db9ec064d9b16ea672fc.tar.gz CMake-903439495033da40f798db9ec064d9b16ea672fc.tar.bz2 |
FindZLIB: Fix extraction of two-component version number 1.3
Fixes: #25200
-rw-r--r-- | Modules/FindZLIB.cmake | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/Modules/FindZLIB.cmake b/Modules/FindZLIB.cmake index d0deb87..4e7d5d6 100644 --- a/Modules/FindZLIB.cmake +++ b/Modules/FindZLIB.cmake @@ -175,25 +175,24 @@ unset(ZLIB_NAMES_DEBUG) mark_as_advanced(ZLIB_INCLUDE_DIR) if(ZLIB_INCLUDE_DIR AND EXISTS "${ZLIB_INCLUDE_DIR}/zlib.h") - file(STRINGS "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H REGEX "^#define ZLIB_VERSION \"[^\"]*\"$") - - string(REGEX REPLACE "^.*ZLIB_VERSION \"([0-9]+).*$" "\\1" ZLIB_VERSION_MAJOR "${ZLIB_H}") - string(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_MINOR "${ZLIB_H}") - string(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_PATCH "${ZLIB_H}") - set(ZLIB_VERSION_STRING "${ZLIB_VERSION_MAJOR}.${ZLIB_VERSION_MINOR}.${ZLIB_VERSION_PATCH}") - - # only append a TWEAK version if it exists: + file(STRINGS "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H REGEX "^#define ZLIB_VERSION \"[^\"]*\"$") + if(ZLIB_H MATCHES "ZLIB_VERSION \"(([0-9]+)\\.([0-9]+)(\\.([0-9]+)(\\.([0-9]+))?)?)") + set(ZLIB_VERSION_STRING "${CMAKE_MATCH_1}") + set(ZLIB_VERSION_MAJOR "${CMAKE_MATCH_2}") + set(ZLIB_VERSION_MINOR "${CMAKE_MATCH_3}") + set(ZLIB_VERSION_PATCH "${CMAKE_MATCH_5}") + set(ZLIB_VERSION_TWEAK "${CMAKE_MATCH_7}") + else() + set(ZLIB_VERSION_STRING "") + set(ZLIB_VERSION_MAJOR "") + set(ZLIB_VERSION_MINOR "") + set(ZLIB_VERSION_PATCH "") set(ZLIB_VERSION_TWEAK "") - if( "${ZLIB_H}" MATCHES "ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+)") - set(ZLIB_VERSION_TWEAK "${CMAKE_MATCH_1}") - string(APPEND ZLIB_VERSION_STRING ".${ZLIB_VERSION_TWEAK}") - endif() - - set(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}") - set(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}") - set(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}") - - set(ZLIB_VERSION ${ZLIB_VERSION_STRING}) + endif() + set(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}") + set(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}") + set(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}") + set(ZLIB_VERSION "${ZLIB_VERSION_STRING}") endif() include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |