forked from openkylin/libssh2
65 lines
2.6 KiB
CMake
65 lines
2.6 KiB
CMake
# - Try to find mbedTLS
|
||
# Once done this will define
|
||
#
|
||
# Read-Only variables
|
||
# MBEDTLS_FOUND - system has mbedTLS
|
||
# MBEDTLS_INCLUDE_DIR - the mbedTLS include directory
|
||
# MBEDTLS_LIBRARY_DIR - the mbedTLS library directory
|
||
# MBEDTLS_LIBRARIES - Link these to use mbedTLS
|
||
# MBEDTLS_LIBRARY - path to mbedTLS library
|
||
# MBEDX509_LIBRARY - path to mbedTLS X.509 library
|
||
# MBEDCRYPTO_LIBRARY - path to mbedTLS Crypto library
|
||
|
||
FIND_PATH(MBEDTLS_INCLUDE_DIR mbedtls/version.h)
|
||
|
||
IF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARIES)
|
||
# Already in cache, be silent
|
||
SET(MBEDTLS_FIND_QUIETLY TRUE)
|
||
ENDIF()
|
||
|
||
FIND_LIBRARY(MBEDTLS_LIBRARY NAMES mbedtls libmbedtls libmbedx509)
|
||
FIND_LIBRARY(MBEDX509_LIBRARY NAMES mbedx509 libmbedx509)
|
||
FIND_LIBRARY(MBEDCRYPTO_LIBRARY NAMES mbedcrypto libmbedcrypto)
|
||
|
||
IF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND MBEDX509_LIBRARY AND MBEDCRYPTO_LIBRARY)
|
||
SET(MBEDTLS_FOUND TRUE)
|
||
ENDIF()
|
||
|
||
IF(MBEDTLS_FOUND)
|
||
# split mbedTLS into -L and -l linker options, so we can set them for pkg-config
|
||
GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_DIR ${MBEDTLS_LIBRARY} PATH)
|
||
GET_FILENAME_COMPONENT(MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY} NAME_WE)
|
||
GET_FILENAME_COMPONENT(MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY} NAME_WE)
|
||
GET_FILENAME_COMPONENT(MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY} NAME_WE)
|
||
STRING(REGEX REPLACE "^lib" "" MBEDTLS_LIBRARY_FILE ${MBEDTLS_LIBRARY_FILE})
|
||
STRING(REGEX REPLACE "^lib" "" MBEDX509_LIBRARY_FILE ${MBEDX509_LIBRARY_FILE})
|
||
STRING(REGEX REPLACE "^lib" "" MBEDCRYPTO_LIBRARY_FILE ${MBEDCRYPTO_LIBRARY_FILE})
|
||
SET(MBEDTLS_LIBRARIES "-L${MBEDTLS_LIBRARY_DIR} -l${MBEDTLS_LIBRARY_FILE} -l${MBEDX509_LIBRARY_FILE} -l${MBEDCRYPTO_LIBRARY_FILE}")
|
||
|
||
IF(NOT MBEDTLS_FIND_QUIETLY)
|
||
MESSAGE(STATUS "Found mbedTLS:")
|
||
FILE(READ ${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h MBEDTLSCONTENT)
|
||
STRING(REGEX MATCH "MBEDTLS_VERSION_STRING +\"[0-9|.]+\"" MBEDTLSMATCH ${MBEDTLSCONTENT})
|
||
IF (MBEDTLSMATCH)
|
||
STRING(REGEX REPLACE "MBEDTLS_VERSION_STRING +\"([0-9|.]+)\"" "\\1" MBEDTLS_VERSION ${MBEDTLSMATCH})
|
||
MESSAGE(STATUS " version ${MBEDTLS_VERSION}")
|
||
ENDIF(MBEDTLSMATCH)
|
||
MESSAGE(STATUS " TLS: ${MBEDTLS_LIBRARY}")
|
||
MESSAGE(STATUS " X509: ${MBEDX509_LIBRARY}")
|
||
MESSAGE(STATUS " Crypto: ${MBEDCRYPTO_LIBRARY}")
|
||
ENDIF(NOT MBEDTLS_FIND_QUIETLY)
|
||
ELSE(MBEDTLS_FOUND)
|
||
IF(MBEDTLS_FIND_REQUIRED)
|
||
MESSAGE(FATAL_ERROR "Could not find mbedTLS")
|
||
ENDIF(MBEDTLS_FIND_REQUIRED)
|
||
ENDIF(MBEDTLS_FOUND)
|
||
|
||
MARK_AS_ADVANCED(
|
||
MBEDTLS_INCLUDE_DIR
|
||
MBEDTLS_LIBRARY_DIR
|
||
MBEDTLS_LIBRARIES
|
||
MBEDTLS_LIBRARY
|
||
MBEDX509_LIBRARY
|
||
MBEDCRYPTO_LIBRARY
|
||
)
|