Skip to content

Commit df9bb36

Browse files
committed
fix
Signed-off-by: gengjun-git <gengjun@starrocks.com>
1 parent 357ccae commit df9bb36

File tree

2 files changed

+71
-15
lines changed

2 files changed

+71
-15
lines changed

build-mac/build_thirdparty.sh

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,25 @@ log_error() {
3636
echo -e "${RED}[ERROR]${NC} $1"
3737
}
3838

39+
resolve_brew_prefix() {
40+
local formula="$1"
41+
local fallback="$2"
42+
local prefix=""
43+
44+
prefix="$(brew --prefix "${formula}" 2>/dev/null || true)"
45+
if [[ -n "${prefix}" && -d "${prefix}" ]]; then
46+
echo "${prefix}"
47+
return 0
48+
fi
49+
50+
if [[ -n "${fallback}" && -d "${fallback}" ]]; then
51+
echo "${fallback}"
52+
return 0
53+
fi
54+
55+
echo "${prefix:-$fallback}"
56+
}
57+
3958
usage() {
4059
echo "Usage: $(basename "$0") [OPTIONS]"
4160
echo ""
@@ -114,12 +133,20 @@ if ! command -v brew >/dev/null 2>&1; then
114133
fi
115134

116135
# Setup environment variables
117-
export HOMEBREW_PREFIX="/opt/homebrew"
118-
export CC="$HOMEBREW_PREFIX/opt/llvm/bin/clang"
119-
export CXX="$HOMEBREW_PREFIX/opt/llvm/bin/clang++"
120-
export AR="$HOMEBREW_PREFIX/opt/llvm/bin/llvm-ar"
121-
export RANLIB="$HOMEBREW_PREFIX/opt/llvm/bin/llvm-ranlib"
122-
export OPENSSL_ROOT_DIR="$HOMEBREW_PREFIX/opt/openssl@3"
136+
export HOMEBREW_PREFIX="${HOMEBREW_PREFIX:-$(brew --prefix 2>/dev/null || true)}"
137+
if [[ -z "${HOMEBREW_PREFIX}" ]]; then
138+
if [[ -d /opt/homebrew ]]; then
139+
export HOMEBREW_PREFIX="/opt/homebrew"
140+
else
141+
export HOMEBREW_PREFIX="/usr/local"
142+
fi
143+
fi
144+
export STARROCKS_LLVM_HOME="${STARROCKS_LLVM_HOME:-$(resolve_brew_prefix llvm "${HOMEBREW_PREFIX}/opt/llvm")}"
145+
export CC="$STARROCKS_LLVM_HOME/bin/clang"
146+
export CXX="$STARROCKS_LLVM_HOME/bin/clang++"
147+
export AR="$STARROCKS_LLVM_HOME/bin/llvm-ar"
148+
export RANLIB="$STARROCKS_LLVM_HOME/bin/llvm-ranlib"
149+
export OPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR:-$(resolve_brew_prefix openssl@3 "${HOMEBREW_PREFIX}/opt/openssl@3")}"
123150
export PKG_CONFIG_PATH="$OPENSSL_ROOT_DIR/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
124151
export CFLAGS="-march=armv8-a -O3"
125152
export CXXFLAGS="-march=armv8-a -O3 -stdlib=libc++"
@@ -1352,8 +1379,8 @@ build_vectorscan() {
13521379
fi
13531380

13541381
# Set boost path for homebrew with detected version
1355-
export BOOST_ROOT="/opt/homebrew"
1356-
export Boost_DIR="/opt/homebrew/lib/cmake/Boost-$boost_version"
1382+
export BOOST_ROOT="${HOMEBREW_PREFIX}"
1383+
export Boost_DIR="${HOMEBREW_PREFIX}/lib/cmake/Boost-$boost_version"
13571384

13581385
log_info "Using Boost version $boost_version"
13591386

@@ -1374,8 +1401,8 @@ build_vectorscan() {
13741401
-DCORRECT_PCRE_VERSION=OFF \
13751402
-DCMAKE_C_FLAGS="${CFLAGS} -Wno-error" \
13761403
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -D_LIBCPP_HAS_NO_HASH_MEMORY=1 -Wno-error" \
1377-
-DBOOST_ROOT="/opt/homebrew" \
1378-
-DBoost_DIR="/opt/homebrew/lib/cmake/Boost-$boost_version" \
1404+
-DBOOST_ROOT="${HOMEBREW_PREFIX}" \
1405+
-DBoost_DIR="${HOMEBREW_PREFIX}/lib/cmake/Boost-$boost_version" \
13791406
-DBoost_NO_SYSTEM_PATHS=ON \
13801407
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
13811408

build-mac/env_macos.sh

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,25 @@ detect_parallelism() {
3737
echo "${cpu_count}"
3838
}
3939

40+
resolve_brew_prefix() {
41+
local formula="$1"
42+
local fallback="$2"
43+
local prefix=""
44+
45+
prefix="$(brew --prefix "${formula}" 2>/dev/null || true)"
46+
if [[ -n "${prefix}" && -d "${prefix}" ]]; then
47+
echo "${prefix}"
48+
return 0
49+
fi
50+
51+
if [[ -n "${fallback}" && -d "${fallback}" ]]; then
52+
echo "${fallback}"
53+
return 0
54+
fi
55+
56+
echo "${prefix:-$fallback}"
57+
}
58+
4059
# ============================================================================
4160
# BASIC PATHS
4261
# ============================================================================
@@ -74,7 +93,17 @@ fi
7493
# ============================================================================
7594
# HOMEBREW CONFIGURATION
7695
# ============================================================================
77-
export HOMEBREW_PREFIX="/opt/homebrew"
96+
if [[ -z "${HOMEBREW_PREFIX:-}" ]]; then
97+
HOMEBREW_PREFIX="$(brew --prefix 2>/dev/null || true)"
98+
if [[ -z "${HOMEBREW_PREFIX}" ]]; then
99+
if [[ -d /opt/homebrew ]]; then
100+
HOMEBREW_PREFIX="/opt/homebrew"
101+
else
102+
HOMEBREW_PREFIX="/usr/local"
103+
fi
104+
fi
105+
fi
106+
export HOMEBREW_PREFIX
78107
export HOMEBREW_NO_AUTO_UPDATE=1 # Speed up builds
79108

80109
# Add Homebrew to PATH if not already there
@@ -86,7 +115,7 @@ fi
86115
# COMPILER CONFIGURATION
87116
# ============================================================================
88117
# Use Homebrew LLVM for consistent C++17 support
89-
export LLVM_HOME="$HOMEBREW_PREFIX/opt/llvm"
118+
export LLVM_HOME="${LLVM_HOME:-${STARROCKS_LLVM_HOME:-$(resolve_brew_prefix llvm "${HOMEBREW_PREFIX}/opt/llvm")}}"
90119

91120
if [[ ! -d "$LLVM_HOME" ]]; then
92121
log_error "LLVM not found at $LLVM_HOME. Please run: brew install llvm"
@@ -157,7 +186,7 @@ log_info "Parallel jobs: $PARALLEL"
157186
# ============================================================================
158187

159188
# OpenSSL (keg-only in Homebrew)
160-
export OPENSSL_ROOT_DIR="$HOMEBREW_PREFIX/opt/openssl@3"
189+
export OPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR:-$(resolve_brew_prefix openssl@3 "${HOMEBREW_PREFIX}/opt/openssl@3")}"
161190
if [[ -d "$OPENSSL_ROOT_DIR" ]]; then
162191
export PKG_CONFIG_PATH="$OPENSSL_ROOT_DIR/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
163192
export CPPFLAGS="-I$OPENSSL_ROOT_DIR/include $CPPFLAGS"
@@ -167,15 +196,15 @@ else
167196
fi
168197

169198
# cURL (keg-only in Homebrew)
170-
export CURL_ROOT="$HOMEBREW_PREFIX/opt/curl"
199+
export CURL_ROOT="${CURL_ROOT:-$(resolve_brew_prefix curl "${HOMEBREW_PREFIX}/opt/curl")}"
171200
if [[ -d "$CURL_ROOT" ]]; then
172201
export PKG_CONFIG_PATH="$CURL_ROOT/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
173202
export CPPFLAGS="-I$CURL_ROOT/include $CPPFLAGS"
174203
export LDFLAGS="-L$CURL_ROOT/lib $LDFLAGS"
175204
fi
176205

177206
# ICU4C (keg-only in Homebrew)
178-
export ICU_ROOT="$HOMEBREW_PREFIX/opt/icu4c"
207+
export ICU_ROOT="${ICU_ROOT:-$(resolve_brew_prefix icu4c "${HOMEBREW_PREFIX}/opt/icu4c")}"
179208
if [[ -d "$ICU_ROOT" ]]; then
180209
export PKG_CONFIG_PATH="$ICU_ROOT/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
181210
export CPPFLAGS="-I$ICU_ROOT/include $CPPFLAGS"

0 commit comments

Comments
 (0)