mirror of
https://github.com/libssh2/libssh2.git
synced 2025-10-27 13:52:22 +03:00
- All files have prominent copyright and SPDX identifier - If not embedded in the file, in the .reuse/dep5 file - All used licenses are in LICENSES/ (not shipped in tarballs) - A new REUSE CI job verify that all files are OK Assisted-by: Viktor Szakats Closes #1084
66 lines
2.5 KiB
CMake
66 lines
2.5 KiB
CMake
# Copyright (C) The libssh2 project and its contributors.
|
||
# SPDX-License-Identifier: BSD-3-Clause
|
||
#
|
||
# - 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()
|
||
message(STATUS " TLS: ${MBEDTLS_LIBRARY}")
|
||
message(STATUS " X509: ${MBEDX509_LIBRARY}")
|
||
message(STATUS " Crypto: ${MBEDCRYPTO_LIBRARY}")
|
||
endif()
|
||
elseif(MBEDTLS_FIND_REQUIRED)
|
||
message(FATAL_ERROR "Could not find mbedTLS")
|
||
endif()
|
||
|
||
mark_as_advanced(
|
||
MBEDTLS_INCLUDE_DIR
|
||
MBEDTLS_LIBRARY_DIR
|
||
MBEDTLS_LIBRARIES
|
||
MBEDTLS_LIBRARY
|
||
MBEDX509_LIBRARY
|
||
MBEDCRYPTO_LIBRARY
|
||
)
|