aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindZLIB.cmake
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2019-04-24 18:33:26 -0700
committerGuy Harris <guy@alum.mit.edu>2019-04-25 01:59:05 +0000
commitc66994215b4f0344d7ec6f9340ed79e647053018 (patch)
treecedbf498c2bd28ef19fdb3e39fbfa11ecf3ab164 /cmake/modules/FindZLIB.cmake
parentf75d841ad29e5b51584b95b59153050f7f089590 (diff)
Don't look for zlib stuff if we didn't find zlib.
If we didn't find zlib, don't look for its version number in zlib.h, and don't look for inflate() or inflatePrime() in the library. Trim off some trailing blank lines while we're at it. Change-Id: I834a9a76928a00cf5e182bd4224ebc91d36d69a4 Reviewed-on: https://code.wireshark.org/review/32973 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'cmake/modules/FindZLIB.cmake')
-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()
-