Explorar o código

Merge topic 'FindZLIB-1.3'

9034394950 FindZLIB: Fix extraction of two-component version number 1.3

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !8753
Brad King %!s(int64=2) %!d(string=hai) anos
pai
achega
92ff0f811e
Modificáronse 1 ficheiros con 17 adicións e 18 borrados
  1. 17 18
      Modules/FindZLIB.cmake

+ 17 - 18
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)