1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4#[=======================================================================[.rst: 5FindGnuTLS 6---------- 7 8Find the GNU Transport Layer Security library (gnutls) 9 10IMPORTED Targets 11^^^^^^^^^^^^^^^^ 12 13.. versionadded:: 3.16 14 15This module defines :prop_tgt:`IMPORTED` target ``GnuTLS::GnuTLS``, if 16gnutls has been found. 17 18Result Variables 19^^^^^^^^^^^^^^^^ 20 21``GNUTLS_FOUND`` 22 System has gnutls 23``GNUTLS_INCLUDE_DIR`` 24 The gnutls include directory 25``GNUTLS_LIBRARIES`` 26 The libraries needed to use gnutls 27``GNUTLS_DEFINITIONS`` 28 Compiler switches required for using gnutls 29``GNUTLS_VERSION`` 30 version of gnutls. 31#]=======================================================================] 32 33# Note that this doesn't try to find the gnutls-extra package. 34 35 36if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY) 37 # in cache already 38 set(gnutls_FIND_QUIETLY TRUE) 39endif () 40 41if (NOT WIN32) 42 # try using pkg-config to get the directories and then use these values 43 # in the find_path() and find_library() calls 44 # also fills in GNUTLS_DEFINITIONS, although that isn't normally useful 45 find_package(PkgConfig QUIET) 46 PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls) 47 set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER}) 48 set(GNUTLS_VERSION ${PC_GNUTLS_VERSION}) 49 # keep for backward compatibility 50 set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION}) 51endif () 52 53find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h 54 HINTS 55 ${PC_GNUTLS_INCLUDEDIR} 56 ${PC_GNUTLS_INCLUDE_DIRS} 57 ) 58 59find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls 60 HINTS 61 ${PC_GNUTLS_LIBDIR} 62 ${PC_GNUTLS_LIBRARY_DIRS} 63 ) 64 65mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY) 66 67include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) 68FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS 69 REQUIRED_VARS GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR 70 VERSION_VAR GNUTLS_VERSION_STRING) 71 72if(GNUTLS_FOUND) 73 set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY}) 74 set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR}) 75 76 if(NOT TARGET GnuTLS::GnuTLS) 77 add_library(GnuTLS::GnuTLS UNKNOWN IMPORTED) 78 set_target_properties(GnuTLS::GnuTLS PROPERTIES 79 INTERFACE_INCLUDE_DIRECTORIES "${GNUTLS_INCLUDE_DIRS}" 80 INTERFACE_COMPILE_DEFINITIONS "${GNUTLS_DEFINITIONS}" 81 IMPORTED_LINK_INTERFACE_LANGUAGES "C" 82 IMPORTED_LOCATION "${GNUTLS_LIBRARIES}") 83 endif() 84endif() 85