mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-20 20:13:05 +02:00
d56e049ea4
This allows the dependencies to be used by multiple parts of the project, e.g. non public unit tests, ovpncli etc. Building ovpncli demostrates this
63 lines
2.2 KiB
CMake
63 lines
2.2 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)
|
|
ELSEIF(MBEDTLS_INCLUDE_DIR AND MBEDTLS_LIBRARY AND NOT MBEDX509_LIBRARY AND NOT MBEDCRYPTO_LIBRARY)
|
|
SET(MBEDTLS_FOUND TRUE)
|
|
SET(HACKY_OVPN_MBEDTLS TRUE)
|
|
ENDIF()
|
|
|
|
IF(MBEDTLS_FOUND)
|
|
IF(HACKY_OVPN_MBEDTLS)
|
|
SET(MBEDTLS_LIBRARIES ${MBEDTLS_LIBRARY})
|
|
ELSE()
|
|
SET(MBEDTLS_LIBRARIES ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY})
|
|
endif()
|
|
|
|
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
|
|
) |