1 # This module can find FUSE Library
3 # The following variables will be defined for your use:
4 # - FUSE_FOUND : was FUSE found?
5 # - FUSE_INCLUDE_DIRS : FUSE include directory
6 # - FUSE_LIBRARIES : FUSE library
7 # - FUSE_VERSION : the version of the FUSE library found
9 if(PACKAGE_FIND_VERSION AND PACKAGE_FIND_VERSION VERSION_LESS "3.0")
11 set(fuse_suffixes fuse)
13 set(fuse_names fuse3 fuse)
14 set(fuse_suffixes fuse3 fuse)
18 list(APPEND fuse_names libosxfuse.dylib)
19 list(APPEND fuse_suffixes osxfuse)
22 find_package(PkgConfig QUIET)
24 pkg_search_module(PKG_FUSE QUIET ${fuse_names})
26 string(REGEX REPLACE "([0-9]+)\.([0-9]+)\.([0-9]+)"
27 "\\1" FUSE_MAJOR_VERSION "${PKG_FUSE_VERSION}")
28 string(REGEX REPLACE "([0-9]+)\.([0-9]+)\.([0-9]+)"
29 "\\2" FUSE_MINOR_VERSION "${PKG_FUSE_VERSION}")
33 NAMES fuse_common.h fuse_lowlevel.h fuse.h
34 HINTS ${PKG_FUSE_INCLUDE_DIRS}
35 PATH_SUFFIXES ${fuse_suffixes}
38 find_library(FUSE_LIBRARIES
40 HINTS ${PKG_FUSE_LIBDIR}
45 NAMES fuse_common.h fuse_lowlevel.h fuse.h
46 PATH_SUFFIXES ${fuse_suffixes})
48 find_library(FUSE_LIBRARIES
50 PATHS /usr/local/lib64 /usr/local/lib)
52 foreach(ver "MAJOR" "MINOR")
53 file(STRINGS "${FUSE_INCLUDE_DIR}/fuse_common.h" fuse_ver_${ver}_line
54 REGEX "^#define[\t ]+FUSE_${ver}_VERSION[\t ]+[0-9]+$")
55 string(REGEX REPLACE ".*#define[\t ]+FUSE_${ver}_VERSION[\t ]+([0-9]+)$"
56 "\\1" FUSE_${ver}_VERSION "${fuse_ver_${ver}_line}")
61 "${FUSE_MAJOR_VERSION}.${FUSE_MINOR_VERSION}")
63 include(FindPackageHandleStandardArgs)
64 find_package_handle_standard_args(FUSE
65 REQUIRED_VARS FUSE_LIBRARIES FUSE_INCLUDE_DIR
66 VERSION_VAR FUSE_VERSION)
72 set(FUSE_INCLUDE_DIRS ${FUSE_INCLUDE_DIR})
73 if(NOT TARGET FUSE::FUSE)
74 add_library(FUSE::FUSE UNKNOWN IMPORTED)
75 set_target_properties(FUSE::FUSE PROPERTIES
76 INTERFACE_INCLUDE_DIRECTORIES "${FUSE_INCLUDE_DIRS}"
77 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
78 IMPORTED_LOCATION "${FUSE_LIBRARIES}"
79 VERSION "${FUSE_VERSION}")