File: FindZLIB.cmake

package info (click to toggle)
trustedqsl 2.8.4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 38,156 kB
  • sloc: cpp: 36,377; xml: 7,984; javascript: 6,989; ansic: 634; sh: 149; makefile: 19; python: 18
file content (133 lines) | stat: -rw-r--r-- 4,794 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#Copied from cmake-2.8 because we want to find the static library on Windows

# - Find zlib
# Find the native ZLIB includes and library.
# Once done this will define
#
#  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_VERSION_MAJOR  - The major version of zlib
#  ZLIB_VERSION_MINOR  - The minor version of zlib
#  ZLIB_VERSION_PATCH  - The patch version of zlib
#  ZLIB_VERSION_TWEAK  - The tweak version of zlib
#
# The following variable are provided for backward compatibility
#
#  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.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
#  License text for the above reference.)

FILE(GLOB ZLIB_DIRECTORIES
	"${CMAKE_SOURCE_DIR}/../zlib"
	"${CMAKE_SOURCE_DIR}/../zlib-[0-9].*"
	"C:/zlib"
	"C:/zlib-[0-9].*"
	)
FIND_PATH(ZLIB_INCLUDE_DIR zlib.h
    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]/include"
    ${ZLIB_DIRECTORIES}
)

SET(ZLIB_NAMES_DBG zlibd zlibd1 zlibstaticd)
set(ZLIB_NAMES_REL z zlib zdll zlib1 zlibstatic)

if(WIN32)
  set(ZLIB_NAMES_DBG zlibstaticd ${ZLIB_NAMES_DBG}) #prefer static on windows
  set(ZLIB_NAMES_REL zlibstatic ${ZLIB_NAMES_REL})
else()
  set(ZLIB_NAMES_DBG ${ZLIB_NAMES_DBG} zlibstaticd)
  set(ZLIB_NAMES_REL ${ZLIB_NAMES_REL} zlibstatic)
endif()

FILE(GLOB ZLIB_DIRECTORIES_DBG
	"${CMAKE_SOURCE_DIR}/../zlib/Debug"
	"${CMAKE_SOURCE_DIR}/../zlib/build/Debug"
	"${CMAKE_SOURCE_DIR}/../zlib-[0-9].*/Debug"
	"${CMAKE_SOURCE_DIR}/../zlib-[0-9].*/build/Debug"
	"C:/zlib/Debug"
	"C:/zlib/build/Debug"
	"C:/zlib-[0-9].*/Debug"
	"C:/zlib-[0-9].*/build/Debug"
	)
FIND_LIBRARY(ZLIB_LIBRARY_DBG
    NAMES
        ${ZLIB_NAMES_DBG}
    PATHS
        "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]/lib"
        ${ZLIB_DIRECTORIES_DBG}
)

FILE(GLOB ZLIB_DIRECTORIES_REL
	"${CMAKE_SOURCE_DIR}/../zlib/Release"
	"${CMAKE_SOURCE_DIR}/../zlib/build/Release"
	"${CMAKE_SOURCE_DIR}/../zlib-[0-9].*/Release"
	"${CMAKE_SOURCE_DIR}/../zlib-[0-9].*/build/Release"
	"C:/zlib/Release"
	"C:/zlib/build/Release"
	"C:/zlib-[0-9].*/Release"
	"C:/zlib-[0-9].*/build/Release"
	)
FIND_LIBRARY(ZLIB_LIBRARY_REL
    NAMES
        ${ZLIB_NAMES_REL}
    PATHS
        "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]/lib"
        ${ZLIB_DIRECTORIES_REL}
)

MARK_AS_ADVANCED(ZLIB_LIBRARY_DBG ZLIB_LIBRARY_REL 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:
    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()

# handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if 
# all listed variables are TRUE


INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_INCLUDE_DIR ZLIB_LIBRARY_REL # rel should always be there
                                       VERSION_VAR ZLIB_VERSION_STRING)

IF(ZLIB_FOUND)
    SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
	if(ZLIB_LIBRARY_DBG)
	set(ZLIB_LIBRARIES debug ${ZLIB_LIBRARY_DBG} optimized ${ZLIB_LIBRARY_REL})
	else()
	SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY_REL})
	endif()
ENDIF()