| From 73f6f8ebff678a0847e6b197b574082cc285b528 Mon Sep 17 00:00:00 2001 |
| From: Thomas Klausner <tk@giga.or.at> |
| Date: Sat, 25 Jul 2020 12:03:29 +0200 |
| Subject: [PATCH] Add FindGnuTLS.cmake from 3.17.3. |
| |
| Addresses #199 |
| |
| [Retrieved from: |
| https://github.com/nih-at/libzip/commit/73f6f8ebff678a0847e6b197b574082cc285b528] |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| --- |
| cmake-compat/FindGnuTLS.cmake | 82 +++++++++++++++++++++++++++++++++++ |
| 1 file changed, 82 insertions(+) |
| create mode 100644 cmake-compat/FindGnuTLS.cmake |
| |
| diff --git a/cmake-compat/FindGnuTLS.cmake b/cmake-compat/FindGnuTLS.cmake |
| new file mode 100644 |
| index 00000000..819f0001 |
| --- /dev/null |
| +++ b/cmake-compat/FindGnuTLS.cmake |
| @@ -0,0 +1,82 @@ |
| +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| +# file Copyright.txt or https://cmake.org/licensing for details. |
| + |
| +#[=======================================================================[.rst: |
| +FindGnuTLS |
| +---------- |
| + |
| +Find the GNU Transport Layer Security library (gnutls) |
| + |
| +IMPORTED Targets |
| +^^^^^^^^^^^^^^^^ |
| + |
| +This module defines :prop_tgt:`IMPORTED` target ``GnuTLS::GnuTLS``, if |
| +gnutls has been found. |
| + |
| +Result Variables |
| +^^^^^^^^^^^^^^^^ |
| + |
| +``GNUTLS_FOUND`` |
| + System has gnutls |
| +``GNUTLS_INCLUDE_DIR`` |
| + The gnutls include directory |
| +``GNUTLS_LIBRARIES`` |
| + The libraries needed to use gnutls |
| +``GNUTLS_DEFINITIONS`` |
| + Compiler switches required for using gnutls |
| +``GNUTLS_VERSION`` |
| + version of gnutls. |
| +#]=======================================================================] |
| + |
| +# Note that this doesn't try to find the gnutls-extra package. |
| + |
| + |
| +if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY) |
| + # in cache already |
| + set(gnutls_FIND_QUIETLY TRUE) |
| +endif () |
| + |
| +if (NOT WIN32) |
| + # try using pkg-config to get the directories and then use these values |
| + # in the find_path() and find_library() calls |
| + # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful |
| + find_package(PkgConfig QUIET) |
| + PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) |
| + set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER}) |
| + set(GNUTLS_VERSION ${PC_GNUTLS_VERSION}) |
| + # keep for backward compatibility |
| + set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION}) |
| +endif () |
| + |
| +find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h |
| + HINTS |
| + ${PC_GNUTLS_INCLUDEDIR} |
| + ${PC_GNUTLS_INCLUDE_DIRS} |
| + ) |
| + |
| +find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls |
| + HINTS |
| + ${PC_GNUTLS_LIBDIR} |
| + ${PC_GNUTLS_LIBRARY_DIRS} |
| + ) |
| + |
| +mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY) |
| + |
| +include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
| +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS |
| + REQUIRED_VARS GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR |
| + VERSION_VAR GNUTLS_VERSION_STRING) |
| + |
| +if(GNUTLS_FOUND) |
| + set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY}) |
| + set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR}) |
| + |
| + if(NOT TARGET GnuTLS::GnuTLS) |
| + add_library(GnuTLS::GnuTLS UNKNOWN IMPORTED) |
| + set_target_properties(GnuTLS::GnuTLS PROPERTIES |
| + INTERFACE_INCLUDE_DIRECTORIES "${GNUTLS_INCLUDE_DIRS}" |
| + INTERFACE_COMPILE_DEFINITIONS "${GNUTLS_DEFINITIONS}" |
| + IMPORTED_LINK_INTERFACE_LANGUAGES "C" |
| + IMPORTED_LOCATION "${GNUTLS_LIBRARIES}") |
| + endif() |
| +endif() |