cmake: made FindGSSAPI.cmake able to detect kerberos versions such as: "Kerberos...
authorPascal J. Bourguignon <pjb@informatimago.com>
Fri, 21 Dec 2018 10:59:04 +0000 (11:59 +0100)
committerPascal J. Bourguignon <pjb@informatimago.com>
Fri, 21 Dec 2018 10:59:04 +0000 (11:59 +0100)
cmake/FindGSSAPI.cmake

index 621238f..54d3070 100644 (file)
@@ -115,7 +115,7 @@ if(NOT GSS_FOUND) # not found by pkg-config. Let's take more traditional approac
     string(STRIP "${_GSS_VENDOR}" _GSS_VENDOR)
     if((GSS_FLAVOUR STREQUAL "Heimdal" AND NOT _GSS_VENDOR STREQUAL "Heimdal")
        OR (GSS_FLAVOUR STREQUAL "MIT" AND NOT _GSS_VENDOR STREQUAL "Massachusetts Institute of Technology"))
-      message(SEND_ERROR "GSS vendor and GSS flavour are not matching : _GSS_VENDOR=${_GSS_VENDOR} ; GSS_FLAVOUR=${GSS_FLAVOUR}") 
+      message(SEND_ERROR "GSS vendor and GSS flavour are not matching : _GSS_VENDOR=${_GSS_VENDOR} ; GSS_FLAVOUR=${GSS_FLAVOUR}")
       message(STATUS "Try to set the path to GSS root folder in the system variable GSS_ROOT_DIR")
     endif()
   else()
@@ -428,13 +428,17 @@ if(GSS_FLAVOUR STREQUAL "MIT")
   string(REGEX REPLACE "\\." "" GSS_VERSION_MAJOR "${GSS_VERSION_MAJOR}")
   string(REGEX MATCH "\\.([0-9]+)$" GSS_VERSION_MINOR ${GSS_RELEASE_NUMBER})
   if(NOT GSS_VERSION_MINOR)
-    string(REGEX MATCH "\\.([0-9]+)\\." GSS_VERSION_MINOR ${GSS_RELEASE_NUMBER})
-    string(REGEX REPLACE "\\." "" GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
-    string(REGEX REPLACE "\\." "" GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
-    string(REGEX MATCH "([0-9]+)$" GSS_VERSION_PATCH ${GSS_RELEASE_NUMBER})
-    string(REGEX REPLACE "\\." "" GSS_VERSION_PATCH "${GSS_VERSION_PATCH}")
+    string(REGEX MATCH "\\.([0-9]+)[-\\.]" GSS_VERSION_MINOR ${GSS_RELEASE_NUMBER})
+    string(REGEX REPLACE "\\." ""     GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
+    string(REGEX REPLACE "\\." ""     GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
+    string(REGEX REPLACE "-"   ""     GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
+    string(REGEX MATCH "\\.([0-9]+)$" GSS_VERSION_PATCH "${GSS_RELEASE_NUMBER}")
+    string(REGEX REPLACE "\\." ""     GSS_VERSION_PATCH "${GSS_VERSION_PATCH}")
+    if(NOT GSS_VERSION_PATCH)
+      set(GSS_VERSION_PATCH "0")
+    endif()
   else()
-    string(REGEX REPLACE "\\." "" GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
+    string(REGEX REPLACE "\\." ""     GSS_VERSION_MINOR "${GSS_VERSION_MINOR}")
     set(GSS_VERSION_PATCH "0")
   endif()
   if(GSS_VERSION_MAJOR AND GSS_VERSION_MINOR)
@@ -443,6 +447,7 @@ if(GSS_FLAVOUR STREQUAL "MIT")
   else()
     message(SEND_ERROR "Failed to retrieved Kerberos version number")
   endif()
+  message(STATUS "Located Kerberos ${GSS_VERSION_MAJOR}.${GSS_VERSION_MINOR}.${GSS_VERSION_PATCH}")
 endif()
 
 mark_as_advanced(GSS_INCLUDE_DIR GSS_LIBRARIES)