# dirs
URAY_ENV_PATH="${BASH_SOURCE[0]}"
while [ -h "$URAY_ENV_PATH" ]; do # resolve $URAY_ENV_PATH until the file is no longer a symlink
  URAY_UTILS_DIR="$( cd -P "$( dirname "$URAY_ENV_PATH" )" && pwd )"
  URAY_ENV_PATH="$(readlink "$URAY_ENV_PATH")"
  [[ $URAY_ENV_PATH != /* ]] && URAY_ENV_PATH="$URAY_UTILS_DIR/$URAY_ENV_PATH" # if $URAY_ENV_PATH was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
export URAY_UTILS_DIR="$( cd -P "$( dirname "$URAY_ENV_PATH" )" && pwd )"
export URAY_DIR="$( dirname "$URAY_UTILS_DIR" )"
export URAY_DATABASE_DIR="${URAY_DIR}/database"
export URAY_TOOLS_DIR="${URAY_DIR}/third_party/symbiflow-tools/build/tools"
export URAY_FUZZERS_DIR="${URAY_DIR}/fuzzers"
export URAY_FAMILY_DIR="${URAY_DATABASE_DIR}/${URAY_DATABASE}"

if [ -e "${URAY_DIR}/env/bin/activate" ]; then
  source "${URAY_DIR}/env/bin/activate"
fi

# misc
export URAY_PART_YAML="${URAY_DATABASE_DIR}/${URAY_DATABASE}/${URAY_PART}/part.yaml"
export PYTHONPATH="${URAY_DIR}:${URAY_DIR}/third_party/fasm:$PYTHONPATH"

# tools
export URAY_GENHEADER="${URAY_UTILS_DIR}/genheader.sh"
export URAY_BITREAD="${URAY_TOOLS_DIR}/bitread --part_file ${URAY_PART_YAML} --architecture ${URAY_ARCH}"
export URAY_MERGEDB="bash ${URAY_UTILS_DIR}/mergedb.sh"
export URAY_DBFIXUP="python3 ${URAY_UTILS_DIR}/dbfixup.py"
export URAY_MASKMERGE="bash ${URAY_UTILS_DIR}/maskmerge.sh"
export URAY_SEGMATCH="${URAY_TOOLS_DIR}/segmatch"
export URAY_SEGPRINT="python3 ${URAY_UTILS_DIR}/segprint.py"
export URAY_BIT2FASM="python3 ${URAY_UTILS_DIR}/bit2fasm.py --architecture ${URAY_ARCH}"
export URAY_FASM2FRAMES="python3 ${URAY_UTILS_DIR}/fasm2frames.py"
export URAY_BITTOOL="${URAY_TOOLS_DIR}/bittool"
export URAY_BLOCKWIDTH="python3 ${URAY_UTILS_DIR}/blockwidth.py"
export URAY_PARSEDB="python3 ${URAY_UTILS_DIR}/parsedb.py"
export URAY_TCL_REFORMAT="${URAY_UTILS_DIR}/tcl-reformat.sh"
export URAY_VIVADO="${URAY_UTILS_DIR}/vivado.sh"

# Verify an approved version is in use
export URAY_VIVADO_SETTINGS="${URAY_VIVADO_SETTINGS:-/opt/Xilinx/Vivado/2019.2/settings64.sh}"
# Vivado v2019.2 (64-bit)
if [ $(${URAY_VIVADO} -h |grep Vivado |cut -d\  -f 2) != "v2019.2" ] ; then
    echo "Requires Vivado 2019.2 to have Zynq US+ support."
    # Can't exit since sourced script
    # Trash a key environment variable to preclude use
    export URAY_DIR="/bad/vivado/version"
    return
fi
