Files
meta-st-stm32mp/recipes-devtools/cmsis-svd/cmsis-svd_git.bb

206 lines
7.5 KiB
BlitzBasic

SUMMARY = "CMSIS SVD data files and parser"
LICENSE = " Apache-2.0 & svd-Atmel & svd-Freescale & svd-Fujitsu & svd-STMicro "
LIC_FILES_CHKSUM = "\
file://LICENSE-APACHE;md5=fa818a259cbed7ce8bc2a22d35a464fc \
file://data/STMicro/License.html;md5=9a2821012ac32bea060eccbc76512bdb \
file://data/Freescale/Freescale%20CMSIS-SVD%20License%20Agreement.pdf;md5=33928757d8c2861dc9256ce344d11db3 \
file://data/Fujitsu/License.html;md5=e630487a365e7e0c5e03afcc644ce0ad \
file://data/Atmel/LICENSE;md5=c4400c3a321c71218e903363e6f28890 \
"
NO_GENERIC_LICENSE[svd-Atmel] = "data/Atmel/LICENSE"
NO_GENERIC_LICENSE[svd-Freescale] = "data/Freescale/Freescale CMSIS-SVD License Agreement.pdf"
NO_GENERIC_LICENSE[svd-Fujitsu] = "data/Fujitsu/License.html"
NO_GENERIC_LICENSE[svd-STMicro] = "data/STMicro/License.html"
inherit pkgconfig autotools-brokensep gettext
SRC_URI = "git://github.com/posborne/cmsis-svd.git;protocol=https;branch=main"
SRCREV = "f487b5ca7c132b8f09d11514c509372f83a6cb75"
PV = "0.4+git${SRCPV}"
S = "${WORKDIR}/git"
BBCLASSEXTEND += "native nativesdk"
PACKAGES += "\
${PN}-parser \
\
${PN}-apache-license \
\
${@bb.utils.contains('CMSIS_SVD_DATA', 'Atmel', '${PN}-data-atmel ${PN}-atmel-license', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Freescale', '${PN}-data-freescale ${PN}-freescale-license', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Fujitsu', '${PN}-data-fujitsu ${PN}-fujitsu-license', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Holtek', '${PN}-data-holtek', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Nordic', '${PN}-data-nordic', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Nuvoton', '${PN}-data-nuvoton', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'NXP', '${PN}-data-nxp', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'SiliconLabs', '${PN}-data-siliconlabs', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Spansion', '${PN}-data-spansion', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'STMicro', '${PN}-data-stmicro ${PN}-stmicro-license', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'TexasInstruments', '${PN}-data-texasinstruments', '', d)} \
${@bb.utils.contains('CMSIS_SVD_DATA', 'Toshiba', '${PN}-data-toshiba', '', d)} \
"
CMSIS_SVD_DATA ?= "\
STMicro \
"
# Empty cmsis-svd packages to use it as a meta package for dependencies install
FILES:${PN}:class-target = ""
do_configure[noexec] = "1"
do_compile[noexec] = "1"
INSTALL_PATH = "${datadir}/cmsis-svd/cmsis_svd"
do_install () {
install -d ${D}${INSTALL_PATH}
install -m 0644 ${S}/LICENSE-APACHE ${D}${INSTALL_PATH}
install -m 0755 ${S}/python/cmsis_svd/*.py ${D}${INSTALL_PATH}
install -d ${D}${INSTALL_PATH}/examples
cp -R ${S}/python/cmsis_svd/examples/* ${D}${INSTALL_PATH}/examples
install -d ${D}${INSTALL_PATH}/tests
cp -R ${S}/python/cmsis_svd/tests/* ${D}${INSTALL_PATH}/tests
install -d ${D}${INSTALL_PATH}/data
# Filter requested data files
for data_path in ${CMSIS_SVD_DATA}
do
if [ -d "${S}/data/${data_path}" ]; then
cp -R ${S}/data/${data_path} ${D}${INSTALL_PATH}/data
else
bbwarn "Can not find ${data_path} in ${S}/data"
fi
done
# Remove unexpected 'Contents.txt' files
find ${D}${INSTALL_PATH}/data -type f -name Contents.txt -exec rm -f {} \;
}
# For parser and ARM_SAMPLE svd file example
LICENSE:${PN}-parser = "Apache-2.0"
LICENSE:${PN}-apache-license = "Apache-2.0"
FILES:${PN}-apache-license = "${INSTALL_PATH}/LICENSE-APACHE"
FILES:${PN}-parser = "${INSTALL_PATH}/*.py ${INSTALL_PATH}/examples ${INSTALL_PATH}/tests ${INSTALL_PATH}/data/ARM_SAMPLE/*.svd"
RDEPENDS:${PN}-parser += "${PN}-apache-license"
# For python dependencies
RDEPENDS:${PN}-parser += "python3-json"
RDEPENDS:${PN}-parser += "python3-setuptools"
RDEPENDS:${PN}-parser += "python3-six"
RDEPENDS:${PN}-parser += "python3-xml"
# For Atmel
LICENSE:${PN}-data-atmel = "svd-Atmel"
LICENSE:${PN}-atmel-license = "svd-Atmel"
FILES:${PN}-atmel-license = "${INSTALL_PATH}/data/Atmel/LICENSE"
FILES:${PN}-data-atmel = "${INSTALL_PATH}/data/Atmel/*.svd"
RDEPENDS:${PN}-data-atmel += "${PN}-atmel-license"
# For Freescale
LICENSE:${PN}-data-freescale = "svd-Freescale"
LICENSE:${PN}-freescale-license = "svd-Freescale"
FILES:${PN}-freescale-license = "${INSTALL_PATH}/data/Freescale/Freescale*CMSIS-SVD*License*Agreement.pdf"
FILES:${PN}-data-freescale = "${INSTALL_PATH}/data/Freescale/*.svd"
RDEPENDS:${PN}-data-freescale += "${PN}-freescale-license"
# For Fujitsu
LICENSE:${PN}-data-fujitsu = "svd-Fujitsu"
LICENSE:${PN}-fujitsu-license = "svd-Fujitsu"
FILES:${PN}-fujitsu-license = "${INSTALL_PATH}/data/Fujitsu/License.html"
FILES:${PN}-data-fujitsu = "${INSTALL_PATH}/data/Fujitsu/*.svd"
RDEPENDS:${PN}-data-fujitsu += "${PN}-fujitsu-license"
# For Holtek
LICENSE:${PN}-data-holtek = "Apache-2.0"
FILES:${PN}-data-holtek = "${INSTALL_PATH}/data/Holtek/*.svd"
RDEPENDS:${PN}-data-holtek += "${PN}-apache-license"
# For Nordic
LICENSE:${PN}-data-nordic = "Apache-2.0"
FILES:${PN}-data-nordic = "${INSTALL_PATH}/data/Nordic/*.svd"
RDEPENDS:${PN}-data-nordic += "${PN}-apache-license"
# For Nuvoton
LICENSE:${PN}-data-nuvoton = "Apache-2.0"
FILES:${PN}-data-nuvoton = "${INSTALL_PATH}/data/Nuvoton/*.svd"
RDEPENDS:${PN}-data-nuvoton += "${PN}-apache-license"
# For NXP
LICENSE:${PN}-data-nxp = "Apache-2.0"
FILES:${PN}-data-nxp = "${INSTALL_PATH}/data/NXP/*.svd"
RDEPENDS:${PN}-data-nxp += "${PN}-apache-license"
# For SiliconLabs
LICENSE:${PN}-data-siliconlabs = "Apache-2.0"
FILES:${PN}-data-siliconlabs = "${INSTALL_PATH}/data/SiliconLabs/*.svd"
RDEPENDS:${PN}-data-siliconlabs += "${PN}-apache-license"
# For Spansion
LICENSE:${PN}-data-spansion = "Apache-2.0"
FILES:${PN}-data-spansion = "${INSTALL_PATH}/data/Spansion/*.svd"
RDEPENDS:${PN}-data-spansion += "${PN}-apache-license"
# For STMicro
LICENSE:${PN}-data-stmicro = "svd-STMicro"
LICENSE:${PN}-stmicro-license = "svd-STMicro"
FILES:${PN}-stmicro-license = "${INSTALL_PATH}/data/STMicro/License.html"
FILES:${PN}-data-stmicro = "${INSTALL_PATH}/data/STMicro/*.svd"
RDEPENDS:${PN}-data-stmicro += "${PN}-stmicro-license"
# For TexasInstruments
LICENSE:${PN}-data-texasinstruments = "Apache-2.0"
FILES:${PN}-data-texasinstruments = "${INSTALL_PATH}/data/TexasInstruments/*.svd"
RDEPENDS:${PN}-data-texasinstruments += "${PN}-apache-license"
# For Toshiba
LICENSE:${PN}-data-toshiba = "Apache-2.0"
FILES:${PN}-data-toshiba = "${INSTALL_PATH}/data/Toshiba/*.svd"
RDEPENDS:${PN}-data-toshiba += "${PN}-apache-license"
# Make cmsis-svd package depend on all of the split-out packages
python populate_packages:prepend () {
firmware_pkgs = oe.utils.packages_filter_out_system(d)
d.appendVar('RDEPENDS:cmsis-svd', ' ' + ' '.join(firmware_pkgs))
d.appendVar('RRECOMMENDS:cmsis-svd:append:class-nativesdk', ' ' + ' '.join(firmware_pkgs))
}
# Make sure also to add python dependencies
RRECOMMENDS:${PN}:append:class-nativesdk = " nativesdk-python3-json "
RRECOMMENDS:${PN}:append:class-nativesdk = " nativesdk-python3-setuptools "
RRECOMMENDS:${PN}:append:class-nativesdk = " nativesdk-python3-six "
RRECOMMENDS:${PN}:append:class-nativesdk = " nativesdk-python3-xml "
# Make sure to create the cmsis-svd package
ALLOW_EMPTY:${PN} = "1"