Files
yocto-template/scripts/setup-env.sh

47 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
# -------------------------------------------------------------------
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/setup-paths.sh"
# -------------------------------------------------------------------
# Sanity checks
if [ ! -d "${POKY_DIR}" ]; then
echo "ERROR: poky not found at ${POKY_DIR}"
return 1 2>/dev/null || exit 1
fi
# Create cache directories
mkdir -p "${DL_DIR}"
mkdir -p "${SSTATE_DIR}"
# Initialize Yocto build environment
source "${POKY_DIR}/oe-init-build-env" "${YOCTO_ROOT}/${BUILD_DIR}"
# Inject cache paths into local.conf (idempotent)
CONF_FILE="${BUILDDIR}/conf/local.conf"
START_MARKER="# >>> yocto cache (managed) >>>"
END_MARKER="# <<< yocto cache (managed) <<<"
# Remove old managed block if present
sed -i "/${START_MARKER}/,/${END_MARKER}/d" "${CONF_FILE}"
# Append managed block
cat <<EOF >> "${CONF_FILE}"
${START_MARKER}
DL_DIR = "${DL_DIR}"
SSTATE_DIR = "${SSTATE_DIR}"
${END_MARKER}
EOF
echo
echo "Yocto environment ready:"
echo " BUILD_DIR = ${BUILDDIR}"
echo " DL_DIR = ${DL_DIR}"
echo " SSTATE_DIR = ${SSTATE_DIR}"
echo