70 lines
2.9 KiB
CMake
70 lines
2.9 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
|
|
|
|
# Copyright (c) 2004-2007 Sara Golemon <sarag@libssh2.org>
|
|
# Copyright (c) 2005,2006 Mikhail Gusarov <dottedmag@dottedmag.net>
|
|
# Copyright (c) 2006-2007 The Written Word, Inc.
|
|
# Copyright (c) 2007 Eli Fant <elifantu@mail.ru>
|
|
# Copyright (c) 2009-2019 Daniel Stenberg
|
|
# Copyright (C) 2008, 2009 Simon Josefsson
|
|
# All rights reserved.
|
|
|
|
|
|
FIND_PATH(MBEDTLS_INCLUDE_DIR mbedtls/version.h)
|
|
|
|
SET(MBEDTLS_FIND_QUIETLY TRUE)
|
|
|
|
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
|
|
) |