FindLZMA.cmake
Go to the documentation of this file.
1 find_path(LZMA_INCLUDE_DIR
2  NAMES lzma.h
3  DOC "lzma include directory")
4 find_library(LZMA_LIBRARY
5  NAMES lzma
6  DOC "lzma library")
7 
8 if (LZMA_INCLUDE_DIR)
9  file(STRINGS "${LZMA_INCLUDE_DIR}/lzma/version.h" _lzma_version_lines
10  REGEX "#define[ \t]+LZMA_VERSION_(MAJOR|MINOR|PATCH)")
11  string(REGEX REPLACE ".*LZMA_VERSION_MAJOR *\([0-9]*\).*" "\\1" _lzma_version_major "${_lzma_version_lines}")
12  string(REGEX REPLACE ".*LZMA_VERSION_MINOR *\([0-9]*\).*" "\\1" _lzma_version_minor "${_lzma_version_lines}")
13  string(REGEX REPLACE ".*LZMA_VERSION_PATCH *\([0-9]*\).*" "\\1" _lzma_version_patch "${_lzma_version_lines}")
14  set(LZMA_VERSION "${_lzma_version_major}.${_lzma_version_minor}.${_lzma_version_patch}")
15  unset(_lzma_version_major)
16  unset(_lzma_version_minor)
17  unset(_lzma_version_patch)
18  unset(_lzma_version_lines)
19 endif ()
20 
21 include(FindPackageHandleStandardArgs)
22 find_package_handle_standard_args(LZMA
23  REQUIRED_VARS LZMA_LIBRARY LZMA_INCLUDE_DIR
24  VERSION_VAR LZMA_VERSION)
25 
26 if (LZMA_FOUND)
27  set(LZMA_LIBRARIES "${LZMA_LIBRARY}")
28  set(LZMA_INCLUDE_DIRS "${LZMA_INCLUDE_DIR}")
29 
30  if (NOT TARGET LZMA::LZMA)
31  include(vtkDetectLibraryType)
32  vtk_detect_library_type(lzma_library_type
33  PATH "${LZMA_LIBRARY}")
34  add_library(LZMA::LZMA "${lzma_library_type}" IMPORTED)
35  unset(lzma_library_type)
36  set_target_properties(LZMA::LZMA PROPERTIES
37  IMPORTED_LOCATION "${LZMA_LIBRARY}"
38  IMPORTED_IMPLIB "${LZMA_LIBRARY}"
39  INTERFACE_INCLUDE_DIRECTORIES "${LZMA_INCLUDE_DIR}")
40  endif ()
41 endif ()
string