| # 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() |