Skip to content

Commit 1d882b9

Browse files
committed
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. git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1925924 13f79535-47bb-0310-9956-ffa450edef68
1 parent 0349898 commit 1d882b9

File tree

1 file changed

+63
-46
lines changed

1 file changed

+63
-46
lines changed

build/SerfMacOS.cmake

Lines changed: 63 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,44 @@ cmake_minimum_required(VERSION 3.12)
2121

2222
# macOS: Find packages installed in Homebrew or MacPorts.
2323

24-
macro(serf_macos__check_package_manager_)
24+
macro(_serf_macos__check_package_manager)
2525
if(USE_HOMEBREW)
26-
serf_macos__check_homebrew_()
26+
_serf_macos__check_homebrew()
2727
endif()
2828
if(USE_MACPORTS)
29-
serf_macos__check_macports_()
29+
_serf_macos__check_macports()
3030
endif()
31-
endmacro(serf_macos__check_package_manager_)
31+
endmacro(_serf_macos__check_package_manager)
3232

33-
macro(serf_macos__find_package_ package variable docstring)
33+
macro(_serf_macos__find_package package variable docstring)
3434
if(USE_HOMEBREW)
35-
serf_macos__find_homebrew_package_("${package}" "${variable}" "${docstring}")
35+
_serf_macos__find_homebrew_package("${package}" "${variable}" "${docstring}")
3636
endif()
3737
if(USE_MACPORTS)
38-
serf_macos__find_macports_package_("${package}" "${variable}" "${docstring}")
38+
_serf_macos__find_macports_package("${package}" "${variable}" "${docstring}")
3939
endif()
40-
endmacro(serf_macos__find_package_)
40+
endmacro(_serf_macos__find_package)
4141

4242
function(serf_macos_find_packages)
43-
serf_macos__check_package_manager_()
44-
serf_macos__find_package_("apr" APR_ROOT "Path to APR's install area")
45-
serf_macos__find_package_("apr-util" APRUtil_ROOT "Path to APR-Util's install area")
46-
serf_macos__find_package_("openssl" OPENSSL_ROOT_DIR "Path to OpenSSL's install area")
43+
_serf_macos__check_package_manager()
44+
_serf_macos__find_package("apr" APR_ROOT "Path to APR's install area")
45+
_serf_macos__find_package("apr-util" APRUtil_ROOT "Path to APR-Util's install area")
46+
_serf_macos__find_package("openssl" OPENSSL_ROOT_DIR "Path to OpenSSL's install area")
4747
if(USE_MACPORTS)
4848
# NOTE: MacPorts uses its own version of zlib. Homebrew tends to use
4949
# the system zlib, so we won't even look for the Homebrew version.
5050
# The user can always override that on the command line.
51-
serf_macos__find_package_("zlib" ZLIB_ROOT "Path to zlib's install area")
51+
_serf_macos__find_package("zlib" ZLIB_ROOT "Path to zlib's install area")
5252
endif()
53-
serf_macos__find_package_("brotli" BROTLI_ROOT "Path to GSSAPI's install area")
54-
serf_macos__find_package_("gssapi" GSSAPI_ROOT "Path to GSSAPI's install area")
53+
_serf_macos__find_package("brotli" BROTLI_ROOT "Path to Brotli's install area")
54+
_serf_macos__find_package("gssapi" GSSAPI_ROOT "Path to GSSAPI's install area")
5555
endfunction()
5656

5757
#
5858
# Homebrew
5959
#
60-
function(serf_macos__check_homebrew_)
61-
if(NOT DEFINED SERF_MACOS__HAS_HOMEBREW_)
60+
function(_serf_macos__check_homebrew)
61+
if(NOT DEFINED SERF_MACOS__HAS_HOMEBREW)
6262
execute_process(COMMAND "brew" "--version"
6363
ERROR_VARIABLE shutup
6464
OUTPUT_VARIABLE version
@@ -70,20 +70,26 @@ function(serf_macos__check_homebrew_)
7070
RESULT_VARIABLE failed)
7171
endif()
7272
if(failed)
73-
set(SERF_MACOS__HAS_HOMEBREW_ FALSE PARENT_SCOPE)
73+
set(SERF_MACOS__HAS_HOMEBREW FALSE PARENT_SCOPE)
7474
message(WARNING "Homebrew was not found")
7575
else()
7676
string(STRIP "${version}" version)
7777
string(STRIP "${prefix}" prefix)
7878
message(STATUS "Found ${version} at ${prefix}")
79-
set(SERF_MACOS__HAS_HOMEBREW_ TRUE PARENT_SCOPE)
79+
set(SERF_MACOS__HAS_HOMEBREW TRUE PARENT_SCOPE)
8080
endif()
8181
endif()
82-
endfunction(serf_macos__check_homebrew_)
82+
endfunction(_serf_macos__check_homebrew)
8383

84-
function(serf_macos__find_homebrew_package_ package variable docstring)
84+
function(_serf_macos__find_homebrew_package package variable docstring)
8585
# Don't override user's provided values.
86-
if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_HOMEBREW_})
86+
if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_HOMEBREW})
87+
set(package_alias "${package}")
88+
if("${package_alias}" STREQUAL "gssapi")
89+
# The Homebrew package is called 'krb5'
90+
set(package "krb5")
91+
endif()
92+
8793
execute_process(COMMAND "brew" "--prefix" "--installed" "${package}"
8894
ERROR_VARIABLE shutup
8995
OUTPUT_VARIABLE prefix
@@ -92,59 +98,70 @@ function(serf_macos__find_homebrew_package_ package variable docstring)
9298
message(STATUS "Homebrew: not found: ${package}")
9399
else()
94100
string(STRIP "${prefix}" prefix)
95-
message(STATUS "Homebrew: found ${package} at ${prefix}")
101+
if("${package_alias}" STREQUAL "${package}")
102+
message(STATUS "Homebrew: found ${package} at ${prefix}")
103+
else()
104+
message(STATUS "Homebrew: found ${package_alias} (${package}) at ${prefix}")
105+
endif()
96106
set(${variable} "${prefix}" CACHE PATH "${docstring}" FORCE)
97107
endif()
98108
endif()
99-
endfunction(serf_macos__find_homebrew_package_)
109+
endfunction(_serf_macos__find_homebrew_package)
100110

101111
#
102112
# MacPorts
103113
#
104-
function(serf_macos__check_macports_)
105-
if(NOT DEFINED SERF_MACOS__HAS_MACPORTS_)
114+
function(_serf_macos__check_macports)
115+
if(NOT DEFINED SERF_MACOS__HAS_MACPORTS)
106116
execute_process(COMMAND "port" "version"
107117
ERROR_VARIABLE shutup
108118
OUTPUT_VARIABLE version
109119
RESULT_VARIABLE failed)
110120
if(NOT failed)
111-
execute_process(COMMAND "which" "port"
112-
ERROR_VARIABLE shutup
113-
OUTPUT_VARIABLE prefix
114-
RESULT_VARIABLE failed)
121+
find_program(port NAMES "port")
115122
endif()
116-
if(failed)
117-
set(SERF_MACOS__HAS_MACPORTS_ FALSE PARENT_SCOPE)
123+
if(failed OR "${port}" STREQUAL "port-NOTFOUND")
124+
set(SERF_MACOS__HAS_MACPORTS FALSE PARENT_SCOPE)
118125
message(WARNING "MacPorts was not found")
119126
else()
127+
# 'port version' prints "Version: n.n.n"
120128
string(REPLACE "Version:" "" version "${version}")
121129
string(STRIP "${version}" version)
122-
cmake_path(SET prefix_path NORMALIZE ${prefix})
123-
cmake_path(GET prefix_path PARENT_PATH prefix_path)
124-
cmake_path(GET prefix_path PARENT_PATH prefix_path)
125-
cmake_path(NATIVE_PATH prefix_path prefix)
130+
131+
# ${port} will be "/some/path/prefix/bin/port"
132+
get_filename_component(prefix ${port} DIRECTORY)
133+
get_filename_component(prefix ${prefix} DIRECTORY)
126134
message(STATUS "Found MacPorts ${version} at ${prefix}")
127-
set(SERF_MACOS__HAS_MACPORTS_ TRUE PARENT_SCOPE)
128-
set(SERF_MACOS__MACPORTS_ROOT_ "${prefix}" PARENT_SCOPE)
135+
set(SERF_MACOS__HAS_MACPORTS TRUE PARENT_SCOPE)
136+
set(SERF_MACOS__MACPORTS_DIR "${prefix}" PARENT_SCOPE)
129137
endif()
130138
endif()
131-
endfunction(serf_macos__check_macports_)
139+
endfunction(_serf_macos__check_macports)
132140

133-
function(serf_macos__find_macports_package_ package variable docstring)
141+
function(_serf_macos__find_macports_package package variable docstring)
134142
# Don't override user's provided values.
135-
if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_MACPORTS_})
136-
##!message(WARNING "MacPorts dependencies are not implemented (${package})")
143+
if("${${variable}}" STREQUAL "" AND ${SERF_MACOS__HAS_MACPORTS})
144+
set(package_alias "${package}")
145+
if("${package_alias}" STREQUAL "gssapi")
146+
# The MacPorts package is called 'kerberos5'
147+
set(package "kerberos5")
148+
endif()
149+
137150
execute_process(COMMAND "port" "echo" "active" "and" "name:^${package}$"
138151
ERROR_VARIABLE shutup
139152
OUTPUT_VARIABLE output
140153
RESULT_VARIABLE failed)
141154
if(failed OR "${output}" STREQUAL "")
142-
message(STATUS "MacPorts: not found: ${package}")
155+
message(STATUS "MacPorts: not found: ${package_alias}")
143156
else()
144157
# TODO: Invoke "port contents ${package}" and calculate the common
145158
# prefix of the installed files instead?
146-
message(STATUS "MacPorts: found ${package} at ${SERF_MACOS__MACPORTS_ROOT_}")
147-
set(${variable} "${SERF_MACOS__MACPORTS_ROOT_}" CACHE PATH "${docstring}" FORCE)
159+
if("${package_alias}" STREQUAL "${package}")
160+
message(STATUS "MacPorts: found ${package} at ${SERF_MACOS__MACPORTS_DIR}")
161+
else()
162+
message(STATUS "MacPorts: found ${package_alias} (${package}) at ${SERF_MACOS__MACPORTS_DIR}")
163+
endif()
164+
set(${variable} "${SERF_MACOS__MACPORTS_DIR}" CACHE PATH "${docstring}" FORCE)
148165
endif()
149166
endif()
150-
endfunction(serf_macos__find_macports_package_)
167+
endfunction(_serf_macos__find_macports_package)

0 commit comments

Comments
 (0)