206 lines
7.5 KiB
BlitzBasic
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"
|