|
1 | 1 | # - Find LZ4 (lz4.h, liblz4.a, liblz4.so, and liblz4.so.1)
|
2 |
| -# This module defines |
3 |
| -# Lz4_INCLUDE_DIR, directory containing headers |
4 |
| -# Lz4_LIBRARY_DIR, directory containing lz4 libraries |
5 |
| -# Lz4_SHARED_LIB, path to liblz4.so/liblz4.dll |
6 |
| -# Lz4_STATIC_LIB, path to liblz4.lib |
7 |
| -# Lz4_FOUND, whether lz4 has been found |
8 | 2 |
|
9 |
| -if ("${LZ4_ROOT}" STREQUAL "") |
10 |
| - set(LZ4_ROOT "$ENV{LZ4_ROOT}") |
11 |
| - if (NOT "${LZ4_ROOT}" STREQUAL "") |
12 |
| - string(REPLACE "\"" "" LZ4_ROOT ${LZ4_ROOT}) |
13 |
| - endif () |
14 |
| -endif () |
| 3 | +# |
| 4 | +# This module defines: |
| 5 | +# LZ4_FOUND |
| 6 | +# LZ4_INCLUDE_DIR |
| 7 | +# LZ4_LIBRARY |
| 8 | +# |
15 | 9 |
|
16 |
| -if (NOT "${LZ4_ROOT}" STREQUAL "") |
17 |
| - set(LZ4_SEARCH_HEADER_PATHS |
18 |
| - ${LZ4_ROOT} |
19 |
| - ${LZ4_ROOT}/include |
20 |
| - ${LZ4_ROOT}/include/lz4 |
21 |
| - ${LZ4_ROOT}/include |
22 |
| - ${LZ4_ROOT}/lib |
23 |
| - ) |
| 10 | +find_path(LZ4_INCLUDE_DIR NAMES lz4.h) |
24 | 11 |
|
25 |
| - set(LZ4_SEARCH_LIB_PATHS |
26 |
| - ${LZ4_ROOT} |
27 |
| - ${LZ4_ROOT}/lib |
28 |
| - ) |
| 12 | +find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) |
| 13 | +find_library(LZ4_LIBRARY_RELEASE NAMES lz4) |
29 | 14 |
|
30 |
| - set(LZ4_SEARCH_SRC_PATHS |
31 |
| - ${LZ4_ROOT} |
32 |
| - ${LZ4_ROOT}/lib |
33 |
| - ${LZ4_ROOT}/src |
34 |
| - ${LZ4_ROOT}/src/lz4 |
35 |
| - ${LZ4_ROOT}/src/lz4/lib |
36 |
| - ) |
37 |
| -elseif (NOT MSVC) |
38 |
| - set(LZ4_SEARCH_HEADER_PATHS |
39 |
| - "/usr/include" |
40 |
| - "/usr/include/lz4" |
41 |
| - "/usr/include/x86_64-linux-gnu" |
42 |
| - "/usr/include/x86_64-linux-gnu/lz4" |
43 |
| - ) |
44 |
| - |
45 |
| - set(LZ4_SEARCH_LIB_PATHS |
46 |
| - "/lib" |
47 |
| - "/lib/x86_64-linux-gnu" |
48 |
| - "/usr/lib" |
49 |
| - "/usr/lib/x86_64-linux-gnu" |
50 |
| - ) |
51 |
| - |
52 |
| - set(LZ4_SEARCH_SRC_PATHS |
53 |
| - "/usr/src" |
54 |
| - "/usr/src/lz4" |
55 |
| - "/usr/src/lz4/lib" |
56 |
| - ) |
57 |
| -endif () |
58 |
| - |
59 |
| -find_path(Lz4_INCLUDE_DIR |
60 |
| - lz4.h |
61 |
| - PATHS ${LZ4_SEARCH_HEADER_PATHS} |
62 |
| - NO_DEFAULT_PATH # make sure we don't accidentally pick up a different version |
63 |
| - ) |
64 |
| - |
65 |
| -find_path(Lz4_SRC_DIR_LZ4 |
66 |
| - lz4.c |
67 |
| - PATHS ${LZ4_SEARCH_SRC_PATHS} |
68 |
| - NO_DEFAULT_PATH # make sure we don't accidentally pick up a different version |
69 |
| - ) |
70 |
| - |
71 |
| -if (Lz4_SRC_DIR_LZ4) |
72 |
| - get_filename_component(Lz4_SRC_DIR_PARENT ${Lz4_SRC_DIR_LZ4} DIRECTORY) |
73 |
| - |
74 |
| - set(LZ4_CMAKE_PATH "") |
75 |
| - |
76 |
| - if (IS_DIRECTORY "${Lz4_SRC_DIR_PARENT}/build/cmake") |
77 |
| - if (EXISTS "${Lz4_SRC_DIR_PARENT}/build/cmake/CMakeLists.txt") # Location of CMakeLists.txt is changed since 1.9.3 |
78 |
| - set(LZ4_CMAKE_PATH ${Lz4_SRC_DIR_PARENT}/build/cmake) |
79 |
| - endif () |
80 |
| - elseif (IS_DIRECTORY "${Lz4_SRC_DIR_PARENT}/contrib/cmake_unofficial") |
81 |
| - if (EXISTS "${Lz4_SRC_DIR_PARENT}/contrib/cmake_unofficial/CMakeLists.txt") # Location of CMakeLists.txt before 1.9.3 |
82 |
| - set(LZ4_CMAKE_PATH ${Lz4_SRC_DIR_PARENT}/contrib/cmake_unofficial) |
83 |
| - endif () |
84 |
| - endif () |
85 |
| - |
86 |
| - if ("${LZ4_CMAKE_PATH}" STREQUAL "") |
87 |
| - message(FATAL_ERROR "Can't find CMakeLists.txt for LZ4") |
88 |
| - endif () |
89 |
| - |
90 |
| - find_path(Lz4_SRC_DIR_CMAKE |
91 |
| - CMakeLists.txt |
92 |
| - PATHS ${Lz4_SRC_DIR_LZ4} ${LZ4_CMAKE_PATH} |
93 |
| - NO_DEFAULT_PATH # make sure we don't accidentally pick up a different version |
94 |
| - ) |
95 |
| -endif () |
96 |
| - |
97 |
| -# found the cmake enabled source directory |
98 |
| -if (Lz4_INCLUDE_DIR AND Lz4_SRC_DIR_LZ4 AND Lz4_SRC_DIR_CMAKE) |
99 |
| - set(Lz4_FOUND TRUE) |
100 |
| - |
101 |
| - # for lz4_shared must set LZ4_BUNDLED_MODE=OFF + BUILD_STATIC_LIBS=ON CACHE FORCE |
102 |
| - # for lz4_static must set BUILD_SHARED_LIBS=ON CACHE FORCE |
103 |
| - set(LZ4_BUNDLED_MODE OFF) # enable lz4_shared |
104 |
| - set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) # enable lz4_static |
105 |
| - set(BUILD_STATIC_LIBS ON CACHE BOOL "" FORCE) # enable lz4_shared |
106 |
| - set(LZ4_POSITION_INDEPENDENT_LIB ON) |
107 |
| - add_subdirectory( |
108 |
| - ${Lz4_SRC_DIR_CMAKE} |
109 |
| - ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/iresearch-lz4.dir |
110 |
| - EXCLUDE_FROM_ALL # do not build unused targets |
111 |
| - ) |
112 |
| - |
113 |
| - set(Lz4_LIBRARY_DIR ${LZ4_SEARCH_LIB_PATHS}) |
114 |
| - set(Lz4_SHARED_LIB lz4_shared) |
115 |
| - set(Lz4_STATIC_LIB lz4_static) |
116 |
| - |
117 |
| - return() |
118 |
| -endif () |
119 |
| - |
120 |
| -include(utils) |
121 |
| - |
122 |
| -# set options for: shared |
123 |
| -if (MSVC) |
124 |
| - set(LZ4_LIBRARY_PREFIX "") |
125 |
| - set(LZ4_LIBRARY_SUFFIX ".lib") |
126 |
| -elseif (APPLE) |
127 |
| - set(LZ4_LIBRARY_PREFIX "lib") |
128 |
| - set(LZ4_LIBRARY_SUFFIX ".dylib") |
129 |
| -else () |
130 |
| - set(LZ4_LIBRARY_PREFIX "lib") |
131 |
| - set(LZ4_LIBRARY_SUFFIX ".so") |
132 |
| -endif () |
133 |
| -set_find_library_options("${LZ4_LIBRARY_PREFIX}" "${LZ4_LIBRARY_SUFFIX}") |
134 |
| - |
135 |
| -# find library |
136 |
| -find_library(Lz4_SHARED_LIB |
137 |
| - NAMES lz4 |
138 |
| - PATHS ${LZ4_SEARCH_LIB_PATHS} |
139 |
| - NO_DEFAULT_PATH |
140 |
| - ) |
141 |
| - |
142 |
| -# restore initial options |
143 |
| -restore_find_library_options() |
144 |
| - |
145 |
| - |
146 |
| -# set options for: static |
147 |
| -if (MSVC) |
148 |
| - set(LZ4_LIBRARY_PREFIX "") |
149 |
| - set(LZ4_LIBRARY_SUFFIX ".lib") |
150 |
| -else () |
151 |
| - set(LZ4_LIBRARY_PREFIX "lib") |
152 |
| - set(LZ4_LIBRARY_SUFFIX ".a") |
153 |
| -endif () |
154 |
| -set_find_library_options("${LZ4_LIBRARY_PREFIX}" "${LZ4_LIBRARY_SUFFIX}") |
155 |
| - |
156 |
| -# find library |
157 |
| -find_library(Lz4_STATIC_LIB |
158 |
| - NAMES lz4 |
159 |
| - PATHS ${LZ4_SEARCH_LIB_PATHS} |
160 |
| - NO_DEFAULT_PATH |
161 |
| - ) |
162 |
| - |
163 |
| -# restore initial options |
164 |
| -restore_find_library_options() |
165 |
| - |
166 |
| - |
167 |
| -if (Lz4_INCLUDE_DIR AND Lz4_SHARED_LIB AND Lz4_STATIC_LIB) |
168 |
| - set(Lz4_FOUND TRUE) |
169 |
| - set(Lz4_LIBRARY_DIR |
170 |
| - "${LZ4_SEARCH_LIB_PATHS}" |
171 |
| - CACHE PATH |
172 |
| - "Directory containing lz4 libraries" |
173 |
| - FORCE |
174 |
| - ) |
175 |
| - |
176 |
| - add_library(lz4_shared IMPORTED SHARED) |
177 |
| - set_target_properties(lz4_shared PROPERTIES |
178 |
| - INTERFACE_INCLUDE_DIRECTORIES "${Lz4_INCLUDE_DIR}" |
179 |
| - IMPORTED_LOCATION "${Lz4_SHARED_LIB}" |
180 |
| - ) |
181 |
| - |
182 |
| - add_library(lz4_static IMPORTED STATIC) |
183 |
| - set_target_properties(lz4_static PROPERTIES |
184 |
| - INTERFACE_INCLUDE_DIRECTORIES "${Lz4_INCLUDE_DIR}" |
185 |
| - IMPORTED_LOCATION "${Lz4_STATIC_LIB}" |
186 |
| - ) |
187 |
| -else () |
188 |
| - set(Lz4_FOUND FALSE) |
189 |
| -endif () |
| 15 | +include(SelectLibraryConfigurations) |
| 16 | +SELECT_LIBRARY_CONFIGURATIONS(LZ4) |
190 | 17 |
|
191 | 18 | include(FindPackageHandleStandardArgs)
|
192 |
| -find_package_handle_standard_args(Lz4 |
193 |
| - DEFAULT_MSG |
194 |
| - Lz4_INCLUDE_DIR |
195 |
| - Lz4_SHARED_LIB |
196 |
| - Lz4_STATIC_LIB |
197 |
| - ) |
198 |
| -message("Lz4_INCLUDE_DIR: " ${Lz4_INCLUDE_DIR}) |
199 |
| -message("Lz4_LIBRARY_DIR: " ${Lz4_LIBRARY_DIR}) |
200 |
| -message("Lz4_SHARED_LIB: " ${Lz4_SHARED_LIB}) |
201 |
| -message("Lz4_STATIC_LIB: " ${Lz4_STATIC_LIB}) |
202 |
| - |
203 |
| -mark_as_advanced( |
204 |
| - Lz4_INCLUDE_DIR |
205 |
| - Lz4_LIBRARY_DIR |
206 |
| - Lz4_SHARED_LIB |
207 |
| - Lz4_STATIC_LIB |
| 19 | +FIND_PACKAGE_HANDLE_STANDARD_ARGS( |
| 20 | + LZ4 DEFAULT_MSG |
| 21 | + LZ4_LIBRARY LZ4_INCLUDE_DIR |
208 | 22 | )
|
| 23 | + |
| 24 | +if (LZ4_FOUND) |
| 25 | + message(STATUS "Found LZ4: ${LZ4_LIBRARY}") |
| 26 | +endif() |
| 27 | + |
| 28 | +mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARY) |
0 commit comments