aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/modules/FindZLIB.cmake91
1 files changed, 46 insertions, 45 deletions
diff --git a/cmake/modules/FindZLIB.cmake b/cmake/modules/FindZLIB.cmake
index ceeea6d0d2..28b4b4bbe9 100644
--- a/cmake/modules/FindZLIB.cmake
+++ b/cmake/modules/FindZLIB.cmake
@@ -68,57 +68,59 @@ if (NOT ZLIB_INCLUDE_DIR OR NOT ZLIB_LIBRARY)
endif()
MARK_AS_ADVANCED(ZLIB_LIBRARY 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 \"[^\"]*\"$")
+if(ZLIB_FOUND)
+ 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}")
+ 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:
- 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}")
- SET(ZLIB_VERSION_STRING "${ZLIB_VERSION_STRING}.${ZLIB_VERSION_TWEAK}")
- ENDIF( "${ZLIB_H}" MATCHES "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
+ # only append a TWEAK version if it exists:
+ 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}")
+ SET(ZLIB_VERSION_STRING "${ZLIB_VERSION_STRING}.${ZLIB_VERSION_TWEAK}")
+ ENDIF( "${ZLIB_H}" MATCHES "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
- SET(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}")
- SET(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}")
- SET(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
-ENDIF()
+ SET(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}")
+ SET(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}")
+ SET(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
+ ENDIF()
-#
-# inflatePrime was added in zlib 1.2.2.4 in 2005. We're guaranteed
-# to have it on Windows.
-#
-IF(WIN32)
- SET(HAVE_INFLATEPRIME ON)
-ELSE()
- INCLUDE(CMakePushCheckState)
- INCLUDE(CheckFunctionExists)
- CMAKE_PUSH_CHECK_STATE()
- set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
- set(CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARY})
- #
- # Check for inflate() in zlib, to make sure the zlib library is
- # usable.
#
- # For example, on at least some versions of Fedora, if you have a
- # 64-bit machine, have both the 32-bit and 64-bit versions of the
- # run-time zlib package installed, and have only the *32-bit*
- # version of the zlib development package installed, it'll find the
- # header, and think it can use zlib, and will use it in subsequent
- # tests, but it'll try and link 64-bit test programs with the 32-bit
- # library, causing those tests to falsely fail. Hilarity ensues.
+ # inflatePrime was added in zlib 1.2.2.4 in 2005. We're guaranteed
+ # to have it on Windows.
#
- CHECK_FUNCTION_EXISTS("inflate" HAVE_INFLATE)
- IF(NOT HAVE_INFLATE)
- MESSAGE(FATAL_ERROR "zlib.h found but linking with -lz failed to find inflate(); do you have the right developer package installed (32-bit vs. 64-bit)?")
+ IF(WIN32)
+ SET(HAVE_INFLATEPRIME ON)
+ ELSE()
+ INCLUDE(CMakePushCheckState)
+ INCLUDE(CheckFunctionExists)
+ CMAKE_PUSH_CHECK_STATE()
+ set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
+ set(CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARY})
+ #
+ # Check for inflate() in zlib, to make sure the zlib library is
+ # usable.
+ #
+ # For example, on at least some versions of Fedora, if you have a
+ # 64-bit machine, have both the 32-bit and 64-bit versions of the
+ # run-time zlib package installed, and have only the *32-bit*
+ # version of the zlib development package installed, it'll find the
+ # header, and think it can use zlib, and will use it in subsequent
+ # tests, but it'll try and link 64-bit test programs with the 32-bit
+ # library, causing those tests to falsely fail. Hilarity ensues.
+ #
+ CHECK_FUNCTION_EXISTS("inflate" HAVE_INFLATE)
+ IF(NOT HAVE_INFLATE)
+ MESSAGE(FATAL_ERROR "zlib.h found but linking with -lz failed to find inflate(); do you have the right developer package installed (32-bit vs. 64-bit)?")
+ ENDIF()
+ CHECK_FUNCTION_EXISTS("inflatePrime" HAVE_INFLATEPRIME)
+ # reset
+ CMAKE_POP_CHECK_STATE()
ENDIF()
- CHECK_FUNCTION_EXISTS("inflatePrime" HAVE_INFLATEPRIME)
- # reset
- CMAKE_POP_CHECK_STATE()
ENDIF()
# handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
@@ -138,4 +140,3 @@ ELSE()
SET(ZLIB_DLL )
SET(ZLIB_PDB )
ENDIF()
-