xref: /OK3568_Linux_fs/buildroot/package/libzip/0001-Add-FindGnuTLS-cmake-from-3-17-3.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1From 73f6f8ebff678a0847e6b197b574082cc285b528 Mon Sep 17 00:00:00 2001
2From: Thomas Klausner <tk@giga.or.at>
3Date: Sat, 25 Jul 2020 12:03:29 +0200
4Subject: [PATCH] Add FindGnuTLS.cmake from 3.17.3.
5
6Addresses #199
7
8[Retrieved from:
9https://github.com/nih-at/libzip/commit/73f6f8ebff678a0847e6b197b574082cc285b528]
10Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
11---
12 cmake-compat/FindGnuTLS.cmake | 82 +++++++++++++++++++++++++++++++++++
13 1 file changed, 82 insertions(+)
14 create mode 100644 cmake-compat/FindGnuTLS.cmake
15
16diff --git a/cmake-compat/FindGnuTLS.cmake b/cmake-compat/FindGnuTLS.cmake
17new file mode 100644
18index 00000000..819f0001
19--- /dev/null
20+++ b/cmake-compat/FindGnuTLS.cmake
21@@ -0,0 +1,82 @@
22+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
23+# file Copyright.txt or https://cmake.org/licensing for details.
24+
25+#[=======================================================================[.rst:
26+FindGnuTLS
27+----------
28+
29+Find the GNU Transport Layer Security library (gnutls)
30+
31+IMPORTED Targets
32+^^^^^^^^^^^^^^^^
33+
34+This module defines :prop_tgt:`IMPORTED` target ``GnuTLS::GnuTLS``, if
35+gnutls has been found.
36+
37+Result Variables
38+^^^^^^^^^^^^^^^^
39+
40+``GNUTLS_FOUND``
41+  System has gnutls
42+``GNUTLS_INCLUDE_DIR``
43+  The gnutls include directory
44+``GNUTLS_LIBRARIES``
45+  The libraries needed to use gnutls
46+``GNUTLS_DEFINITIONS``
47+  Compiler switches required for using gnutls
48+``GNUTLS_VERSION``
49+  version of gnutls.
50+#]=======================================================================]
51+
52+# Note that this doesn't try to find the gnutls-extra package.
53+
54+
55+if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY)
56+  # in cache already
57+  set(gnutls_FIND_QUIETLY TRUE)
58+endif ()
59+
60+if (NOT WIN32)
61+  # try using pkg-config to get the directories and then use these values
62+  # in the find_path() and find_library() calls
63+  # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful
64+  find_package(PkgConfig QUIET)
65+  PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls)
66+  set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER})
67+  set(GNUTLS_VERSION ${PC_GNUTLS_VERSION})
68+  # keep for backward compatibility
69+  set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION})
70+endif ()
71+
72+find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h
73+  HINTS
74+    ${PC_GNUTLS_INCLUDEDIR}
75+    ${PC_GNUTLS_INCLUDE_DIRS}
76+  )
77+
78+find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls
79+  HINTS
80+    ${PC_GNUTLS_LIBDIR}
81+    ${PC_GNUTLS_LIBRARY_DIRS}
82+  )
83+
84+mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)
85+
86+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
87+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS
88+                                  REQUIRED_VARS GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR
89+                                  VERSION_VAR GNUTLS_VERSION_STRING)
90+
91+if(GNUTLS_FOUND)
92+  set(GNUTLS_LIBRARIES    ${GNUTLS_LIBRARY})
93+  set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR})
94+
95+  if(NOT TARGET GnuTLS::GnuTLS)
96+    add_library(GnuTLS::GnuTLS UNKNOWN IMPORTED)
97+    set_target_properties(GnuTLS::GnuTLS PROPERTIES
98+      INTERFACE_INCLUDE_DIRECTORIES "${GNUTLS_INCLUDE_DIRS}"
99+      INTERFACE_COMPILE_DEFINITIONS "${GNUTLS_DEFINITIONS}"
100+      IMPORTED_LINK_INTERFACE_LANGUAGES "C"
101+      IMPORTED_LOCATION "${GNUTLS_LIBRARIES}")
102+  endif()
103+endif()
104