cmake/Modules/FindGnuTLS.cmake

85 lines
2.4 KiB
CMake
Raw Normal View History

2016-10-30 18:24:19 +01:00
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
2019-11-11 23:01:05 +01:00
#[=======================================================================[.rst:
FindGnuTLS
----------
Find the GNU Transport Layer Security library (gnutls)
2020-02-01 23:06:01 +01:00
IMPORTED Targets
^^^^^^^^^^^^^^^^
2021-09-14 00:13:48 +02:00
.. versionadded:: 3.16
2020-02-01 23:06:01 +01:00
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.
2019-11-11 23:01:05 +01:00
#]=======================================================================]
2009-10-04 10:30:41 +03:00
# Note that this doesn't try to find the gnutls-extra package.
2013-03-16 19:13:01 +02:00
if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARY)
2019-11-11 23:01:05 +01:00
# in cache already
set(gnutls_FIND_QUIETLY TRUE)
2013-03-16 19:13:01 +02:00
endif ()
2009-10-04 10:30:41 +03:00
2013-03-16 19:13:01 +02:00
if (NOT WIN32)
2019-11-11 23:01:05 +01:00
# 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})
2020-02-01 23:06:01 +01:00
set(GNUTLS_VERSION ${PC_GNUTLS_VERSION})
# keep for backward compatibility
2019-11-11 23:01:05 +01:00
set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION})
2013-03-16 19:13:01 +02:00
endif ()
2009-10-04 10:30:41 +03:00
2013-03-16 19:13:01 +02:00
find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h
2019-11-11 23:01:05 +01:00
HINTS
${PC_GNUTLS_INCLUDEDIR}
${PC_GNUTLS_INCLUDE_DIRS}
)
2009-10-04 10:30:41 +03:00
2013-03-16 19:13:01 +02:00
find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls
2019-11-11 23:01:05 +01:00
HINTS
${PC_GNUTLS_LIBDIR}
${PC_GNUTLS_LIBRARY_DIRS}
)
2009-10-04 10:30:41 +03:00
2013-03-16 19:13:01 +02:00
mark_as_advanced(GNUTLS_INCLUDE_DIR GNUTLS_LIBRARY)
2009-10-11 10:55:36 +03:00
2013-03-16 19:13:01 +02:00
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
2012-04-19 19:04:21 +03:00
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GnuTLS
REQUIRED_VARS GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR
VERSION_VAR GNUTLS_VERSION_STRING)
2009-10-04 10:30:41 +03:00
2013-03-16 19:13:01 +02:00
if(GNUTLS_FOUND)
2019-11-11 23:01:05 +01:00
set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARY})
set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR})
2020-02-01 23:06:01 +01:00
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()
2013-03-16 19:13:01 +02:00
endif()