Differential D9271 Diff 24707 head/devel/kf5-extra-cmake-modules/files/patch-git_add_FindInotify.cmake
Changeset View
Changeset View
Standalone View
Standalone View
head/devel/kf5-extra-cmake-modules/files/patch-git_add_FindInotify.cmake
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
From 8dab9b3f336ba889f9a750676cb7937ac6fc775d Mon Sep 17 00:00:00 2001 | |||||
From: Adriaan de Groot <groot@kde.org> | |||||
Date: Tue, 27 Dec 2016 21:05:50 +0100 | |||||
Subject: [PATCH] Detect inotify. | |||||
Summary: | |||||
On Linux, inotify always exists; all you need is the header file. | |||||
On the BSDs, inotify is provided through a shim to kqueue, which | |||||
must be installed separately. Add a FindInotify to help sort | |||||
that out. | |||||
Based on RB 129316 and RB 129549. | |||||
Test Plan: | |||||
- On FreeBSD, reliably detects presence of libinotify in $LOCALBASE, | |||||
- Needs testing on Linux that it does find the header file. | |||||
Reviewers: apol, tcberner, arrowdodger | |||||
Differential Revision: https://phabricator.kde.org/D3826 | |||||
--- | |||||
find-modules/FindInotify.cmake | 76 ++++++++++++++++++++++++++++++++++++++++++ | |||||
1 file changed, 76 insertions(+) | |||||
create mode 100644 find-modules/FindInotify.cmake | |||||
diff --git a/find-modules/FindInotify.cmake b/find-modules/FindInotify.cmake | |||||
new file mode 100644 | |||||
index 0000000..41ef11f | |||||
--- /dev/null | |||||
+++ find-modules/FindInotify.cmake | |||||
@@ -0,0 +1,76 @@ | |||||
+#.rest: | |||||
+# FindInotify | |||||
+# -------------- | |||||
+# | |||||
+# Try to find inotify on this system. This finds: | |||||
+# - libinotiy on Unix like systems, or | |||||
+# - the kernel's inotify on Linux systems. | |||||
+# | |||||
+# This will define the following variables: | |||||
+# | |||||
+# ``Inotify_FOUND`` | |||||
+# True if inotify is available | |||||
+# ``Inotify_LIBRARIES`` | |||||
+# This has to be passed to target_link_libraries() | |||||
+# ``Inotify_INCLUDE_DIRS`` | |||||
+# This has to be passed to target_include_directories() | |||||
+# | |||||
+# On Linux, the libraries and include directories are empty, | |||||
+# even though Inotify_FOUND may be set to TRUE. This is because | |||||
+# no special includes or libraries are needed. On other systems | |||||
+# these may be needed to use inotify. | |||||
+ | |||||
+#============================================================================= | |||||
+# Copyright 2016 Tobias C. Berner <tcberner@FreeBSD.org> | |||||
+# | |||||
+# Redistribution and use in source and binary forms, with or without | |||||
+# modification, are permitted provided that the following conditions | |||||
+# are met: | |||||
+# | |||||
+# 1. Redistributions of source code must retain the copyright | |||||
+# notice, this list of conditions and the following disclaimer. | |||||
+# 2. Redistributions in binary form must reproduce the copyright | |||||
+# notice, this list of conditions and the following disclaimer in the | |||||
+# documentation and/or other materials provided with the distribution. | |||||
+# | |||||
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |||||
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | |||||
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | |||||
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | |||||
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||||
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||||
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |||||
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
+#============================================================================= | |||||
+ | |||||
+find_path(Inotify_INCLUDE_DIRS sys/inotify.h) | |||||
+ | |||||
+if(Inotify_INCLUDE_DIRS) | |||||
+ # On Linux there is no library to link against, on the BSDs there is. | |||||
+ # On the BSD's, inotify is implemented through a library, libinotify. | |||||
+ if( CMAKE_SYSTEM_NAME MATCHES "Linux") | |||||
+ set(Inotify_FOUND TRUE) | |||||
+ else() | |||||
+ find_library(Inotify_LIBRARIES NAMES inotify) | |||||
+ include(FindPackageHandleStandardArgs) | |||||
+ find_package_handle_standard_args(Inotify | |||||
+ FOUND_VAR | |||||
+ Inotify_FOUND | |||||
+ REQUIRED_VARS | |||||
+ Inotify_LIBRARIES | |||||
+ Inotify_INCLUDE_DIRS | |||||
+ ) | |||||
+ mark_as_advanced(Inotify_LIBRARIES Inotify_INCLUDE_DIRS) | |||||
+ include(FeatureSummary) | |||||
+ set_package_properties(Inotify PROPERTIES | |||||
+ URL "https://github.com/libinotify-kqueue/" | |||||
+ DESCRIPTION "inotify API on the *BSD family of operating systems." | |||||
+ ) | |||||
+ endif() | |||||
+else() | |||||
+ set(Inotify_FOUND FALSE) | |||||
+endif() | |||||
+ | |||||
+mark_as_advanced(Inotify_FOUND) | |||||
-- | |||||
2.9.2 | |||||