mbedtls: Add mbedTLS support to CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 933ed63..123bea7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,6 +72,7 @@
option(LWS_USE_BORINGSSL "Use BoringSSL replacement for OpenSSL" OFF)
option(LWS_USE_CYASSL "Use CyaSSL replacement for OpenSSL. When setting this, you also need to specify LWS_CYASSL_LIBRARIES and LWS_CYASSL_INCLUDE_DIRS" OFF)
option(LWS_USE_WOLFSSL "Use wolfSSL replacement for OpenSSL. When setting this, you also need to specify LWS_WOLFSSL_LIBRARIES and LWS_WOLFSSL_INCLUDE_DIRS" OFF)
+option(LWS_USE_MBEDTLS "Use mbedTLS (>=2.0) replacement for OpenSSL. When setting this, you also need to specify LWS_MBEDTLS_LIBRARIES and LWS_MBEDTLS_INCLUDE_DIRS" OFF)
option(LWS_WITH_ZLIB "Include zlib support (required for extensions)" ON)
option(LWS_WITH_LIBEV "Compile with support for libev" OFF)
option(LWS_WITH_LIBUV "Compile with support for libuv" OFF)
@@ -249,7 +250,7 @@
set(LWS_WITHOUT_BUILTIN_SHA1 OFF)
endif()
-if (LWS_WITH_SSL AND NOT LWS_USE_WOLFSSL)
+if (LWS_WITH_SSL AND NOT LWS_USE_WOLFSSL AND NOT LWS_USE_MBEDTLS)
if ("${LWS_OPENSSL_LIBRARIES}" STREQUAL "" OR "${LWS_OPENSSL_INCLUDE_DIRS}" STREQUAL "")
else()
if (NOT LWS_WITH_ESP32)
@@ -280,6 +281,19 @@
endif()
endif()
+if (LWS_WITH_SSL AND LWS_USE_MBEDTLS)
+ if ("${LWS_MBEDTLS_LIBRARIES}" STREQUAL "" OR "${LWS_MBEDTLS_INCLUDE_DIRS}" STREQUAL "")
+ if (NOT MBEDTLS_FOUND)
+ message(FATAL_ERROR "You must set LWS_MBEDTLS_LIBRARIES and LWS_MBEDTLS_INCLUDE_DIRS when LWS_USE_MBEDTLS is turned on.")
+ endif()
+ else()
+ set(MBEDTLS_LIBRARIES ${LWS_MBEDTLS_LIBRARIES})
+ set(MBEDTLS_INCLUDE_DIRS ${LWS_MBEDTLS_INCLUDE_DIRS})
+ set(MBEDTLS_FOUND 1)
+ endif()
+ set(USE_MBEDTLS 1)
+endif()
+
if (LWS_WITH_ZLIB AND NOT LWS_USE_BUNDLED_ZLIB)
if ("${LWS_ZLIB_LIBRARIES}" STREQUAL "" OR "${LWS_ZLIB_INCLUDE_DIRS}" STREQUAL "")
else()
@@ -922,6 +936,18 @@
set(chose_ssl 1)
endif()
+ if (LWS_USE_MBEDTLS)
+ message("MBEDTLS include dir: ${MBEDTLS_INCLUDE_DIRS}")
+ message("MBEDTLS libraries: ${MBEDTLS_LIBRARIES}")
+
+ foreach(inc ${MBEDTLS_INCLUDE_DIRS})
+ include_directories("${inc}" "${inc}/mbedtls")
+ endforeach()
+
+ list(APPEND LIB_LIST "${MBEDTLS_LIBRARIES}")
+ set(chose_ssl 1)
+ endif()
+
if (NOT chose_ssl)
if (NOT OPENSSL_FOUND AND NOT LWS_USE_BORINGSSL)
# TODO: Add support for STATIC also.
@@ -1063,7 +1089,7 @@
# Generate self-signed SSL certs for the test-server.
-if (LWS_WITH_SSL AND NOT LWS_USE_WOLFSSL)
+if (LWS_WITH_SSL AND NOT LWS_USE_WOLFSSL AND NOT LWS_USE_MBEDTLS)
message("Searching for OpenSSL executable and dlls")
find_package(OpenSSLbins)
message("OpenSSL executable: ${OPENSSL_EXECUTABLE}")
@@ -1767,6 +1793,7 @@
message(" LWS_WOLFSSL_LIBRARIES = ${LWS_WOLFSSL_LIBRARIES}")
message(" LWS_WOLFSSL_INCLUDE_DIRS = ${LWS_WOLFSSL_INCLUDE_DIRS}")
endif()
+message(" LWS_USE_MBEDTLS = ${LWS_USE_MBEDTLS} (mbedTLS replacement for OpenSSL)")
message(" LWS_WITHOUT_BUILTIN_SHA1 = ${LWS_WITHOUT_BUILTIN_SHA1}")
message(" LWS_WITHOUT_BUILTIN_GETIFADDRS = ${LWS_WITHOUT_BUILTIN_GETIFADDRS}")
message(" LWS_WITHOUT_CLIENT = ${LWS_WITHOUT_CLIENT}")