blob: f9b5bc17b68027bc0eae1cfaa24b8c8aa969e553 [file] [log] [blame]
# Constant: location of the custom tool binaries in the dev container
DEV_CONTAINER_BIN="/cheriot-tools/bin/"
# Finds location of a given LLVM tool on the system.
#
# Argument 1: name of the LLVM tool to find (e.g.,
# `llvm-objdump`, `llvm-objcopy`)
find_llvm_tool() {
TOOL_NAME=$1
LLVM_TOOL=${TOOL_NAME}
if ! type ${LLVM_TOOL} >/dev/null 2>&1 ; then
FROM_DEV_CONTAINER="${DEV_CONTAINER_BIN}/${TOOL_NAME}"
if [ -x "${FROM_DEV_CONTAINER}" ] ; then
LLVM_TOOL=${FROM_DEV_CONTAINER}
else
if [ -n "${TOOLS_PATH}" ] ; then
WITH_TOOLS_PATH_SET="${TOOLS_PATH}/${TOOL_NAME}"
if [ -x "${WITH_TOOLS_PATH_SET}" ] ; then
LLVM_TOOL=${WITH_TOOLS_PATH_SET}
fi
fi
fi
fi
echo "${LLVM_TOOL}"
}
# Wrapper for `find_llvm_tool` that does `exit 1` with an error message if the
# tool cannot be found.
#
# Arguments are the same as `find_llvm_tool`.
find_llvm_tool_required() {
LLVM_TOOL=$(find_llvm_tool $1)
if [ ! -x ${LLVM_TOOL} ] ; then
echo Unable to locate $1, please set TOOLS_PATH to the directory containing the LLVM toolchain.
exit 1
fi
echo "${LLVM_TOOL}"
}