summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindCAP.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindCAP.cmake')
-rw-r--r--cmake/modules/FindCAP.cmake44
1 files changed, 44 insertions, 0 deletions
diff --git a/cmake/modules/FindCAP.cmake b/cmake/modules/FindCAP.cmake
new file mode 100644
index 0000000..04e8378
--- /dev/null
+++ b/cmake/modules/FindCAP.cmake
@@ -0,0 +1,44 @@
1#.rst:
2# FindCAP
3# -----------
4# Finds the POSIX 1003.1e capabilities library
5#
6# This will define the following variables::
7#
8# CAP_FOUND - system has LibCap
9# CAP_INCLUDE_DIRS - the LibCap include directory
10# CAP_LIBRARIES - the LibCap libraries
11#
12# and the following imported targets::
13#
14# CAP::CAP - The LibCap library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_CAP libcap QUIET)
18endif()
19
20find_path(CAP_INCLUDE_DIR NAMES sys/capability.h
21 PATHS ${PC_CAP_INCLUDEDIR})
22find_library(CAP_LIBRARY NAMES cap libcap
23 PATHS ${PC_CAP_LIBDIR})
24
25set(CAP_VERSION ${PC_CAP_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(CAP
29 REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR
30 VERSION_VAR CAP_VERSION)
31
32if(CAP_FOUND)
33 set(CAP_LIBRARIES ${CAP_LIBRARY})
34 set(CAP_INCLUDE_DIRS ${CAP_INCLUDE_DIR})
35
36 if(NOT TARGET CAP::CAP)
37 add_library(CAP::CAP UNKNOWN IMPORTED)
38 set_target_properties(CAP::CAP PROPERTIES
39 IMPORTED_LOCATION "${CAP_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${CAP_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(CAP_INCLUDE_DIR CAP_LIBRARY)