#!/usr/bin/env bash
set -euo pipefail

SELF_DIR="$(CDPATH= cd -- "$(dirname "$0")" && pwd)"
PREFIX_ROOT="$(cd "$SELF_DIR/.." && pwd)"
FBROOT="$PREFIX_ROOT/lib/freebasic"
TOOLCHAIN_ROOT="$FBROOT/toolchain"
NCURSES_ROOT="$TOOLCHAIN_ROOT/ncurses"
SDK_ROOT="$TOOLCHAIN_ROOT/sdk/MacOSX.sdk"

if command -v xcrun >/dev/null 2>&1; then
    export GCC="$(xcrun --find clang)"
    export CLANG="$GCC"
    export AS="$(xcrun --find as)"
    export AR="$(xcrun --find ar)"
    export LD="$(xcrun --find ld)"
else
    echo "ERROR: Apple Command Line Tools are required. Run fbc-setup-darwin first." >&2
    exit 1
fi

if [ -d "$NCURSES_ROOT/lib" ]; then
    export DYLD_LIBRARY_PATH="$NCURSES_ROOT/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}"
fi

if [ -d "$SDK_ROOT/usr/lib" ]; then
    export SDKROOT="$SDK_ROOT"
elif command -v xcrun >/dev/null 2>&1; then
    SDKROOT_CANDIDATE="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null || xcrun --show-sdk-path 2>/dev/null || true)"
    if [ -n "$SDKROOT_CANDIDATE" ] && [ -d "$SDKROOT_CANDIDATE/usr/lib" ]; then
        export SDKROOT="$SDKROOT_CANDIDATE"
    fi
fi

exec "$FBROOT/libexec/fbc-real" -prefix "$PREFIX_ROOT" "$@"
