mirror of https://github.com/getdnsapi/getdns.git
96 lines
2.5 KiB
CMake
96 lines
2.5 KiB
CMake
#[=======================================================================[.rst:
|
|
FindNettle
|
|
----------
|
|
|
|
Find the Nettle library.
|
|
|
|
Imported targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following :prop_tgt:`IMPORTED` targets:
|
|
|
|
``Nettle::Nettle``
|
|
The Nettle library, if found.
|
|
``Nettle::Hogweed``
|
|
The Hogweed library, if found.
|
|
|
|
Result variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module will set the following variables in your project:
|
|
|
|
``Nettle_FOUND``
|
|
If false, do not try to use Nettle.
|
|
``NETTLE_INCLUDE_DIR``
|
|
where to find Nettle headers.
|
|
``NETTLE_LIBRARIES``
|
|
the libraries needed to use Nettle.
|
|
``NETTLE_VERSION``
|
|
the version of the Nettle library found
|
|
|
|
#]=======================================================================]
|
|
|
|
find_path(NETTLE_INCLUDE_DIR nettle/version.h
|
|
HINTS
|
|
"${NETTLE_DIR}"
|
|
"${NETTLE_DIR}/include"
|
|
)
|
|
|
|
find_library(NETTLE_LIBRARY NAMES nettle libnettle
|
|
HINTS
|
|
"${NETTLE_DIR}"
|
|
"${NETTLE_DIR}/lib"
|
|
)
|
|
|
|
find_library(HOGWEED_LIBRARY NAMES hogweed libhogweed
|
|
HINTS
|
|
"${NETTLE_DIR}"
|
|
"${NETTLE_DIR}/lib"
|
|
)
|
|
|
|
set(NETTLE_LIBRARIES "")
|
|
|
|
# May need gmp library on Unix.
|
|
if (UNIX)
|
|
find_library(NETTLE_GMP_LIBRARY gmp)
|
|
|
|
if (NETTLE_GMP_LIBRARY)
|
|
list(APPEND NETTLE_LIBRARIES "${NETTLE_GMP_LIBRARY}")
|
|
endif ()
|
|
endif ()
|
|
|
|
if (NETTLE_INCLUDE_DIR AND NETTLE_LIBRARY AND HOGWEED_LIBRARY)
|
|
if (NOT TARGET Nettle::Nettle)
|
|
add_library(Nettle::Nettle UNKNOWN IMPORTED)
|
|
set_target_properties(Nettle::Nettle PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${NETTLE_INCLUDE_DIR}"
|
|
INTERFACE_LINK_LIBRARIES "${NETTLE_LIBRARIES}"
|
|
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
|
IMPORTED_LOCATION "${NETTLE_LIBRARY}"
|
|
)
|
|
endif ()
|
|
if (NOT TARGET Nettle::Hogweed)
|
|
add_library(Nettle::Hogweed UNKNOWN IMPORTED)
|
|
set_target_properties(Nettle::Hogweed PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${NETTLE_INCLUDE_DIR}"
|
|
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
|
IMPORTED_LOCATION "${HOGWEED_LIBRARY}"
|
|
)
|
|
endif ()
|
|
|
|
if (NOT NETTLE_VERSION AND NETTLE_INCLUDE_DIR)
|
|
file(STRINGS "${NETTLE_INCLUDE_DIR}/nettle/version.h" NETTLE_VER_H REGEX "^#define NETTLE_VERSION_(MAJOR|MINOR) ")
|
|
string(REGEX REPLACE "^.*_MAJOR ([0-9]+).*_MINOR ([0-9]+).*$" "\\1.\\2" NETTLE_VERSION "${NETTLE_VER_H}")
|
|
endif ()
|
|
endif()
|
|
|
|
list(APPEND NETTLE_LIBRARIES "${NETTLE_LIBRARY}" "${HOGWEED_LIBRARY}")
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Nettle
|
|
REQUIRED_VARS NETTLE_LIBRARIES NETTLE_INCLUDE_DIR
|
|
VERSION_VAR NETTLE_VERSION
|
|
)
|
|
|
|
mark_as_advanced(NETTLE_INCLUDE_DIR NETTLE_LIBRARIES NETTLE_LIBRARY HOGWEED_LIBRARY)
|