summaryrefslogtreecommitdiffstats
path: root/cmake/FindLibcap.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindLibcap.cmake')
-rw-r--r--cmake/FindLibcap.cmake49
1 files changed, 49 insertions, 0 deletions
diff --git a/cmake/FindLibcap.cmake b/cmake/FindLibcap.cmake
new file mode 100644
index 0000000..8529426
--- /dev/null
+++ b/cmake/FindLibcap.cmake
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Copyright (C) 2020 Manuel Bentele <development@manuel-bentele.de>
+#
+
+# Use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+find_package(PkgConfig QUIET)
+pkg_check_modules(PKG_Libcap QUIET libcap)
+
+set(Libcap_COMPILE_OPTIONS ${PKG_Libcap_CFLAGS_OTHER})
+set(Libcap_VERSION ${PKG_Libcap_VERSION})
+
+find_path(Libcap_INCLUDE_DIR
+ NAMES sys/capability.h
+ HINTS ${PKG_Libcap_INCLUDE_DIRS})
+find_library(Libcap_LIBRARY
+ NAMES cap
+ HINTS ${PKG_Libcap_LIBRARY_DIRS})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Libcap
+ FOUND_VAR Libcap_FOUND
+ REQUIRED_VARS Libcap_LIBRARY
+ Libcap_INCLUDE_DIR
+ VERSION_VAR Libcap_VERSION
+ FAIL_MESSAGE "Library 'cap' is not available! Please install this required library!")
+
+if(Libcap_FOUND AND NOT TARGET Libcap::Libcap)
+ add_library(Libcap::Libcap UNKNOWN IMPORTED)
+ set_target_properties(Libcap::Libcap PROPERTIES
+ IMPORTED_LOCATION "${Libcap_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${Libcap_COMPILE_OPTIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${Libcap_INCLUDE_DIR}")
+endif(Libcap_FOUND AND NOT TARGET Libcap::Libcap)
+
+mark_as_advanced(Libcap_LIBRARY Libcap_INCLUDE_DIR)
+
+if(Libcap_FOUND)
+ set(Libcap_LIBRARIES ${Libcap_LIBRARY})
+ set(Libcap_INCLUDE_DIRS ${Libcap_INCLUDE_DIR})
+endif(Libcap_FOUND)
+
+# print found information
+message(VERBOSE "Libcap_FOUND: ${Libcap_FOUND}")
+message(VERBOSE "Libcap_VERSION: ${Libcap_VERSION}")
+message(VERBOSE "Libcap_INCLUDE_DIRS: ${Libcap_INCLUDE_DIRS}")
+message(VERBOSE "Libcap_COMPILE_OPTIONS: ${Libcap_COMPILE_OPTIONS}")
+message(VERBOSE "Libcap_LIBRARIES: ${Libcap_LIBRARIES}")