#!/bin/sh
# Points the Vx toolchain at MacPorts' LLVM 22, then runs the real vx-analyzer.
set -eu

VX_LLVM_BIN="/opt/local/libexec/llvm-22/bin"
VX_PREFIX="/opt/local/libexec/vx"

PATH="${VX_LLVM_BIN}:/opt/local/bin:${PATH}"
export PATH
export LLVM_CONFIG_PATH="${LLVM_CONFIG_PATH:-${VX_LLVM_BIN}/llvm-config}"
export MLIR_TRANSLATE_PATH="${MLIR_TRANSLATE_PATH:-${VX_LLVM_BIN}/mlir-translate}"
export OPT_PATH="${OPT_PATH:-${VX_LLVM_BIN}/opt}"
export LLC_PATH="${LLC_PATH:-${VX_LLVM_BIN}/llc}"
export CLANG_PATH="${CLANG_PATH:-${VX_LLVM_BIN}/clang}"
# MacPorts' clang has no default sysroot; without one, programs vxc links cannot find SDK libraries.
if [ -z "${SDKROOT:-}" ]; then
    SDKROOT=$(/usr/bin/xcrun --show-sdk-path 2>/dev/null || true)
    export SDKROOT
fi
export VX_DISPATCH_LIB="${VX_DISPATCH_LIB:-${VX_PREFIX}/lib/libvx_npu_dispatch.dylib}"
export VX_MLIR_SHIMS="${VX_MLIR_SHIMS:-${VX_PREFIX}/lib/libvx_mlir_shims.dylib}"
if [ -d "${VX_PREFIX}/share/ane-primitives" ]; then
    export VX_ANE_MODEL_DIR="${VX_ANE_MODEL_DIR:-${VX_PREFIX}/share/ane-primitives}"
fi

exec "${VX_PREFIX}/bin/vx-analyzer" "$@"
