diff options
Diffstat (limited to 'project')
-rw-r--r-- | project/cmake/CMakeLists.txt | 2 | ||||
-rw-r--r-- | project/cmake/modules/FindCAP.cmake | 44 |
2 files changed, 45 insertions, 1 deletions
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt index 5e19343d8e..46df299e46 100644 --- a/project/cmake/CMakeLists.txt +++ b/project/cmake/CMakeLists.txt @@ -118,7 +118,7 @@ endif() # Optional dependencies set(optional_deps MicroHttpd MySqlClient SSH XSLT Alsa UDEV DBus Avahi SmbClient - PulseAudio VDPAU VAAPI Bluetooth) + PulseAudio VDPAU VAAPI Bluetooth CAP) # Required, dyloaded deps set(required_dyload Curl ASS) diff --git a/project/cmake/modules/FindCAP.cmake b/project/cmake/modules/FindCAP.cmake new file mode 100644 index 0000000000..04e8378ea4 --- /dev/null +++ b/project/cmake/modules/FindCAP.cmake @@ -0,0 +1,44 @@ +#.rst: +# FindCAP +# ----------- +# Finds the POSIX 1003.1e capabilities library +# +# This will define the following variables:: +# +# CAP_FOUND - system has LibCap +# CAP_INCLUDE_DIRS - the LibCap include directory +# CAP_LIBRARIES - the LibCap libraries +# +# and the following imported targets:: +# +# CAP::CAP - The LibCap library + +if(PKG_CONFIG_FOUND) + pkg_check_modules(PC_CAP libcap QUIET) +endif() + +find_path(CAP_INCLUDE_DIR NAMES sys/capability.h + PATHS ${PC_CAP_INCLUDEDIR}) +find_library(CAP_LIBRARY NAMES cap libcap + PATHS ${PC_CAP_LIBDIR}) + +set(CAP_VERSION ${PC_CAP_VERSION}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CAP + REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR + VERSION_VAR CAP_VERSION) + +if(CAP_FOUND) + set(CAP_LIBRARIES ${CAP_LIBRARY}) + set(CAP_INCLUDE_DIRS ${CAP_INCLUDE_DIR}) + + if(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() +endif() + +mark_as_advanced(CAP_INCLUDE_DIR CAP_LIBRARY) |