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)