# ACE 开发环境初始化。用法: source scripts/env.sh
# 1) 初始化仓颉工具链(PATH / DYLD_LIBRARY_PATH / SDKROOT 等)
: "${CANGJIE_HOME:=/Users/next-lyle/cangjie}"
source "${CANGJIE_HOME}/envsetup.sh"
# 2) 关键绕过:macOS 26 的 Xcode SDK 与 Cangjie 自带 ld64.lld(LLD 15)不兼容,
# 会导致链接报 undefined symbol: _memcpy/_strchr 等。强制使用 CommandLineTools
# 的 MacOSX15 SDK 链接(cjc 认 SDKROOT,覆盖 envsetup 默认设的 26.4)。
export SDKROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
# 3) stdx 预编译目录。各 cjpm.toml 的 path-option / link-option 统一经
# ${CANGJIE_STDX_PATH} 环境变量引用(官方 bin-dependencies 约定),
# Linux 构建自行 export CANGJIE_STDX_PATH 指向对应平台的 stdx 根目录即可。
export STDX_HOME="/Users/next-lyle/darwin_aarch64_cjnative"
export CANGJIE_STDX_PATH="${STDX_HOME}"
# 4) stdx dynamicLoader 运行期 dlopen OpenSSL,需让 libcrypto.3/libssl.3.dylib 可被找到。
# 同时把 stdx dynamic 目录加入搜索路径,供运行时 dlopen stdx 动态库。
export DYLD_LIBRARY_PATH="${STDX_HOME}/dynamic:/opt/homebrew/opt/openssl@3/lib${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}"
echo "[ace] env ready (SDKROOT=${SDKROOT}, STDX_HOME=${STDX_HOME})"