4 # Finds the SMB Client library
6 # This will define the following variables::
8 # SMBCLIENT_FOUND - system has SmbClient
9 # SMBCLIENT_INCLUDE_DIRS - the SmbClient include directory
10 # SMBCLIENT_LIBRARIES - the SmbClient libraries
11 # SMBCLIENT_DEFINITIONS - the SmbClient definitions
13 # and the following imported targets::
15 # SmbClient::SmbClient - The SmbClient library
18 pkg_check_modules(PC_SMBCLIENT smbclient QUIET)
21 find_path(SMBCLIENT_INCLUDE_DIR NAMES libsmbclient.h
22 PATHS ${PC_SMBCLIENT_INCLUDEDIR})
23 find_library(SMBCLIENT_LIBRARY NAMES smbclient
24 PATHS ${PC_SMBCLIENT_LIBDIR})
26 set(SMBCLIENT_VERSION ${PC_SMBCLIENT_VERSION})
28 include(FindPackageHandleStandardArgs)
29 find_package_handle_standard_args(SmbClient
30 REQUIRED_VARS SMBCLIENT_LIBRARY SMBCLIENT_INCLUDE_DIR
31 VERSION_VAR SMBCLIENT_VERSION)
34 set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY})
35 if(${SMBCLIENT_LIBRARY} MATCHES ".+\.a$" AND PC_SMBCLIENT_STATIC_LIBRARIES)
36 list(APPEND SMBCLIENT_LIBRARIES ${PC_SMBCLIENT_STATIC_LIBRARIES})
38 set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR})
39 set(SMBCLIENT_DEFINITIONS -DHAS_FILESYSTEM_SMB=1)
41 if(NOT TARGET SmbClient::SmbClient)
42 add_library(SmbClient::SmbClient UNKNOWN IMPORTED)
43 set_target_properties(SmbClient::SmbClient PROPERTIES
44 IMPORTED_LOCATION "${SMBCLIENT_LIBRARY}"
45 INTERFACE_INCLUDE_DIRECTORIES "${SMBCLIENT_INCLUDE_DIR}"
46 INTERFACE_COMPILE_DEFINITIONS HAS_FILESYSTEM_SMB=1)
50 mark_as_advanced(LIBSMBCLIENT_INCLUDE_DIR LIBSMBCLIENT_LIBRARY)