| # 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 |
| ^^^^^^^^^^^^^^^^ |
| |
| .. versionadded:: 3.16 |
| |
| 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() |