SUMMARY = "Image Generation and Programming Scripts for NPCM8XX (Arbel) devices"
DESCRIPTION = "Image Generation and Programming Scripts for NPCM8XX (Arbel) devices"
HOMEPAGE = "https://github.com/Nuvoton-Israel/igps-npcm8xx"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"

IGPS_BRANCH ?= "main"
SRC_URI = " \
    git://github.com/Nuvoton-Israel/igps-npcm8xx;branch=${IGPS_BRANCH};protocol=https \
"

S = "${WORKDIR}/git"

DEST = "${D}${datadir}/${BPN}"

# Adjust paths for use with bitbake
do_patch() {
	sed -i -e 's,output_binaries/tmp/,,g' ${S}/py_scripts/ImageGeneration/references/*.xml \
		${S}/py_scripts/ImageGeneration/inputs/*.xml
}

do_install() {
	install -d ${DEST}
    if [ "${TIP_IMAGE}" = "True" ] ; then
        install py_scripts/ImageGeneration/references/BootBlockAndHeader_${DEVICE_GEN}_${IGPS_MACHINE}.xml ${DEST}
	else
        install py_scripts/ImageGeneration/references/BootBlockAndHeader_${DEVICE_GEN}_${IGPS_MACHINE}_NoTip.xml ${DEST}
    fi
	install py_scripts/ImageGeneration/references/UbootHeader_${DEVICE_GEN}.xml ${DEST}
	install py_scripts/ImageGeneration/inputs/BL31_AndHeader.xml ${DEST}
	install py_scripts/ImageGeneration/inputs/OpTeeAndHeader.xml ${DEST}
	install py_scripts/ImageGeneration/asn1.py ${DEST}
	install py_scripts/ImageGeneration/BinarySignatureGenerator.py ${DEST}
}

inherit deploy

do_deploy () {
	# copy default keys to deploy folder
	install -d ${DEPLOYDIR}
	cp -vur py_scripts/ImageGeneration/keys/${SIGN_TYPE} ${DEPLOYDIR}/
}

inherit native

addtask deploy before do_build after do_compile
