summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/FindZLIB.cmake35
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)