From 7b5bed7d55149e9b5eac9b83a01c4fd06b20cf29 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Mon, 12 Oct 2026 11:23:43 +0200 Subject: [PATCH] CMake: check that the selected TLS and charset libraries were found When a TLS or charset conversion library was explicitly selected but not found, the error only showed up at compile or link time. Fail at configuration time with an explicit message instead, and report the libraries in use. --- CMakeLists.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d42f15c..74cf6814 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -655,6 +655,11 @@ IF(VMIME_HAVE_TLS_SUPPORT) IF(VMIME_TLS_SUPPORT_LIB STREQUAL "gnutls") INCLUDE(FindGnuTLS) + + IF(NOT GNUTLS_FOUND) + MESSAGE(FATAL_ERROR "GnuTLS was selected for TLS support, but it was not found") + ENDIF() + SET(CMAKE_REQUIRED_LIBRARIES "${GNUTLS_LIBRARY}") CHECK_FUNCTION_EXISTS(gnutls_priority_set_direct VMIME_HAVE_GNUTLS_PRIORITY_FUNCS) @@ -685,6 +690,10 @@ IF(VMIME_HAVE_TLS_SUPPORT) INCLUDE(FindOpenSSL) + IF(NOT OPENSSL_FOUND) + MESSAGE(FATAL_ERROR "OpenSSL was selected for TLS support, but it was not found") + ENDIF() + INCLUDE_DIRECTORIES( ${INCLUDE_DIRECTORIES} ${OPENSSL_INCLUDE_DIR} @@ -709,6 +718,8 @@ IF(VMIME_HAVE_TLS_SUPPORT) ENDIF() + MESSAGE(STATUS "TLS support library: ${VMIME_TLS_SUPPORT_LIB}") + ENDIF(VMIME_HAVE_TLS_SUPPORT) @@ -731,6 +742,10 @@ SET_PROPERTY( IF(VMIME_CHARSETCONV_LIB STREQUAL "iconv") + IF(NOT ICONV_FOUND) + MESSAGE(FATAL_ERROR "iconv was selected for charset conversion, but it was not found") + ENDIF() + INCLUDE_DIRECTORIES( ${INCLUDE_DIRECTORIES} ${ICONV_INCLUDE_DIR} @@ -761,6 +776,10 @@ IF(VMIME_CHARSETCONV_LIB STREQUAL "iconv") ELSEIF(VMIME_CHARSETCONV_LIB STREQUAL "icu") + IF(NOT ICU_LIBRARIES) + MESSAGE(FATAL_ERROR "ICU was selected for charset conversion, but it was not found") + ENDIF() + INCLUDE_DIRECTORIES( ${INCLUDE_DIRECTORIES} ${ICU_INCLUDE_DIRS} @@ -805,6 +824,8 @@ ELSE() ENDIF() +MESSAGE(STATUS "Charset conversion library: ${VMIME_CHARSETCONV_LIB}") + ############################################################################## # Platform