Archive-xattr-Patch
All checks were successful
Source release / source-package (push) Successful in 41s
All checks were successful
Source release / source-package (push) Successful in 41s
This commit is contained in:
58
cmake/modules/FindXAttr.cmake
Normal file
58
cmake/modules/FindXAttr.cmake
Normal file
@@ -0,0 +1,58 @@
|
||||
# - Find Linux extended attribute support
|
||||
#
|
||||
# This module sets:
|
||||
# XATTR_FOUND - true if getxattr/setxattr are available
|
||||
# XATTR_LIBRARIES - libraries needed for xattr functions, if any
|
||||
#
|
||||
# Modern glibc exposes getxattr/setxattr from libc. Older systems may
|
||||
# require libattr, so check libc first and then retry with -lattr.
|
||||
|
||||
include(CheckIncludeFile)
|
||||
include(CheckSymbolExists)
|
||||
|
||||
set(XATTR_FOUND FALSE)
|
||||
set(XATTR_LIBRARIES "")
|
||||
|
||||
check_include_file("sys/xattr.h" XATTR_HAVE_SYS_XATTR_H)
|
||||
|
||||
if(XATTR_HAVE_SYS_XATTR_H)
|
||||
check_symbol_exists(getxattr "sys/types.h;sys/xattr.h" XATTR_HAVE_GETXATTR)
|
||||
check_symbol_exists(setxattr "sys/types.h;sys/xattr.h" XATTR_HAVE_SETXATTR)
|
||||
|
||||
if(XATTR_HAVE_GETXATTR AND XATTR_HAVE_SETXATTR)
|
||||
set(XATTR_FOUND TRUE)
|
||||
else()
|
||||
find_library(XATTR_ATTR_LIBRARY attr)
|
||||
if(XATTR_ATTR_LIBRARY)
|
||||
set(_XATTR_SAVE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
|
||||
set(CMAKE_REQUIRED_LIBRARIES "${XATTR_ATTR_LIBRARY}")
|
||||
check_symbol_exists(getxattr "sys/types.h;sys/xattr.h" XATTR_HAVE_GETXATTR_ATTR)
|
||||
check_symbol_exists(setxattr "sys/types.h;sys/xattr.h" XATTR_HAVE_SETXATTR_ATTR)
|
||||
set(CMAKE_REQUIRED_LIBRARIES "${_XATTR_SAVE_REQUIRED_LIBRARIES}")
|
||||
|
||||
if(XATTR_HAVE_GETXATTR_ATTR AND XATTR_HAVE_SETXATTR_ATTR)
|
||||
set(XATTR_FOUND TRUE)
|
||||
set(XATTR_LIBRARIES "${XATTR_ATTR_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(XATTR_FOUND)
|
||||
if(XATTR_LIBRARIES)
|
||||
message(STATUS "Found XAttr: ${XATTR_LIBRARIES}")
|
||||
else()
|
||||
message(STATUS "Found XAttr: libc")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Could NOT find XAttr")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
XATTR_ATTR_LIBRARY
|
||||
XATTR_HAVE_SYS_XATTR_H
|
||||
XATTR_HAVE_GETXATTR
|
||||
XATTR_HAVE_SETXATTR
|
||||
XATTR_HAVE_GETXATTR_ATTR
|
||||
XATTR_HAVE_SETXATTR_ATTR
|
||||
)
|
||||
Reference in New Issue
Block a user