Skip to content

Commit a91eac6

Browse files
committed
User cmake helper for finding LZ4
1 parent 6009389 commit a91eac6

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

cmake/FindLZ4.cmake

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
find_path(LZ4_INCLUDE_DIR
2+
NAMES lz4.h
3+
DOC "lz4 include directory")
4+
mark_as_advanced(LZ4_INCLUDE_DIR)
5+
find_library(LZ4_LIBRARY
6+
NAMES lz4 liblz4
7+
DOC "lz4 library")
8+
mark_as_advanced(LZ4_LIBRARY)
9+
10+
if (LZ4_INCLUDE_DIR)
11+
file(STRINGS "${LZ4_INCLUDE_DIR}/lz4.h" _lz4_version_lines
12+
REGEX "#define[ \t]+LZ4_VERSION_(MAJOR|MINOR|RELEASE)")
13+
string(REGEX REPLACE ".*LZ4_VERSION_MAJOR *\([0-9]*\).*" "\\1" _lz4_version_major "${_lz4_version_lines}")
14+
string(REGEX REPLACE ".*LZ4_VERSION_MINOR *\([0-9]*\).*" "\\1" _lz4_version_minor "${_lz4_version_lines}")
15+
string(REGEX REPLACE ".*LZ4_VERSION_RELEASE *\([0-9]*\).*" "\\1" _lz4_version_release "${_lz4_version_lines}")
16+
set(LZ4_VERSION "${_lz4_version_major}.${_lz4_version_minor}.${_lz4_version_release}")
17+
unset(_lz4_version_major)
18+
unset(_lz4_version_minor)
19+
unset(_lz4_version_release)
20+
unset(_lz4_version_lines)
21+
endif ()
22+
23+
include(FindPackageHandleStandardArgs)
24+
find_package_handle_standard_args(LZ4
25+
REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR
26+
VERSION_VAR LZ4_VERSION)
27+
28+
if (LZ4_FOUND)
29+
set(LZ4_INCLUDE_DIRS "${LZ4_INCLUDE_DIR}")
30+
set(LZ4_LIBRARIES "${LZ4_LIBRARY}")
31+
32+
if (NOT TARGET LZ4::LZ4)
33+
add_library(LZ4::LZ4 UNKNOWN IMPORTED)
34+
set_target_properties(LZ4::LZ4 PROPERTIES
35+
IMPORTED_LOCATION "${LZ4_LIBRARY}"
36+
INTERFACE_INCLUDE_DIRECTORIES "${LZ4_INCLUDE_DIR}")
37+
endif ()
38+
endif ()

cmake/FindOsmium.cmake

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,21 +118,20 @@ if(Osmium_USE_PBF)
118118
find_package(Protozero 1.6.3)
119119

120120
if(Osmium_USE_LZ4)
121-
find_path(LZ4_INCLUDE_DIR NAMES lz4.h REQUIRED)
122-
find_library(LZ4_LIBRARY NAMES lz4 REQUIRED)
121+
find_package(LZ4 REQUIRED)
123122
add_definitions(-DOSMIUM_WITH_LZ4)
124123
endif()
125124

126125
list(APPEND OSMIUM_EXTRA_FIND_VARS ZLIB_FOUND Threads_FOUND PROTOZERO_INCLUDE_DIR)
127126
if(ZLIB_FOUND AND Threads_FOUND AND PROTOZERO_FOUND)
128127
list(APPEND OSMIUM_PBF_LIBRARIES
129128
${ZLIB_LIBRARIES}
130-
${LZ4_LIBRARY}
129+
${LZ4_LIBRARIES}
131130
${CMAKE_THREAD_LIBS_INIT}
132131
)
133132
list(APPEND OSMIUM_INCLUDE_DIRS
134133
${ZLIB_INCLUDE_DIR}
135-
${LZ4_INCLUDE_DIR}
134+
${LZ4_INCLUDE_DIRS}
136135
${PROTOZERO_INCLUDE_DIR}
137136
)
138137
else()

0 commit comments

Comments
 (0)