Browse Source

FindZLIB: add support for version handling (fixes #5588)

This change depends on the fix for #9414 which should land very soon.
Kovarththanan Rajaratnam 15 years ago
parent
commit
79442f8045
1 changed files with 13 additions and 3 deletions
  1. 13 3
      Modules/FindZLIB.cmake

+ 13 - 3
Modules/FindZLIB.cmake

@@ -1,9 +1,14 @@
 # - Find zlib
 # Find the native ZLIB includes and library
 #
-#  ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
-#  ZLIB_LIBRARIES    - List of libraries when using zlib.
-#  ZLIB_FOUND        - True if zlib found.
+#  ZLIB_INCLUDE_DIRS   - where to find zlib.h, etc.
+#  ZLIB_LIBRARIES      - List of libraries when using zlib.
+#  ZLIB_FOUND          - True if zlib found.
+#
+#  ZLIB_VERSION_STRING - The version of zlib found (x.y.z)
+#  ZLIB_MAJOR_VERSION  - the major version of zlib
+#  ZLIB_MINOR_VERSION  - The minor version of zlib
+#  ZLIB_PATCH_VERSION  - The patch version of zlib
 
 #=============================================================================
 # Copyright 2001-2009 Kitware, Inc.
@@ -31,6 +36,11 @@ FIND_LIBRARY(ZLIB_LIBRARY
 )
 MARK_AS_ADVANCED(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
 
+IF (ZLIB_INCLUDE_DIR)
+    FILE(READ "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H)
+    STRING(REGEX REPLACE ".*#define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*" "\\1.\\2.\\3" ZLIB_VERSION_STRING "${ZLIB_H}")
+ENDIF()
+
 # Per-recommendation
 SET(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}")
 SET(ZLIB_LIBRARIES    "${ZLIB_LIBRARY}")