Author: brane
Date: Sat Jan 10 13:48:21 2026
New Revision: 1931217

Log:
In the CMake build, show dependency versions in the summary.

* CMakeLists.txt:
   - Expand the summary with dependency version numbers.
   - Detect LibreSSL and annotate that in the summary.
   - The use of Unbound is no longer considered experimental.

Modified:
   serf/trunk/CMakeLists.txt

Modified: serf/trunk/CMakeLists.txt
==============================================================================
--- serf/trunk/CMakeLists.txt   Sat Jan 10 11:25:10 2026        (r1931216)
+++ serf/trunk/CMakeLists.txt   Sat Jan 10 13:48:21 2026        (r1931217)
@@ -262,6 +262,7 @@ if(NOT (OpenSSL_SSL_FOUND AND OpenSSL_Cr
   endif()
 else()
   set(OpenSSL_FOUND TRUE)
+  set(OPENSSL_VERSION ${OPENSSL_SSL_VERSION})
   set(OPENSSL_INCLUDE_DIR ${OPENSSL_SSL_INCLUDE_DIR})
   set(OPENSSL_PC_REQUIRES ${OPENSSL_SSL_PC_REQUIRES} 
${OPENSSL_CRYPTO_PC_REQUIRES})
   set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
@@ -289,6 +290,7 @@ if(USE_BROTLI)
     endif()
   else()
     set(Brotli_FOUND TRUE)
+    set(BROTLI_VERSION ${BROTLI_DECODE_VERSION})
     set(BROTLI_INCLUDE_DIR ${BROTLI_DECODE_INCLUDE_DIR})
     set(BROTLI_PC_REQUIRES ${BROTLI_DECODE_PC_REQUIRES})
   endif()
@@ -635,6 +637,15 @@ endif()
 
 if("SERF_HAVE_BROTLI" IN_LIST SERF_C_DEFINES)
   set(_have_brotli ON)
+  if(NOT SERF_WINDOWS)
+    set(_brotli_version ${BROTLI_VERSION})
+  else()
+    # On Windows, vcpkg doesn't install the 'brotli' binary which we use to
+    # find the version, and it isn't published in the headers. *shrug*
+    if("${BROTLI_VERSION}" STREQUAL "")
+      set(_brotli_version "N/A")
+    endif()
+  endif()
 endif()
 if("SERF_HAVE_GSSAPI" IN_LIST SERF_C_DEFINES)
   set(_have_gssapi ON)
@@ -643,7 +654,17 @@ if("SERF_HAVE_SSPI" IN_LIST SERF_C_DEFIN
   set(_have_sspi ON)
 endif()
 if ("SERF_HAVE_UNBOUND=1" IN_LIST SERF_C_DEFINES)
-  set(_have_unbound "EXPERIMENTAL")
+  set(_have_unbound ON)
+endif()
+
+# Check if we're linking with LibreSSL
+file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" _libressl_text
+     REGEX "^ *# *define +LIBRESSL_VERSION_TEXT +\".+$")
+if(NOT (_libressl_text STREQUAL ""))
+  string(REGEX REPLACE "^[^\"]+\"([^\"]+)\".*$" "\\1" _libressl_text 
${_libressl_text})
+  set(_openssl_version ${_libressl_text})
+else()
+  set(_openssl_version ${OPENSSL_VERSION})
 endif()
 
 message(STATUS "Summary:")
@@ -662,6 +683,22 @@ message(STATUS "    Brotli .............
 message(STATUS "    GSSAPI .................. : ${_have_gssapi}")
 message(STATUS "    SSPI .................... : ${_have_sspi}")
 message(STATUS "    Unbound ................. : ${_have_unbound}")
+message(STATUS "  Dependencies:")
+message(STATUS "    APR ..................... : ${APR_VERSION}")
+if(APR_VERSION VERSION_LESS 2.0.0)
+message(STATUS "    APR-Util ................ : ${APRUTIL_VERSION}")
+endif()
+message(STATUS "    OpenSSL ................. : ${_openssl_version}")
+message(STATUS "    Zlib .................... : ${ZLIB_VERSION}")
+if(_have_brotli)
+message(STATUS "    Brotli .................. : ${_brotli_version}")
+endif()
+if(_have_gssapi)
+message(STATUS "    GSSAPI .................. : ${GSSAPI_VERSION}")
+endif()
+if(_have_unbound)
+message(STATUS "    Unbound ................. : ${UNBOUND_VERSION}")
+endif()
 message(STATUS "  Install:")
 message(STATUS "    prefix: ................. : ${CMAKE_INSTALL_PREFIX}")
 message(STATUS "    headers: ................ : ${SERF_INSTALL_HEADERS}")

Reply via email to