src/CMakeLists.txt: fix static build with a zlib and mbedtls

Static build with a zlib-enabled mbedtls fails on:

[100%] Linking C executable example
/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: /home/buildroot/autobuild/instance-3/output-1/host/arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libmbedtls.a(ssl_tls.c.o): in function `mbedtls_ssl_transform_free.part.24':
ssl_tls.c:(.text+0xbc6): undefined reference to `deflateEnd'

As mbedtls does not provide a pkg-config file, search for zlib and link
with it if necessary

Fixes:
 - http://autobuild.buildroot.org/results/5891d12e90182460cde1ddfa0ca75e9fd55e3dff

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
main
Fabrice Fontaine 2020-12-01 20:39:54 +01:00
parent 92b6cd4d3b
commit 0c2d85450e
1 changed files with 6 additions and 1 deletions

View File

@ -57,6 +57,7 @@ else()
endif() endif()
find_package(WolfSSL) find_package(WolfSSL)
find_package(MbedTLS) find_package(MbedTLS)
find_package(ZLIB)
if(UHTTPD_USE_OPENSSL) if(UHTTPD_USE_OPENSSL)
if (NOT OPENSSL_FOUND) if (NOT OPENSSL_FOUND)
@ -97,7 +98,11 @@ else()
elseif(UHTTPD_USE_MBEDTLS) elseif(UHTTPD_USE_MBEDTLS)
set(SSL_NAME "MbedTLS(PolarSSL)") set(SSL_NAME "MbedTLS(PolarSSL)")
set(SSL_INC ${MBEDTLS_INCLUDE_DIR}) set(SSL_INC ${MBEDTLS_INCLUDE_DIR})
set(SSL_LIB ${MBEDTLS_LIBRARIES}) if(ZLIB_FOUND)
set(SSL_LIB ${MBEDTLS_LIBRARIES} ${ZLIB_LIBRARIES})
else()
set(SSL_LIB ${MBEDTLS_LIBRARIES})
endif()
set(UHTTPD_HAVE_MBEDTLS_CONFIG 1) set(UHTTPD_HAVE_MBEDTLS_CONFIG 1)
endif() endif()