Thanks Jacob, this looks good to me. On Wed, Dec 4, 2019 at 11:02 AM Jacob Stiffler <j-stiff...@ti.com> wrote: > > Any further comments on this updated approach? > > > On 12/2/2019 1:45 PM, Jacob Stiffler via Lists.Yoctoproject.Org wrote: > > Recently individual components and LLD sources have been combined > into a single PDK repo. Use this class to specify the common source. > Also use this class to keep the sources separate from each other when > building. This keeps the build identical to previous recipes while > keeping control on interdependencies. > > Similar to gcc-source, use the ti-pdk-source recipe to unpack the > sources into a "work-shared" area. Then hard-link only the necessary > files into a recipe's WORKDIR. > > Signed-off-by: Jacob Stiffler <j-stiff...@ti.com> > --- > v2 changes: > > To be more efficient, use ti-pdk-source to unpack sources once to a > common "work-shared" area. Then each recipe will hard-link only the > necessary sources. Follow the example set by gcc-source in oe-core. > > classes/ti-pdk-fetch.bbclass | 43 > ++++++++++++++++++++++++++ > recipes-bsp/ti-pdk-source/ti-pdk-source_git.bb | 33 ++++++++++++++++++++ > 2 files changed, 76 insertions(+) > create mode 100644 classes/ti-pdk-fetch.bbclass > create mode 100644 recipes-bsp/ti-pdk-source/ti-pdk-source_git.bb > > diff --git a/classes/ti-pdk-fetch.bbclass b/classes/ti-pdk-fetch.bbclass > new file mode 100644 > index 0000000..d845ccc > --- /dev/null > +++ b/classes/ti-pdk-fetch.bbclass > @@ -0,0 +1,43 @@ > +TI_PDK_GIT_URI ?= "git://git.ti.com/processor-sdk/pdk.git" > +TI_PDK_GIT_BRANCH ?= "master" > +TI_PDK_GIT_PROTOCOL ?= "git" > +TI_PDK_SRCREV ?= "a1d6fab78b8c9e9dcaec5bd6df54af8d196a901a" > + > +TI_PDK_VERSION ?= "2019.11.0" > + > +PV = "${TI_PDK_VERSION}" > + > +TI_PDK_COMP ?= "" > +TI_PDK_COMP_PATH = "${@'${TI_PDK_COMP}'.replace('.','/')}" > + > +TI_PDK_SOURCE_PN = "ti-pdk-source" > +TI_PDK_SOURCE_WORKDIR = "${TMPDIR}/work-shared/ti-pdk-${PV}" > +TI_PDK_SOURCE = "${TI_PDK_SOURCE_WORKDIR}/git" > + > +S = "${WORKDIR}/git/${TI_PDK_COMP_PATH}" > + > +# Hard-link only required sources from PDK > +python do_unpack_append() { > + if len(d.getVar('TI_PDK_COMP') or '') > 0: > + import shutil > + > + # Get src/dst paths > + src = > os.path.join(d.getVar('TI_PDK_SOURCE'),'packages',d.getVar('TI_PDK_COMP_PATH')) > + s = d.getVar('S') > + > + # Set up the directory structure, except for the root of the sources > + # hard-linked. > + bb.utils.mkdirhier(s) > + os.rmdir(s) > + > + # Recursively hard-link the sources > + shutil.copytree(src, s, copy_function=os.link) > +} > + > +# Make sure that ti-pdk-source is unpacked before we set up the hardlinks. > +python __anonymous () { > + pn = d.getVar('PN') > + pdk_src_pn = d.getVar('TI_PDK_SOURCE_PN') > + if pn != pdk_src_pn: > + d.appendVarFlag('do_unpack', 'depends', ' > ${TI_PDK_SOURCE_PN}:do_unpack') > +} > diff --git a/recipes-bsp/ti-pdk-source/ti-pdk-source_git.bb > b/recipes-bsp/ti-pdk-source/ti-pdk-source_git.bb > new file mode 100644 > index 0000000..f4b3da9 > --- /dev/null > +++ b/recipes-bsp/ti-pdk-source/ti-pdk-source_git.bb > @@ -0,0 +1,33 @@ > +# Recipe to fetch/unpack sources used by ti-pdk-fetch recipes. > +# > +# Mimic gcc-source.inc from oe-core. > + > +# These shources will be unpacked to a "work-shared" directory. Then each > +# "ti-pdk-fetch" recipe will hard-link only the sources it requires. > + > +deltask do_configure > +deltask do_compile > +deltask do_install > +deltask do_populate_sysroot > +deltask do_populate_lic > + > +RM_WORK_EXCLUDE += "${PN}" > +EXCLUDE_FROM_WORLD = "1" > + > +inherit nopackages ti-pdk-fetch > + > +LICENSE = "BSD-3-Clause" > + > +PN = "${TI_PDK_SOURCE_PN}" > +WORKDIR = "${TI_PDK_SOURCE_WORKDIR}" > +SSTATE_SWSPEC = "sstate:ti-pdk::${PV}:${PR}::${SSTATE_VERSION}:" > + > +STAMP = "${STAMPS_DIR}/work-shared/ti-pdk-${PV}" > +STAMPCLEAN = "${STAMPS_DIR}/work-shared/ti-pdk-${PV}*" > + > +INHIBIT_DEFAULT_DEPS = "1" > +DEPENDS = "" > +PACKAGES = "" > + > +SRC_URI = > "${TI_PDK_GIT_URI};branch=${TI_PDK_GIT_BRANCH};protocol=${TI_PDK_GIT_PROTOCOL}" > +SRCREV = "${TI_PDK_SRCREV}" > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > > View/Reply Online (#12539): > https://lists.yoctoproject.org/g/meta-ti/message/12539 > Mute This Topic: https://lists.yoctoproject.org/mt/65159993/3619770 > Group Owner: meta-ti+ow...@lists.yoctoproject.org > Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub > [j-stiff...@ti.com] > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group.
View/Reply Online (#12548): https://lists.yoctoproject.org/g/meta-ti/message/12548 Mute This Topic: https://lists.yoctoproject.org/mt/66514334/21656 Group Owner: meta-ti+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-