| # - Find gnutls |
| # Find the native GNUTLS includes and library |
| # |
| # GNUTLS_FOUND - True if gnutls found. |
| # GNUTLS_INCLUDE_DIR - where to find gnutls.h, etc. |
| # GNUTLS_LIBRARIES - List of libraries when using gnutls. |
| # GNUTLS_VERSION_210 - true if GnuTLS version is >= 2.10.0 (does not require additional separate gcrypt initialization) |
| # GNUTLS_VERSION_212 - true if GnuTLS version is >= 2.12.0 (supports gnutls_transport_set_vec_push_function) |
| # GNUTLS_VERSION_300 - true if GnuTLS version is >= 3.00.0 (x509 verification functions changed) |
| # GNUTLS_VERSION_310 - true if GnuTLS version is >= 3.01.0 (stabilization branch with new APIs) |
| |
| if (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARIES) |
| set(GNUTLS_FIND_QUIETLY TRUE) |
| endif (GNUTLS_INCLUDE_DIR AND GNUTLS_LIBRARIES) |
| |
| # Include dir |
| find_path(GNUTLS_INCLUDE_DIR |
| NAMES |
| gnutls.h |
| gnutls/gnutls.h |
| ) |
| |
| # Library |
| find_library(GNUTLS_LIBRARY |
| NAMES gnutls |
| ) |
| |
| # handle the QUIETLY and REQUIRED arguments and set GNUTLS_FOUND to TRUE if |
| # all listed variables are TRUE |
| INCLUDE(FindPackageHandleStandardArgs) |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(GNUTLS DEFAULT_MSG GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR) |
| |
| IF(GNUTLS_FOUND) |
| SET( GNUTLS_LIBRARIES ${GNUTLS_LIBRARY} ) |
| ELSE(GNUTLS_FOUND) |
| SET( GNUTLS_LIBRARIES ) |
| ENDIF(GNUTLS_FOUND) |
| |
| # Lastly make it so that the GNUTLS_LIBRARY and GNUTLS_INCLUDE_DIR variables |
| # only show up under the advanced options in the gui cmake applications. |
| MARK_AS_ADVANCED( GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR ) |
| |
| # Now check if the library is recent. gnutls_hash was added in 2.10.0. |
| # Also test library is even more recent. gnutls_x509_trust_list_verify_crt was added in 3.00.0. |
| IF(GNUTLS_FOUND) |
| IF( NOT( "${GNUTLS_VERSION_TEST_FOR}" STREQUAL "${GNUTLS_LIBRARY}" )) |
| INCLUDE (CheckLibraryExists) |
| MESSAGE(STATUS "Checking GNUTLS version") |
| UNSET(GNUTLS_VERSION_210) |
| UNSET(GNUTLS_VERSION_210 CACHE) |
| UNSET(GNUTLS_VERSION_212) |
| UNSET(GNUTLS_VERSION_212 CACHE) |
| UNSET(GNUTLS_VERSION_300) |
| UNSET(GNUTLS_VERSION_300 CACHE) |
| UNSET(GNUTLS_VERSION_310) |
| UNSET(GNUTLS_VERSION_310 CACHE) |
| GET_FILENAME_COMPONENT(GNUTLS_PATH ${GNUTLS_LIBRARY} PATH) |
| CHECK_LIBRARY_EXISTS(gnutls gnutls_hash ${GNUTLS_PATH} GNUTLS_VERSION_210) |
| CHECK_LIBRARY_EXISTS(gnutls gnutls_transport_set_vec_push_function ${GNUTLS_PATH} GNUTLS_VERSION_212) |
| CHECK_LIBRARY_EXISTS(gnutls gnutls_x509_trust_list_verify_crt ${GNUTLS_PATH} GNUTLS_VERSION_300) |
| CHECK_LIBRARY_EXISTS(gnutls gnutls_handshake_set_timeout ${GNUTLS_PATH} GNUTLS_VERSION_310) |
| SET( GNUTLS_VERSION_TEST_FOR ${GNUTLS_LIBRARY} CACHE INTERNAL "Version the test was made against" ) |
| ENDIF (NOT( "${GNUTLS_VERSION_TEST_FOR}" STREQUAL "${GNUTLS_LIBRARY}" )) |
| ENDIF(GNUTLS_FOUND) |