From 2e77eff6ccba84b5229971794a31122dfa033e07 Mon Sep 17 00:00:00 2001 From: Ola x Nilsson Date: Wed, 25 Jan 2017 16:49:46 +0100 Subject: externalsrc: Hide created symlinks with .git/info/exclude Add created symlinks to the exclude file. This will both make them less distracting and hide them from the srctree_hash_files function. (From OE-Core rev: c11fcd6fbde4a90913960b223451e0ce9e6b4b64) Signed-off-by: Ola x Nilsson Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/externalsrc.bbclass | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'meta') diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index bdf23ec6be..39789ea30f 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -124,11 +124,13 @@ python () { } python externalsrc_configure_prefunc() { + s_dir = d.getVar('S') # Create desired symlinks symlinks = (d.getVar('EXTERNALSRC_SYMLINKS') or '').split() + newlinks = [] for symlink in symlinks: symsplit = symlink.split(':', 1) - lnkfile = os.path.join(d.getVar('S'), symsplit[0]) + lnkfile = os.path.join(s_dir, symsplit[0]) target = d.expand(symsplit[1]) if len(symsplit) > 1: if os.path.islink(lnkfile): @@ -140,6 +142,19 @@ python externalsrc_configure_prefunc() { # File/dir exists with same name as link, just leave it alone continue os.symlink(target, lnkfile) + newlinks.append(symsplit[0]) + # Hide the symlinks from git + try: + git_exclude_file = os.path.join(s_dir, '.git/info/exclude') + if os.path.exists(git_exclude_file): + with open(git_exclude_file, 'r+') as efile: + elines = efile.readlines() + for link in newlinks: + if link in elines or '/'+link in elines: + continue + efile.write('/' + link + '\n') + except IOError as ioe: + bb.note('Failed to hide EXTERNALSRC_SYMLINKS from git') } python externalsrc_compile_prefunc() { -- cgit v1.2.3-54-g00ecf