[136] | 1 | # - Find zlib
|
---|
| 2 | # Find the native ZLIB includes and library.
|
---|
| 3 | # Once done this will define
|
---|
| 4 | #
|
---|
| 5 | # ZLIB_INCLUDE_DIRS - where to find zlib.h, etc.
|
---|
| 6 | # ZLIB_LIBRARIES - List of libraries when using zlib.
|
---|
| 7 | # ZLIB_FOUND - True if zlib found.
|
---|
| 8 | #
|
---|
| 9 | # ZLIB_VERSION_STRING - The version of zlib found (x.y.z)
|
---|
| 10 | # ZLIB_VERSION_MAJOR - The major version of zlib
|
---|
| 11 | # ZLIB_VERSION_MINOR - The minor version of zlib
|
---|
| 12 | # ZLIB_VERSION_PATCH - The patch version of zlib
|
---|
| 13 | # ZLIB_VERSION_TWEAK - The tweak version of zlib
|
---|
| 14 | #
|
---|
| 15 | # The following variable are provided for backward compatibility
|
---|
| 16 | #
|
---|
| 17 | # ZLIB_MAJOR_VERSION - The major version of zlib
|
---|
| 18 | # ZLIB_MINOR_VERSION - The minor version of zlib
|
---|
| 19 | # ZLIB_PATCH_VERSION - The patch version of zlib
|
---|
| 20 | #
|
---|
| 21 | # An includer may set ZLIB_ROOT to a zlib installation root to tell
|
---|
| 22 | # this module where to look.
|
---|
| 23 |
|
---|
| 24 | #=============================================================================
|
---|
| 25 | # Copyright 2001-2011 Kitware, Inc.
|
---|
| 26 | #
|
---|
| 27 | # Distributed under the OSI-approved BSD License (the "License");
|
---|
| 28 | # see accompanying file Copyright.txt for details.
|
---|
| 29 | #
|
---|
| 30 | # This software is distributed WITHOUT ANY WARRANTY; without even the
|
---|
| 31 | # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
---|
| 32 | # See the License for more information.
|
---|
| 33 | #=============================================================================
|
---|
| 34 | # (To distribute this file outside of CMake, substitute the full
|
---|
| 35 | # License text for the above reference.)
|
---|
| 36 |
|
---|
| 37 | SET(_ZLIB_SEARCHES)
|
---|
| 38 |
|
---|
| 39 | # Search ZLIB_INCLUDEDIR and ZLIB_LIBRARYDIR if specified
|
---|
| 40 |
|
---|
| 41 | IF(ZLIB_INCLUDEDIR OR ZLIB_LIBRARYDIR)
|
---|
| 42 | SET(_ZLIB_SEARCHDIR PATHS ${ZLIB_INCLUDEDIR} ${ZLIB_LIBRARYDIR} NO_DEFAULT_PATH)
|
---|
| 43 | LIST(APPEND _ZLIB_SEARCHES _ZLIB_SEARCHDIR)
|
---|
| 44 | ENDIF()
|
---|
| 45 |
|
---|
| 46 | # Search ZLIB_ROOT first if it is set.
|
---|
| 47 | IF(ZLIB_ROOT)
|
---|
| 48 | SET(_ZLIB_SEARCH_ROOT PATHS ${ZLIB_ROOT} NO_DEFAULT_PATH)
|
---|
| 49 | LIST(APPEND _ZLIB_SEARCHES _ZLIB_SEARCH_ROOT)
|
---|
| 50 | ENDIF()
|
---|
| 51 |
|
---|
| 52 | # Normal search.
|
---|
| 53 | SET(_ZLIB_SEARCH_NORMAL
|
---|
| 54 | PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]"
|
---|
| 55 | "$ENV{PROGRAMFILES}/zlib"
|
---|
| 56 | )
|
---|
| 57 | LIST(APPEND _ZLIB_SEARCHES _ZLIB_SEARCH_NORMAL)
|
---|
| 58 |
|
---|
| 59 | SET(ZLIB_NAMES z zlib zdll zlib1 zlibd zlibd1)
|
---|
| 60 |
|
---|
| 61 | # Try each search configuration.
|
---|
| 62 | FOREACH(search ${_ZLIB_SEARCHES})
|
---|
| 63 | FIND_PATH(ZLIB_INCLUDE_DIR NAMES zlib.h ${${search}})
|
---|
| 64 | FIND_LIBRARY(ZLIB_LIBRARY NAMES ${ZLIB_NAMES} ${${search}})
|
---|
| 65 | ENDFOREACH()
|
---|
| 66 |
|
---|
| 67 | MARK_AS_ADVANCED(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
|
---|
| 68 |
|
---|
| 69 | IF(ZLIB_INCLUDE_DIR AND EXISTS "${ZLIB_INCLUDE_DIR}/zlib.h")
|
---|
| 70 | FILE(STRINGS "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H REGEX "^#define ZLIB_VERSION \"[^\"]*\"$")
|
---|
| 71 |
|
---|
| 72 | STRING(REGEX REPLACE "^.*ZLIB_VERSION \"([0-9]+).*$" "\\1" ZLIB_VERSION_MAJOR "${ZLIB_H}")
|
---|
| 73 | STRING(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_MINOR "${ZLIB_H}")
|
---|
| 74 | STRING(REGEX REPLACE "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" ZLIB_VERSION_PATCH "${ZLIB_H}")
|
---|
| 75 | SET(ZLIB_VERSION_STRING "${ZLIB_VERSION_MAJOR}.${ZLIB_VERSION_MINOR}.${ZLIB_VERSION_PATCH}")
|
---|
| 76 |
|
---|
| 77 | # only append a TWEAK version if it exists:
|
---|
| 78 | SET(ZLIB_VERSION_TWEAK "")
|
---|
| 79 | IF( "${ZLIB_H}" MATCHES "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
|
---|
| 80 | SET(ZLIB_VERSION_TWEAK "${CMAKE_MATCH_1}")
|
---|
| 81 | SET(ZLIB_VERSION_STRING "${ZLIB_VERSION_STRING}.${ZLIB_VERSION_TWEAK}")
|
---|
| 82 | ENDIF( "${ZLIB_H}" MATCHES "^.*ZLIB_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+).*$")
|
---|
| 83 |
|
---|
| 84 | SET(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}")
|
---|
| 85 | SET(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}")
|
---|
| 86 | SET(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
|
---|
| 87 | ENDIF()
|
---|
| 88 |
|
---|
| 89 | # handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
|
---|
| 90 | # all listed variables are TRUE
|
---|
| 91 | INCLUDE(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
---|
| 92 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR
|
---|
| 93 | VERSION_VAR ZLIB_VERSION_STRING)
|
---|
| 94 |
|
---|
| 95 | IF(ZLIB_FOUND)
|
---|
| 96 | SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
|
---|
| 97 | SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
|
---|
| 98 | ENDIF()
|
---|
| 99 |
|
---|