Skip to content

Commit 001f774

Browse files
authored
Using simple FindLz4.cmake to make it work with linux arm64 (#1120)
### What problem does this PR solve? make it work with linux arm64 when finding lz4 lib ### Type of change - [x] Refactoring
1 parent 789a055 commit 001f774

File tree

1 file changed

+20
-200
lines changed

1 file changed

+20
-200
lines changed

cmake/FindLz4.cmake

+20-200
Original file line numberDiff line numberDiff line change
@@ -1,208 +1,28 @@
11
# - 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
82

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+
#
159

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)
2411

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)
2914

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)
19017

19118
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
20822
)
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

Comments
 (0)