forked from Mudlet/Mudlet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFindZIP.cmake
129 lines (118 loc) · 2.7 KB
/
FindZIP.cmake
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
# Locate ZIP library
# This module defines
# ZIP_FOUND, if false, do not try to link to ZIP
# ZIP_LIBRARIES
# ZIP_INCLUDE_DIR, where to find zip*.h
FIND_PACKAGE(PkgConfig)
PKG_SEARCH_MODULE(PC_ZIP zip libzip)
FIND_PATH(ZIP_INCLUDE_DIR zip.h
HINTS
${ZIP_DIR}
$ENV{ZIP_DIR}
${PC_ZIP_INCLUDE_DIRS}
PATH_SUFFIXES
include
PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
FIND_LIBRARY(ZIP_LIBRARY_RELEASE
NAMES
zip
zip_s
HINTS
${ZIP_DIR}
$ENV{ZIP_DIR}
${PC_ZIP_LIBRARY_DIRS}
${PC_ZIP_LIBRARY_DIR}
PATH_SUFFIXES
lib64
lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt
)
FIND_LIBRARY(ZIP_LIBRARY_DEBUG
NAMES
zipd
zip_sd
HINTS
${ZIP_DIR}
$ENV{ZIP_DIR}
${PC_ZIP_LIBRARY_DIRS}
${PC_ZIP_LIBRARY_DIR}
PATH_SUFFIXES
lib64
lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt
)
IF(ZIP_LIBRARY_DEBUG AND ZIP_LIBRARY_RELEASE)
SET(ZIP_LIBRARY optimized ${ZIP_LIBRARY_RELEASE} debug ${ZIP_LIBRARY_DEBUG} )
GET_FILENAME_COMPONENT(ZIP_FILENAME ${ZIP_LIBRARY_RELEASE} NAME_WE)
ELSEIF(ZIP_LIBRARY_RELEASE)
SET(ZIP_LIBRARY ${ZIP_LIBRARY_RELEASE} )
GET_FILENAME_COMPONENT(ZIP_FILENAME ${ZIP_LIBRARY_RELEASE} NAME_WE)
ELSEIF(ZIP_LIBRARY_DEBUG)
SET(ZIP_LIBRARY ${ZIP_LIBRARY_DEBUG} )
GET_FILENAME_COMPONENT(ZIP_FILENAME ${ZIP_LIBRARY_DEBUG} NAME_WE)
ENDIF()
IF(PC_ZIP_zip_FOUND)
SET(ZIP_VERSION ${PC_ZIP_zip_VERSION})
ELSEIF(PC_ZIP_libzip_FOUND)
SET(ZIP_VERSION ${PC_ZIP_libzip_VERSION})
ELSE()
SET(ZIP_VERSION ${PC_ZIP_VERSION})
ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set ZIP_FOUND to TRUE if
# all listed variables are TRUE
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZIP
REQUIRED_VARS
ZIP_LIBRARY
ZIP_INCLUDE_DIR
VERSION_VAR
ZIP_VERSION
)
STRING(FIND ${ZIP_FILENAME} zip_s ZIP_STATIC)
MARK_AS_ADVANCED(ZIP_INCLUDE_DIR ZIP_LIBRARY ZIP_LIBRARY_RELEASE ZIP_LIBRARY_DEBUG)
IF(ZIP_FOUND AND NOT TARGET ZIP::ZIP)
IF(ZIP_STATIC EQUAL -1)
ADD_LIBRARY(ZIP::ZIP SHARED IMPORTED)
SET_TARGET_PROPERTIES(ZIP::ZIP PROPERTIES
INTERFACE_COMPILE_DEFINITIONS
ZIP_EXTERN=
IMPORTED_LOCATION
"${ZIP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES
"${ZIP_INCLUDE_DIR}"
)
ELSE()
ADD_LIBRARY(ZIP::ZIP STATIC IMPORTED)
SET_TARGET_PROPERTIES(ZIP::ZIP PROPERTIES
IMPORTED_LOCATION
"${ZIP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES
"${ZIP_INCLUDE_DIR}"
)
ENDIF()
ENDIF()