diff options
Diffstat (limited to 'bsp/meta-ti/classes/ti-pdk-fetch.bbclass')
-rw-r--r-- | bsp/meta-ti/classes/ti-pdk-fetch.bbclass | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/bsp/meta-ti/classes/ti-pdk-fetch.bbclass b/bsp/meta-ti/classes/ti-pdk-fetch.bbclass new file mode 100644 index 00000000..7108d001 --- /dev/null +++ b/bsp/meta-ti/classes/ti-pdk-fetch.bbclass @@ -0,0 +1,46 @@ +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 ?= "5ddf121a09af4ac58a18103848d4ab8e741e23d6" + +TI_PDK_VERSION ?= "2020.1.22" + +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) + + # Recursively hard-link the git directory + shutil.copytree(os.path.join(d.getVar('TI_PDK_SOURCE'),'.git'), os.path.join(s,'.git'), 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') +} |