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