Author: brane
Date: Fri May 30 13:32:49 2025
New Revision: 1925982

URL: http://svn.apache.org/viewvc?rev=1925982&view=rev
Log:
* build/FindGSSAPI.cmake: Shorten the version name from krb5-config.

Modified:
    serf/trunk/build/FindGSSAPI.cmake

Modified: serf/trunk/build/FindGSSAPI.cmake
URL: 
http://svn.apache.org/viewvc/serf/trunk/build/FindGSSAPI.cmake?rev=1925982&r1=1925981&r2=1925982&view=diff
==============================================================================
--- serf/trunk/build/FindGSSAPI.cmake (original)
+++ serf/trunk/build/FindGSSAPI.cmake Fri May 30 13:32:49 2025
@@ -34,23 +34,36 @@ if("${KRB5_CONFIG_EXECUTABLE}" STREQUAL
   message(STATUS "Could NOT find GSSAPI (missing: krb5-config)")
 else()
   function(_krb5_config _varname _dedup)
-    execute_process(COMMAND ${KRB5_CONFIG_EXECUTABLE} ${ARGN} "gssapi"
+    execute_process(COMMAND "${KRB5_CONFIG_EXECUTABLE}" ${ARGN} "gssapi"
                     OUTPUT_VARIABLE output
                     RESULT_VARIABLE failed)
     if(failed)
       message(FATAL_ERROR "failed: ${KRB5_CONFIG_EXECUTABLE} ${ARGN} gssapi")
     endif()
     string(STRIP "${output}" output)
+    separate_arguments(output)
     if(_dedup)
-      separate_arguments(output)
       list(REMOVE_DUPLICATES output)
     endif()
     set(${_varname} ${output} PARENT_SCOPE)
   endfunction(_krb5_config)
 
+  _krb5_config(GSSAPI_VERSION   FALSE --version)
   _krb5_config(GSSAPI_INCLUDES  TRUE  --cflags)
   _krb5_config(GSSAPI_LIBRARIES TRUE  --libs)
-  _krb5_config(GSSAPI_VERSION   FALSE --version)
+
+  # The version "number" should look like "Kerberos N release X.Y.Z",
+  # try to extract those numbers first.
+  list(LENGTH GSSAPI_VERSION len)
+  if(${len} EQUAL 4)
+    # Use the second and fourth elements
+    list(GET GSSAPI_VERSION 1 krb)
+    list(GET GSSAPI_VERSION 3 rel)
+    set(GSSAPI_VERSION "${krb}:${rel}")
+  else()
+    # It's some other format, join it back
+    list(JOIN GSSAPI_VERSION " " GSSAPI_VERSION)
+  endif()
 
   # Filter everything but include paths from --cflags
   list(FILTER GSSAPI_INCLUDES INCLUDE REGEX "^-I")
@@ -79,8 +92,8 @@ else()
   endif()
 
   include(FindPackageHandleStandardArgs)
-  list(LENGTH GSSAPI_INCLUDES _inc_len)
-  if(${_inc_len} EQUAL 0)
+  list(LENGTH GSSAPI_INCLUDES len)
+  if(${len} EQUAL 0)
     # When using default include locations, GSSAPI_INCLUDES may be empty.
     find_package_handle_standard_args(GSSAPI
       REQUIRED_VARS GSSAPI_LIBRARIES


Reply via email to