mirror of
https://github.com/ceph/ceph
synced 2024-12-24 20:33:27 +00:00
0de5755531
before this change, we link against libcap without finding it. this works fine as long as libcap-devel or libcap-dev is installed in the system. but if it is not, the source would fail to build due to missing `sys/capability.h`. this is not a great developer experience. in this change, a `Findcap.cmake` is added to find the capability library. which would fail the build at the configure phase. Signed-off-by: Kefu Chai <tchaikov@gmail.com>
36 lines
723 B
CMake
36 lines
723 B
CMake
# Try to find libcap
|
|
#
|
|
find_package(PkgConfig QUIET REQUIRED)
|
|
|
|
pkg_check_modules(PC_cap QUIET cap)
|
|
|
|
find_library(cap_LIBRARY
|
|
NAMES cap
|
|
HINTS
|
|
${PC_cap_LIBDIR}
|
|
${PC_cap_LIBRARY_DIRS})
|
|
|
|
find_path(cap_INCLUDE_DIR
|
|
NAMES sys/capability.h
|
|
HINTS
|
|
${PC_cap_INCLUDEDIR}
|
|
${PC_cap_INCLUDE_DIRS})
|
|
|
|
mark_as_advanced(
|
|
cap_LIBRARY
|
|
cap_INCLUDE_DIR)
|
|
|
|
include (FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args (cap
|
|
REQUIRED_VARS
|
|
cap_LIBRARY
|
|
cap_INCLUDE_DIR)
|
|
|
|
if(cap_FOUND AND NOT TARGET cap::cap)
|
|
add_library(cap::cap UNKNOWN IMPORTED)
|
|
set_target_properties(cap::cap
|
|
PROPERTIES
|
|
IMPORTED_LOCATION ${cap_LIBRARY}
|
|
INTERFACE_INCLUDE_DIRECTORIES ${cap_INCLUDE_DIR})
|
|
endif()
|