Author: brane
Date: Thu May 29 00:27:57 2025
New Revision: 1925924

URL: http://svn.apache.org/viewvc?rev=1925924&view=rev
Log:
In the CMake build, mix a bunch of renaming stuff with adding support
for GSSAPI from Homebrew/MacPorts. Sorry for the mess...

* build/SerfMacOS.cmake: Pretty much everything.
  (_serf_macos__find_homebrew_package,
   _serf_macos__find_macports_package): Rename the 'gssapi' package alias
   to 'krb5' for Homebrew and 'kerberos5' for MacPorts.

Modified:
    serf/trunk/build/SerfMacOS.cmake

Modified: serf/trunk/build/SerfMacOS.cmake
URL: 
http://svn.apache.org/viewvc/serf/trunk/build/SerfMacOS.cmake?rev=1925924&r1=1925923&r2=1925924&view=diff
==============================================================================
--- serf/trunk/build/SerfMacOS.cmake (original)
+++ serf/trunk/build/SerfMacOS.cmake Thu May 29 00:27:57 2025
@@ -21,44 +21,44 @@ cmake_minimum_required(VERSION 3.12)
 
 # macOS: Find packages installed in Homebrew or MacPorts.
 
-macro(serf_macos__check_package_manager_)
+macro(_serf_macos__check_package_manager)
   if(USE_HOMEBREW)
-    serf_macos__check_homebrew_()
+    _serf_macos__check_homebrew()
   endif()
   if(USE_MACPORTS)
-    serf_macos__check_macports_()
+    _serf_macos__check_macports()
   endif()
-endmacro(serf_macos__check_package_manager_)
+endmacro(_serf_macos__check_package_manager)
 
-macro(serf_macos__find_package_ package variable docstring)
+macro(_serf_macos__find_package package variable docstring)
   if(USE_HOMEBREW)
-    serf_macos__find_homebrew_package_("${package}" "${variable}" 
"${docstring}")
+    _serf_macos__find_homebrew_package("${package}" "${variable}" 
"${docstring}")
   endif()
   if(USE_MACPORTS)
-    serf_macos__find_macports_package_("${package}" "${variable}" 
"${docstring}")
+    _serf_macos__find_macports_package("${package}" "${variable}" 
"${docstring}")
   endif()
-endmacro(serf_macos__find_package_)
+endmacro(_serf_macos__find_package)
 
 function(serf_macos_find_packages)
-  serf_macos__check_package_manager_()
-  serf_macos__find_package_("apr" APR_ROOT "Path to APR's install area")
-  serf_macos__find_package_("apr-util" APRUtil_ROOT "Path to APR-Util's 
install area")
-  serf_macos__find_package_("openssl" OPENSSL_ROOT_DIR "Path to OpenSSL's 
install area")
+  _serf_macos__check_package_manager()
+  _serf_macos__find_package("apr" APR_ROOT "Path to APR's install area")
+  _serf_macos__find_package("apr-util" APRUtil_ROOT "Path to APR-Util's 
install area")
+  _serf_macos__find_package("openssl" OPENSSL_ROOT_DIR "Path to OpenSSL's 
install area")
   if(USE_MACPORTS)
     # NOTE: MacPorts uses its own version of zlib. Homebrew tends to use
     #       the system zlib, so we won't even look for the Homebrew version.
     #       The user can always override that on the command line.
-    serf_macos__find_package_("zlib" ZLIB_ROOT "Path to zlib's install area")
+    _serf_macos__find_package("zlib" ZLIB_ROOT "Path to zlib's install area")
   endif()
-  serf_macos__find_package_("brotli" BROTLI_ROOT "Path to GSSAPI's install 
area")
-  serf_macos__find_package_("gssapi" GSSAPI_ROOT "Path to GSSAPI's install 
area")
+  _serf_macos__find_package("brotli" BROTLI_ROOT "Path to Brotli's install 
area")
+  _serf_macos__find_package("gssapi" GSSAPI_ROOT "Path to GSSAPI's install 
area")
 endfunction()
 
 #
 # Homebrew
 #
-function(serf_macos__check_homebrew_)
-  if(NOT DEFINED SERF_MACOS__HAS_HOMEBREW_)
+function(_serf_macos__check_homebrew)
+  if(NOT DEFINED SERF_MACOS__HAS_HOMEBREW)
     execute_process(COMMAND "brew" "--version"
                     ERROR_VARIABLE shutup
                     OUTPUT_VARIABLE version
@@ -70,20 +70,26 @@ function(serf_macos__check_homebrew_)
                       RESULT_VARIABLE failed)
     endif()
     if(failed)
-      set(SERF_MACOS__HAS_HOMEBREW_ FALSE PARENT_SCOPE)
+      set(SERF_MACOS__HAS_HOMEBREW FALSE PARENT_SCOPE)
       message(WARNING "Homebrew was not found")
     else()
       string(STRIP "${version}" version)
       string(STRIP "${prefix}" prefix)
       message(STATUS "Found ${version} at ${prefix}")
-      set(SERF_MACOS__HAS_HOMEBREW_ TRUE PARENT_SCOPE)
+      set(SERF_MACOS__HAS_HOMEBREW TRUE PARENT_SCOPE)
     endif()
   endif()
-endfunction(serf_macos__check_homebrew_)
+endfunction(_serf_macos__check_homebrew)
 
-function(serf_macos__find_homebrew_package_ package variable docstring)
+function(_serf_macos__find_homebrew_package package variable docstring)
   # Don't override user's provided values.
-  if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_HOMEBREW_})
+  if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_HOMEBREW})
+    set(package_alias "${package}")
+    if("${package_alias}" STREQUAL "gssapi")
+      # The Homebrew package is called 'krb5'
+      set(package "krb5")
+    endif()
+
     execute_process(COMMAND "brew" "--prefix" "--installed" "${package}"
                     ERROR_VARIABLE shutup
                     OUTPUT_VARIABLE prefix
@@ -92,59 +98,70 @@ function(serf_macos__find_homebrew_packa
       message(STATUS "Homebrew: not found: ${package}")
     else()
       string(STRIP "${prefix}" prefix)
-      message(STATUS "Homebrew: found ${package} at ${prefix}")
+      if("${package_alias}" STREQUAL "${package}")
+        message(STATUS "Homebrew: found ${package} at ${prefix}")
+      else()
+        message(STATUS "Homebrew: found ${package_alias} (${package}) at 
${prefix}")
+      endif()
       set(${variable} "${prefix}" CACHE PATH "${docstring}" FORCE)
     endif()
   endif()
-endfunction(serf_macos__find_homebrew_package_)
+endfunction(_serf_macos__find_homebrew_package)
 
 #
 # MacPorts
 #
-function(serf_macos__check_macports_)
-  if(NOT DEFINED SERF_MACOS__HAS_MACPORTS_)
+function(_serf_macos__check_macports)
+  if(NOT DEFINED SERF_MACOS__HAS_MACPORTS)
     execute_process(COMMAND "port" "version"
                     ERROR_VARIABLE shutup
                     OUTPUT_VARIABLE version
                     RESULT_VARIABLE failed)
     if(NOT failed)
-      execute_process(COMMAND "which" "port"
-                      ERROR_VARIABLE shutup
-                      OUTPUT_VARIABLE prefix
-                      RESULT_VARIABLE failed)
+      find_program(port NAMES "port")
     endif()
-    if(failed)
-      set(SERF_MACOS__HAS_MACPORTS_ FALSE PARENT_SCOPE)
+    if(failed OR "${port}" STREQUAL "port-NOTFOUND")
+      set(SERF_MACOS__HAS_MACPORTS FALSE PARENT_SCOPE)
       message(WARNING "MacPorts was not found")
     else()
+      # 'port version' prints "Version: n.n.n"
       string(REPLACE "Version:" "" version "${version}")
       string(STRIP "${version}" version)
-      cmake_path(SET prefix_path NORMALIZE ${prefix})
-      cmake_path(GET prefix_path PARENT_PATH prefix_path)
-      cmake_path(GET prefix_path PARENT_PATH prefix_path)
-      cmake_path(NATIVE_PATH prefix_path prefix)
+
+      # ${port} will be "/some/path/prefix/bin/port"
+      get_filename_component(prefix ${port} DIRECTORY)
+      get_filename_component(prefix ${prefix} DIRECTORY)
       message(STATUS "Found MacPorts ${version} at ${prefix}")
-      set(SERF_MACOS__HAS_MACPORTS_ TRUE PARENT_SCOPE)
-      set(SERF_MACOS__MACPORTS_ROOT_ "${prefix}" PARENT_SCOPE)
+      set(SERF_MACOS__HAS_MACPORTS TRUE PARENT_SCOPE)
+      set(SERF_MACOS__MACPORTS_DIR "${prefix}" PARENT_SCOPE)
     endif()
   endif()
-endfunction(serf_macos__check_macports_)
+endfunction(_serf_macos__check_macports)
 
-function(serf_macos__find_macports_package_ package variable docstring)
+function(_serf_macos__find_macports_package package variable docstring)
   # Don't override user's provided values.
-  if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_MACPORTS_})
-    ##!message(WARNING "MacPorts dependencies are not implemented 
(${package})")
+  if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_MACPORTS})
+    set(package_alias "${package}")
+    if("${package_alias}" STREQUAL "gssapi")
+      # The MacPorts package is called 'kerberos5'
+      set(package "kerberos5")
+    endif()
+
     execute_process(COMMAND "port" "echo" "active" "and" "name:^${package}$"
                     ERROR_VARIABLE shutup
                     OUTPUT_VARIABLE output
                     RESULT_VARIABLE failed)
     if(failed OR "${output}" STREQUAL "")
-      message(STATUS "MacPorts: not found: ${package}")
+      message(STATUS "MacPorts: not found: ${package_alias}")
     else()
       # TODO: Invoke "port contents ${package}" and calculate the common
       #       prefix of the installed files instead?
-      message(STATUS "MacPorts: found ${package} at 
${SERF_MACOS__MACPORTS_ROOT_}")
-      set(${variable} "${SERF_MACOS__MACPORTS_ROOT_}" CACHE PATH 
"${docstring}" FORCE)
+      if("${package_alias}" STREQUAL "${package}")
+        message(STATUS "MacPorts: found ${package} at 
${SERF_MACOS__MACPORTS_DIR}")
+      else()
+        message(STATUS "MacPorts: found ${package_alias} (${package}) at 
${SERF_MACOS__MACPORTS_DIR}")
+      endif()
+      set(${variable} "${SERF_MACOS__MACPORTS_DIR}" CACHE PATH "${docstring}" 
FORCE)
     endif()
   endif()
-endfunction(serf_macos__find_macports_package_)
+endfunction(_serf_macos__find_macports_package)


Reply via email to